@typespec/http-client-python 0.23.0 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/emitter/code-model.d.ts.map +1 -1
  2. package/dist/emitter/code-model.js +35 -25
  3. package/dist/emitter/code-model.js.map +1 -1
  4. package/dist/emitter/http.d.ts +4 -4
  5. package/dist/emitter/http.d.ts.map +1 -1
  6. package/dist/emitter/http.js +41 -35
  7. package/dist/emitter/http.js.map +1 -1
  8. package/dist/emitter/types.d.ts +1 -1
  9. package/dist/emitter/types.d.ts.map +1 -1
  10. package/dist/emitter/types.js +2 -2
  11. package/dist/emitter/types.js.map +1 -1
  12. package/dist/emitter/utils.d.ts +2 -2
  13. package/dist/emitter/utils.d.ts.map +1 -1
  14. package/dist/emitter/utils.js +7 -6
  15. package/dist/emitter/utils.js.map +1 -1
  16. package/emitter/src/code-model.ts +61 -18
  17. package/emitter/src/http.ts +107 -22
  18. package/emitter/src/types.ts +2 -1
  19. package/emitter/src/utils.ts +14 -12
  20. package/emitter/temp/tsconfig.tsbuildinfo +1 -1
  21. package/eng/scripts/ci/dev_requirements.txt +3 -3
  22. package/eng/scripts/ci/pylintrc +1 -1
  23. package/eng/scripts/ci/regenerate.ts +8 -1
  24. package/eng/scripts/setup/__pycache__/package_manager.cpython-311.pyc +0 -0
  25. package/eng/scripts/setup/__pycache__/venvtools.cpython-311.pyc +0 -0
  26. package/generator/build/lib/pygen/codegen/models/code_model.py +4 -0
  27. package/generator/build/lib/pygen/codegen/models/enum_type.py +8 -1
  28. package/generator/build/lib/pygen/codegen/models/list_type.py +6 -2
  29. package/generator/build/lib/pygen/codegen/models/model_type.py +2 -2
  30. package/generator/build/lib/pygen/codegen/models/operation.py +10 -1
  31. package/generator/build/lib/pygen/codegen/models/operation_group.py +3 -1
  32. package/generator/build/lib/pygen/codegen/models/request_builder.py +20 -3
  33. package/generator/build/lib/pygen/codegen/models/response.py +2 -2
  34. package/generator/build/lib/pygen/codegen/models/utils.py +7 -0
  35. package/generator/build/lib/pygen/codegen/serializers/builder_serializer.py +26 -12
  36. package/generator/build/lib/pygen/codegen/serializers/client_serializer.py +1 -2
  37. package/generator/build/lib/pygen/codegen/serializers/general_serializer.py +1 -1
  38. package/generator/build/lib/pygen/codegen/serializers/model_serializer.py +3 -0
  39. package/generator/build/lib/pygen/codegen/templates/enum.py.jinja2 +3 -1
  40. package/generator/build/lib/pygen/codegen/templates/model_base.py.jinja2 +65 -9
  41. package/generator/build/lib/pygen/codegen/templates/serialization.py.jinja2 +14 -3
  42. package/generator/dist/pygen-0.1.0-py3-none-any.whl +0 -0
  43. package/generator/pygen/codegen/models/code_model.py +4 -0
  44. package/generator/pygen/codegen/models/enum_type.py +8 -1
  45. package/generator/pygen/codegen/models/list_type.py +6 -2
  46. package/generator/pygen/codegen/models/model_type.py +2 -2
  47. package/generator/pygen/codegen/models/operation.py +10 -1
  48. package/generator/pygen/codegen/models/operation_group.py +3 -1
  49. package/generator/pygen/codegen/models/request_builder.py +20 -3
  50. package/generator/pygen/codegen/models/response.py +2 -2
  51. package/generator/pygen/codegen/models/utils.py +7 -0
  52. package/generator/pygen/codegen/serializers/builder_serializer.py +26 -12
  53. package/generator/pygen/codegen/serializers/client_serializer.py +1 -2
  54. package/generator/pygen/codegen/serializers/general_serializer.py +1 -1
  55. package/generator/pygen/codegen/serializers/model_serializer.py +3 -0
  56. package/generator/pygen/codegen/templates/enum.py.jinja2 +3 -1
  57. package/generator/pygen/codegen/templates/model_base.py.jinja2 +65 -9
  58. package/generator/pygen/codegen/templates/serialization.py.jinja2 +14 -3
  59. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_client_default_value_async.py +46 -0
  60. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_client_location_async.py +48 -21
  61. package/generator/test/azure/mock_api_tests/asynctests/test_azure_resource_manager_multi_service_async.py +110 -0
  62. package/generator/test/azure/mock_api_tests/asynctests/test_service_multi_service_async.py +31 -0
  63. package/generator/test/azure/mock_api_tests/asynctests/test_special_words_async.py +18 -0
  64. package/generator/test/azure/mock_api_tests/test_azure_arm_operationtemplates.py +16 -0
  65. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_client_default_value.py +42 -0
  66. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_client_location.py +44 -19
  67. package/generator/test/azure/mock_api_tests/test_azure_resource_manager_multi_service.py +104 -0
  68. package/generator/test/azure/mock_api_tests/test_service_multi_service.py +29 -0
  69. package/generator/test/azure/mock_api_tests/test_special_words.py +17 -0
  70. package/generator/test/azure/requirements.txt +9 -1
  71. package/generator/test/generic_mock_api_tests/asynctests/test_parameters_query_async.py +18 -0
  72. package/generator/test/generic_mock_api_tests/test_parameters_query.py +17 -0
  73. package/generator/test/generic_mock_api_tests/test_typetest_scalar.py +0 -5
  74. package/generator/test/generic_mock_api_tests/test_typetest_union_discriminated.py +290 -0
  75. package/generator/test/unbranded/requirements.txt +2 -0
  76. package/generator/test/unittests/test_model_base_serialization.py +323 -5
  77. package/package.json +5 -5
@@ -15,9 +15,9 @@ type ParamBase = {
15
15
  isContinuationToken: boolean;
16
16
  apiVersions: string[];
17
17
  };
18
- export declare function getAddedOn<TServiceOperation extends SdkServiceOperation>(context: PythonSdkContext, type: SdkEndpointParameter | SdkCredentialParameter | SdkModelPropertyType | SdkMethodParameter | SdkHttpParameter | SdkMethod<TServiceOperation>): string | undefined;
18
+ export declare function getAddedOn<TServiceOperation extends SdkServiceOperation>(context: PythonSdkContext, type: SdkEndpointParameter | SdkCredentialParameter | SdkModelPropertyType | SdkMethodParameter | SdkHttpParameter | SdkMethod<TServiceOperation>, serviceApiVersions?: string[]): string | undefined;
19
19
  export declare function isContinuationToken<TServiceOperation extends SdkServiceOperation>(parameter: SdkMethodParameter | SdkHttpParameter | SdkServiceResponseHeader, method?: SdkServiceMethod<TServiceOperation>, input?: boolean): boolean;
20
- export declare function emitParamBase<TServiceOperation extends SdkServiceOperation>(context: PythonSdkContext, parameter: SdkEndpointParameter | SdkCredentialParameter | SdkMethodParameter | SdkHttpParameter, method?: SdkServiceMethod<TServiceOperation>): ParamBase;
20
+ export declare function emitParamBase<TServiceOperation extends SdkServiceOperation>(context: PythonSdkContext, parameter: SdkEndpointParameter | SdkCredentialParameter | SdkMethodParameter | SdkHttpParameter, method?: SdkServiceMethod<TServiceOperation>, serviceApiVersions?: string[]): ParamBase;
21
21
  export declare function isAzureCoreErrorResponse(t: SdkType | undefined): boolean;
22
22
  export declare function capitalize(name: string): string;
23
23
  export declare function getRootNamespace(context: PythonSdkContext): string;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../emitter/src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,OAAO,EACR,MAAM,6CAA6C,CAAC;AAGrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAoF5C,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAE,oBAAoB,GAAG,sBAAsB,GAAG,kBAAkB,GAAG,gBAAgB,GAC/F,QAAQ,GAAG,QAAQ,CAGrB;AAED,wBAAgB,UAAU,CAAC,iBAAiB,SAAS,mBAAmB,EACtE,MAAM,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,GAC1C,OAAO,CAET;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,iBAAiB,GAAG,kBAAkB,GAChD,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,CAgB/B;AAED,KAAK,SAAS,GAAG;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,wBAAgB,UAAU,CAAC,iBAAiB,SAAS,mBAAmB,EACtE,OAAO,EAAE,gBAAgB,EACzB,IAAI,EACA,oBAAoB,GACpB,sBAAsB,GACtB,oBAAoB,GACpB,kBAAkB,GAClB,gBAAgB,GAChB,SAAS,CAAC,iBAAiB,CAAC,GAC/B,MAAM,GAAG,SAAS,CAWpB;AAED,wBAAgB,mBAAmB,CAAC,iBAAiB,SAAS,mBAAmB,EAC/E,SAAS,EAAE,kBAAkB,GAAG,gBAAgB,GAAG,wBAAwB,EAC3E,MAAM,CAAC,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,EAC5C,KAAK,GAAE,OAAc,GACpB,OAAO,CAsBT;AAED,wBAAgB,aAAa,CAAC,iBAAiB,SAAS,mBAAmB,EACzE,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAE,oBAAoB,GAAG,sBAAsB,GAAG,kBAAkB,GAAG,gBAAgB,EAChG,MAAM,CAAC,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,GAC3C,SAAS,CAmCX;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAUxE;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAWD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAiBlE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,UAQpF;AAqDD,wBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgCxD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../emitter/src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,OAAO,EACR,MAAM,6CAA6C,CAAC;AAGrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAoF5C,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAE,oBAAoB,GAAG,sBAAsB,GAAG,kBAAkB,GAAG,gBAAgB,GAC/F,QAAQ,GAAG,QAAQ,CAGrB;AAED,wBAAgB,UAAU,CAAC,iBAAiB,SAAS,mBAAmB,EACtE,MAAM,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,GAC1C,OAAO,CAET;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,iBAAiB,GAAG,kBAAkB,GAChD,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,CAgB/B;AAED,KAAK,SAAS,GAAG;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,wBAAgB,UAAU,CAAC,iBAAiB,SAAS,mBAAmB,EACtE,OAAO,EAAE,gBAAgB,EACzB,IAAI,EACA,oBAAoB,GACpB,sBAAsB,GACtB,oBAAoB,GACpB,kBAAkB,GAClB,gBAAgB,GAChB,SAAS,CAAC,iBAAiB,CAAC,EAChC,kBAAkB,GAAE,MAAM,EAAO,GAChC,MAAM,GAAG,SAAS,CAWpB;AAED,wBAAgB,mBAAmB,CAAC,iBAAiB,SAAS,mBAAmB,EAC/E,SAAS,EAAE,kBAAkB,GAAG,gBAAgB,GAAG,wBAAwB,EAC3E,MAAM,CAAC,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,EAC5C,KAAK,GAAE,OAAc,GACpB,OAAO,CAsBT;AAED,wBAAgB,aAAa,CAAC,iBAAiB,SAAS,mBAAmB,EACzE,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAE,oBAAoB,GAAG,sBAAsB,GAAG,kBAAkB,GAAG,gBAAgB,EAChG,MAAM,CAAC,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,EAC5C,kBAAkB,GAAE,MAAM,EAAO,GAChC,SAAS,CAmCX;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAUxE;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAWD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAiBlE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,UAQpF;AAqDD,wBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgCxD"}
@@ -101,11 +101,12 @@ export function getDelimiterAndExplode(parameter) {
101
101
  }
102
102
  return [delimiter, explode];
103
103
  }
104
- export function getAddedOn(context, type) {
105
- // since we do not support multi-service for now, we can just check the root client's api version
104
+ export function getAddedOn(context, type, serviceApiVersions = []) {
106
105
  // if type is added in the first version of the client, we do not need to add the versioning info
107
- if (type.apiVersions[0] ===
108
- context.sdkPackage.clients.find((c) => c.clientInitialization.initializedBy | InitializedByFlags.Individually)?.apiVersions[0])
106
+ const apiVersions = serviceApiVersions.length > 0
107
+ ? serviceApiVersions
108
+ : (context.sdkPackage.clients.find((c) => c.clientInitialization.initializedBy | InitializedByFlags.Individually)?.apiVersions ?? []);
109
+ if (type.apiVersions[0] === apiVersions[0])
109
110
  return undefined;
110
111
  return type.apiVersions[0];
111
112
  }
@@ -126,7 +127,7 @@ export function isContinuationToken(parameter, method, input = true) {
126
127
  }
127
128
  return Boolean(responseSegments && responseSegments.length > 0 && responseSegments.at(-1) === parameter);
128
129
  }
129
- export function emitParamBase(context, parameter, method) {
130
+ export function emitParamBase(context, parameter, method, serviceApiVersions = []) {
130
131
  let type = getType(context, parameter.type);
131
132
  if (parameter.isApiVersionParam) {
132
133
  if (parameter.clientDefaultValue) {
@@ -148,7 +149,7 @@ export function emitParamBase(context, parameter, method) {
148
149
  return {
149
150
  optional: parameter.optional,
150
151
  description: (parameter.summary ? parameter.summary : parameter.doc) ?? "",
151
- addedOn: getAddedOn(context, parameter),
152
+ addedOn: getAddedOn(context, parameter, serviceApiVersions),
152
153
  clientName,
153
154
  inOverload: false,
154
155
  isApiVersion: parameter.isApiVersionParam,
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../emitter/src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../emitter/src/utils.ts"],"names":[],"mappings":"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"}
@@ -40,12 +40,19 @@ function emitBasicMethod<TServiceOperation extends SdkServiceOperation>(
40
40
  rootClient: SdkClientType<TServiceOperation>,
41
41
  method: SdkBasicServiceMethod<TServiceOperation>,
42
42
  operationGroupName: string,
43
+ serviceApiVersions: string[],
43
44
  ): Record<string, any>[] {
44
45
  if (method.operation.kind !== "http")
45
46
  throw new Error("We only support HTTP operations right now");
46
47
  switch (method.operation.kind) {
47
48
  case "http":
48
- return emitBasicHttpMethod(context, rootClient, method, operationGroupName);
49
+ return emitBasicHttpMethod(
50
+ context,
51
+ rootClient,
52
+ method,
53
+ operationGroupName,
54
+ serviceApiVersions,
55
+ );
49
56
  default:
50
57
  throw new Error("We only support HTTP operations right now");
51
58
  }
@@ -56,12 +63,13 @@ function emitLroMethod<TServiceOperation extends SdkServiceOperation>(
56
63
  rootClient: SdkClientType<TServiceOperation>,
57
64
  method: SdkLroServiceMethod<TServiceOperation>,
58
65
  operationGroupName: string,
66
+ serviceApiVersions: string[],
59
67
  ): Record<string, any>[] {
60
68
  if (method.operation.kind !== "http")
61
69
  throw new Error("We only support HTTP operations right now");
62
70
  switch (method.operation.kind) {
63
71
  case "http":
64
- return emitLroHttpMethod(context, rootClient, method, operationGroupName);
72
+ return emitLroHttpMethod(context, rootClient, method, operationGroupName, serviceApiVersions);
65
73
  default:
66
74
  throw new Error("We only support HTTP operations right now");
67
75
  }
@@ -72,12 +80,19 @@ function emitPagingMethod<TServiceOperation extends SdkServiceOperation>(
72
80
  rootClient: SdkClientType<TServiceOperation>,
73
81
  method: SdkPagingServiceMethod<TServiceOperation>,
74
82
  operationGroupName: string,
83
+ serviceApiVersions: string[],
75
84
  ): Record<string, any>[] {
76
85
  if (method.operation.kind !== "http")
77
86
  throw new Error("We only support HTTP operations right now");
78
87
  switch (method.operation.kind) {
79
88
  case "http":
80
- return emitPagingHttpMethod(context, rootClient, method, operationGroupName);
89
+ return emitPagingHttpMethod(
90
+ context,
91
+ rootClient,
92
+ method,
93
+ operationGroupName,
94
+ serviceApiVersions,
95
+ );
81
96
  default:
82
97
  throw new Error("We only support HTTP operations right now");
83
98
  }
@@ -88,12 +103,19 @@ function emitLroPagingMethod<TServiceOperation extends SdkServiceOperation>(
88
103
  rootClient: SdkClientType<TServiceOperation>,
89
104
  method: SdkLroPagingServiceMethod<TServiceOperation>,
90
105
  operationGroupName: string,
106
+ serviceApiVersions: string[],
91
107
  ): Record<string, any>[] {
92
108
  if (method.operation.kind !== "http")
93
109
  throw new Error("We only support HTTP operations right now");
94
110
  switch (method.operation.kind) {
95
111
  case "http":
96
- return emitLroPagingHttpMethod(context, rootClient, method, operationGroupName);
112
+ return emitLroPagingHttpMethod(
113
+ context,
114
+ rootClient,
115
+ method,
116
+ operationGroupName,
117
+ serviceApiVersions,
118
+ );
97
119
  default:
98
120
  throw new Error("We only support HTTP operations right now");
99
121
  }
@@ -102,14 +124,15 @@ function emitLroPagingMethod<TServiceOperation extends SdkServiceOperation>(
102
124
  function emitMethodParameter(
103
125
  context: PythonSdkContext,
104
126
  parameter: SdkEndpointParameter | SdkCredentialParameter | SdkMethodParameter,
127
+ serviceApiVersions: string[] = [],
105
128
  ): Record<string, any>[] {
106
129
  if (parameter.kind === "endpoint") {
107
130
  if (parameter.type.kind === "union") {
108
131
  for (const endpointVal of parameter.type.variantTypes) {
109
- return emitEndpointType(context, endpointVal as SdkEndpointType);
132
+ return emitEndpointType(context, endpointVal as SdkEndpointType, serviceApiVersions);
110
133
  }
111
134
  } else {
112
- return emitEndpointType(context, parameter.type);
135
+ return emitEndpointType(context, parameter.type, serviceApiVersions);
113
136
  }
114
137
  }
115
138
  // filter out credential that python does not support for now
@@ -135,7 +158,7 @@ function emitMethodParameter(
135
158
  }
136
159
  }
137
160
  const base = {
138
- ...emitParamBase(context, parameter),
161
+ ...emitParamBase(context, parameter, undefined, serviceApiVersions),
139
162
  implementation: getImplementation(context, parameter),
140
163
  clientDefaultValue: parameter.clientDefaultValue,
141
164
  location: parameter.kind,
@@ -158,39 +181,51 @@ function emitMethod<TServiceOperation extends SdkServiceOperation>(
158
181
  rootClient: SdkClientType<TServiceOperation>,
159
182
  method: SdkServiceMethod<TServiceOperation>,
160
183
  operationGroupName: string,
184
+ serviceApiVersions: string[],
161
185
  ): Record<string, any>[] {
162
186
  switch (method.kind) {
163
187
  case "basic":
164
- return emitBasicMethod(context, rootClient, method, operationGroupName);
188
+ return emitBasicMethod(context, rootClient, method, operationGroupName, serviceApiVersions);
165
189
  case "lro":
166
- return emitLroMethod(context, rootClient, method, operationGroupName);
190
+ return emitLroMethod(context, rootClient, method, operationGroupName, serviceApiVersions);
167
191
  case "paging":
168
- return emitPagingMethod(context, rootClient, method, operationGroupName);
192
+ return emitPagingMethod(context, rootClient, method, operationGroupName, serviceApiVersions);
169
193
  default:
170
- return emitLroPagingMethod(context, rootClient, method, operationGroupName);
194
+ return emitLroPagingMethod(
195
+ context,
196
+ rootClient,
197
+ method,
198
+ operationGroupName,
199
+ serviceApiVersions,
200
+ );
171
201
  }
172
202
  }
173
203
 
204
+ // TCGC does not supply apiVersions information for each type that could facilitate versioning at the service level,
205
+ // therefore, it is necessary to provide it incrementally so that the `getAddedOn` function can use.
174
206
  function emitOperationGroups<TServiceOperation extends SdkServiceOperation>(
175
207
  context: PythonSdkContext,
176
208
  client: SdkClientType<TServiceOperation>,
177
209
  rootClient: SdkClientType<TServiceOperation>,
178
210
  prefix: string,
211
+ serviceApiVersions: string[],
179
212
  ): Record<string, any>[] | undefined {
180
213
  const operationGroups: Record<string, any>[] = [];
181
214
 
182
215
  for (const operationGroup of client.children ?? []) {
183
216
  const name = `${prefix}${operationGroup.name}`;
184
217
  let operations: Record<string, any>[] = [];
218
+ const apiVersions =
219
+ serviceApiVersions.length > 0 ? serviceApiVersions : operationGroup.apiVersions;
185
220
  for (const method of operationGroup.methods) {
186
- operations = operations.concat(emitMethod(context, rootClient, method, name));
221
+ operations = operations.concat(emitMethod(context, rootClient, method, name, apiVersions));
187
222
  }
188
223
  operationGroups.push({
189
224
  name: name,
190
225
  className: name,
191
226
  propertyName: operationGroup.name,
192
227
  operations: operations,
193
- operationGroups: emitOperationGroups(context, operationGroup, rootClient, name),
228
+ operationGroups: emitOperationGroups(context, operationGroup, rootClient, name, apiVersions),
194
229
  clientNamespace: getClientNamespace(context, operationGroup.namespace),
195
230
  });
196
231
  }
@@ -199,7 +234,9 @@ function emitOperationGroups<TServiceOperation extends SdkServiceOperation>(
199
234
  if (prefix === "") {
200
235
  let operations: Record<string, any>[] = [];
201
236
  for (const method of client.methods) {
202
- operations = operations.concat(emitMethod(context, rootClient, method, ""));
237
+ operations = operations.concat(
238
+ emitMethod(context, rootClient, method, "", serviceApiVersions),
239
+ );
203
240
  }
204
241
  if (operations.length > 0) {
205
242
  operationGroups.push({
@@ -233,10 +270,14 @@ function emitClient<TServiceOperation extends SdkServiceOperation>(
233
270
  // get all init parameters including children clients
234
271
  const initParameters: (SdkEndpointParameter | SdkCredentialParameter | SdkMethodParameter)[] = [];
235
272
  const paramNames = new Set<string>();
273
+ const serviceApiVersions = client.apiVersions;
236
274
  function collectParameters(client: SdkClientType<TServiceOperation>) {
237
275
  if (client.clientInitialization?.parameters) {
238
276
  for (const param of client.clientInitialization.parameters) {
239
- if (!paramNames.has(param.name)) {
277
+ if (param.isApiVersionParam && serviceApiVersions.length === 0) {
278
+ // for multi-service client with different api-versions, skip adding api-version param here
279
+ continue;
280
+ } else if (!paramNames.has(param.name)) {
240
281
  initParameters.push(param);
241
282
  paramNames.add(param.name);
242
283
  }
@@ -249,12 +290,14 @@ function emitClient<TServiceOperation extends SdkServiceOperation>(
249
290
  collectParameters(client);
250
291
 
251
292
  const parameters =
252
- initParameters.map((x) => emitMethodParameter(context, x)).reduce((a, b) => [...a, ...b]) ?? [];
293
+ initParameters
294
+ .map((x) => emitMethodParameter(context, x, client.apiVersions))
295
+ .reduce((a, b) => [...a, ...b]) ?? [];
253
296
 
254
297
  const endpointParameter = initParameters.find((x) => x.kind === "endpoint") as
255
298
  | SdkEndpointParameter
256
299
  | undefined;
257
- const operationGroups = emitOperationGroups(context, client, client, "");
300
+ const operationGroups = emitOperationGroups(context, client, client, "", client.apiVersions);
258
301
  let url: string | undefined;
259
302
  if (endpointParameter?.type.kind === "union") {
260
303
  url = (endpointParameter.type.variantTypes[0] as SdkEndpointType).serverUrl;
@@ -262,7 +305,7 @@ function emitClient<TServiceOperation extends SdkServiceOperation>(
262
305
  url = endpointParameter?.type.serverUrl;
263
306
  }
264
307
  return {
265
- name: client.name,
308
+ name: client.name.endsWith("Client") ? client.name : `${client.name}Client`,
266
309
  description: (client.summary ? client.summary : client.doc) ?? "",
267
310
  parameters,
268
311
  operationGroups,
@@ -60,10 +60,18 @@ export function emitBasicHttpMethod(
60
60
  rootClient: SdkClientType<SdkHttpOperation>,
61
61
  method: SdkBasicServiceMethod<SdkHttpOperation>,
62
62
  operationGroupName: string,
63
+ serviceApiVersions: string[],
63
64
  ): Record<string, any>[] {
64
65
  return [
65
66
  {
66
- ...emitHttpOperation(context, rootClient, operationGroupName, method.operation, method),
67
+ ...emitHttpOperation(
68
+ context,
69
+ rootClient,
70
+ operationGroupName,
71
+ method.operation,
72
+ method,
73
+ serviceApiVersions,
74
+ ),
67
75
  abstract: isAbstract(method),
68
76
  name: camelToSnakeCase(method.name),
69
77
  description: method.doc ?? "",
@@ -77,9 +85,17 @@ function emitInitialLroHttpMethod(
77
85
  rootClient: SdkClientType<SdkHttpOperation>,
78
86
  method: SdkLroServiceMethod<SdkHttpOperation> | SdkLroPagingServiceMethod<SdkHttpOperation>,
79
87
  operationGroupName: string,
88
+ serviceApiVersions: string[],
80
89
  ): Record<string, any> {
81
90
  return {
82
- ...emitHttpOperation(context, rootClient, operationGroupName, method.operation, method),
91
+ ...emitHttpOperation(
92
+ context,
93
+ rootClient,
94
+ operationGroupName,
95
+ method.operation,
96
+ method,
97
+ serviceApiVersions,
98
+ ),
83
99
  name: `_${camelToSnakeCase(method.name)}_initial`,
84
100
  isLroInitialOperation: true,
85
101
  wantTracing: false,
@@ -94,12 +110,26 @@ function addLroInformation(
94
110
  rootClient: SdkClientType<SdkHttpOperation>,
95
111
  method: SdkLroServiceMethod<SdkHttpOperation> | SdkLroPagingServiceMethod<SdkHttpOperation>,
96
112
  operationGroupName: string,
113
+ serviceApiVersions: string[],
97
114
  ) {
98
115
  return {
99
- ...emitHttpOperation(context, rootClient, operationGroupName, method.operation, method),
116
+ ...emitHttpOperation(
117
+ context,
118
+ rootClient,
119
+ operationGroupName,
120
+ method.operation,
121
+ method,
122
+ serviceApiVersions,
123
+ ),
100
124
  name: camelToSnakeCase(method.name),
101
125
  discriminator: "lro",
102
- initialOperation: emitInitialLroHttpMethod(context, rootClient, method, operationGroupName),
126
+ initialOperation: emitInitialLroHttpMethod(
127
+ context,
128
+ rootClient,
129
+ method,
130
+ operationGroupName,
131
+ serviceApiVersions,
132
+ ),
103
133
  exposeStreamKeyword: false,
104
134
  description: method.doc ?? "",
105
135
  summary: method.summary,
@@ -195,6 +225,7 @@ function addPagingInformation(
195
225
  rootClient: SdkClientType<SdkHttpOperation>,
196
226
  method: SdkPagingServiceMethod<SdkHttpOperation> | SdkLroPagingServiceMethod<SdkHttpOperation>,
197
227
  operationGroupName: string,
228
+ serviceApiVersions: string[],
198
229
  ) {
199
230
  for (const response of method.operation.responses) {
200
231
  if (response.type) {
@@ -206,7 +237,14 @@ function addPagingInformation(
206
237
  }
207
238
  }
208
239
  const itemType = getType(context, method.response.type!);
209
- const base = emitHttpOperation(context, rootClient, operationGroupName, method.operation, method);
240
+ const base = emitHttpOperation(
241
+ context,
242
+ rootClient,
243
+ operationGroupName,
244
+ method.operation,
245
+ method,
246
+ serviceApiVersions,
247
+ );
210
248
  const itemName = getWireNameWithDiagnostics(
211
249
  context,
212
250
  method.response.resultSegments,
@@ -228,7 +266,9 @@ function addPagingInformation(
228
266
  if (param.kind === "method") {
229
267
  for (const parameter of method.operation.parameters) {
230
268
  if (parameter.kind === "query" && parameter.correspondingMethodParams.includes(param)) {
231
- nextLinkReInjectedParameters.push(emitHttpQueryParameter(context, parameter, method));
269
+ nextLinkReInjectedParameters.push(
270
+ emitHttpQueryParameter(context, rootClient, parameter, method, serviceApiVersions),
271
+ );
232
272
  }
233
273
  }
234
274
  }
@@ -257,8 +297,15 @@ export function emitLroHttpMethod(
257
297
  rootClient: SdkClientType<SdkHttpOperation>,
258
298
  method: SdkLroServiceMethod<SdkHttpOperation>,
259
299
  operationGroupName: string,
300
+ serviceApiVersions: string[],
260
301
  ): Record<string, any>[] {
261
- const lroMethod = addLroInformation(context, rootClient, method, operationGroupName);
302
+ const lroMethod = addLroInformation(
303
+ context,
304
+ rootClient,
305
+ method,
306
+ operationGroupName,
307
+ serviceApiVersions,
308
+ );
262
309
  return [lroMethod.initialOperation, lroMethod];
263
310
  }
264
311
 
@@ -267,8 +314,15 @@ export function emitPagingHttpMethod(
267
314
  rootClient: SdkClientType<SdkHttpOperation>,
268
315
  method: SdkPagingServiceMethod<SdkHttpOperation>,
269
316
  operationGroupName: string,
317
+ serviceApiVersions: string[],
270
318
  ): Record<string, any>[] {
271
- const pagingMethod = addPagingInformation(context, rootClient, method, operationGroupName);
319
+ const pagingMethod = addPagingInformation(
320
+ context,
321
+ rootClient,
322
+ method,
323
+ operationGroupName,
324
+ serviceApiVersions,
325
+ );
272
326
  return [pagingMethod];
273
327
  }
274
328
 
@@ -277,10 +331,27 @@ export function emitLroPagingHttpMethod(
277
331
  rootClient: SdkClientType<SdkHttpOperation>,
278
332
  method: SdkLroPagingServiceMethod<SdkHttpOperation>,
279
333
  operationGroupName: string,
334
+ serviceApiVersions: string[],
280
335
  ): Record<string, any>[] {
281
- const pagingMethod = addPagingInformation(context, rootClient, method, operationGroupName);
282
- const lroMethod = addLroInformation(context, rootClient, method, operationGroupName);
283
- return [lroMethod.initialOperation, pagingMethod, lroMethod];
336
+ const pagingMethod = addPagingInformation(
337
+ context,
338
+ rootClient,
339
+ method,
340
+ operationGroupName,
341
+ serviceApiVersions,
342
+ );
343
+ const lroMethod = addLroInformation(
344
+ context,
345
+ rootClient,
346
+ method,
347
+ operationGroupName,
348
+ serviceApiVersions,
349
+ );
350
+
351
+ // merge paging method and lro method into lropaging method
352
+ const lroPagingMethod = { ...lroMethod, ...pagingMethod, discriminator: "lropaging" };
353
+
354
+ return [lroMethod.initialOperation, lroPagingMethod];
284
355
  }
285
356
 
286
357
  function emitHttpOperation(
@@ -289,6 +360,7 @@ function emitHttpOperation(
289
360
  operationGroupName: string,
290
361
  operation: SdkHttpOperation,
291
362
  method: SdkServiceMethod<SdkHttpOperation>,
363
+ serviceApiVersions: string[],
292
364
  ): Record<string, any> {
293
365
  const responses: Record<string, any>[] = [];
294
366
  const exceptions: Record<string, any>[] = [];
@@ -301,12 +373,12 @@ function emitHttpOperation(
301
373
  const result = {
302
374
  url: operation.path,
303
375
  method: operation.verb.toUpperCase(),
304
- parameters: emitHttpParameters(context, rootClient, operation, method),
305
- bodyParameter: emitHttpBodyParameter(context, operation.bodyParam),
376
+ parameters: emitHttpParameters(context, rootClient, operation, method, serviceApiVersions),
377
+ bodyParameter: emitHttpBodyParameter(context, operation.bodyParam, serviceApiVersions),
306
378
  responses,
307
379
  exceptions,
308
380
  groupName: operationGroupName,
309
- addedOn: method ? getAddedOn(context, method) : "",
381
+ addedOn: method ? getAddedOn(context, method, serviceApiVersions) : "",
310
382
  discriminator: "basic",
311
383
  isOverload: false,
312
384
  overloads: [],
@@ -373,8 +445,9 @@ function emitHttpPathParameter(
373
445
  context: PythonSdkContext,
374
446
  parameter: SdkPathParameter,
375
447
  operation: SdkHttpOperation,
448
+ serviceApiVersions: string[],
376
449
  ): Record<string, any> {
377
- const base = emitParamBase(context, parameter);
450
+ const base = emitParamBase(context, parameter, undefined, serviceApiVersions);
378
451
  if (parameter.optional && operation.path.includes(`/{${parameter.serializedName}}`)) {
379
452
  operation.path = operation.path.replace(
380
453
  `/{${parameter.serializedName}}`,
@@ -390,12 +463,14 @@ function emitHttpPathParameter(
390
463
  skipUrlEncoding: parameter.allowReserved,
391
464
  };
392
465
  }
466
+
393
467
  function emitHttpHeaderParameter(
394
468
  context: PythonSdkContext,
395
469
  parameter: SdkHeaderParameter,
396
470
  method: SdkServiceMethod<SdkHttpOperation>,
471
+ serviceApiVersions: string[],
397
472
  ): Record<string, any> {
398
- const base = emitParamBase(context, parameter, method);
473
+ const base = emitParamBase(context, parameter, method, serviceApiVersions);
399
474
  const [delimiter, explode] = getDelimiterAndExplode(parameter);
400
475
  let clientDefaultValue = parameter.clientDefaultValue;
401
476
  if (isContentTypeParameter(parameter)) {
@@ -418,16 +493,22 @@ function emitHttpHeaderParameter(
418
493
 
419
494
  function emitHttpQueryParameter(
420
495
  context: PythonSdkContext,
496
+ rootClient: SdkClientType<SdkHttpOperation>,
421
497
  parameter: SdkQueryParameter,
422
498
  method: SdkServiceMethod<SdkHttpOperation>,
499
+ serviceApiVersions: string[],
423
500
  ): Record<string, any> {
424
- const base = emitParamBase(context, parameter, method);
501
+ const base = emitParamBase(context, parameter, method, serviceApiVersions);
425
502
  const [delimiter, explode] = getDelimiterAndExplode(parameter);
426
503
  return {
427
504
  ...base,
428
505
  wireName: parameter.serializedName,
429
506
  location: parameter.kind,
430
- implementation: getImplementation(context, parameter),
507
+ implementation: parameter.isApiVersionParam
508
+ ? rootClient.apiVersions.length > 0 && parameter.onClient
509
+ ? "Client"
510
+ : "Method"
511
+ : getImplementation(context, parameter),
431
512
  delimiter,
432
513
  explode,
433
514
  clientDefaultValue: parameter.clientDefaultValue,
@@ -439,6 +520,7 @@ function emitHttpParameters(
439
520
  rootClient: SdkClientType<SdkHttpOperation>,
440
521
  operation: SdkHttpOperation,
441
522
  method: SdkServiceMethod<SdkHttpOperation>,
523
+ serviceApiVersions: string[],
442
524
  ): Record<string, any>[] {
443
525
  const parameters: Record<string, any>[] = [...context.__endpointPathParameters];
444
526
 
@@ -478,13 +560,15 @@ function emitHttpParameters(
478
560
  for (const parameter of httpParameters) {
479
561
  switch (parameter.kind) {
480
562
  case "header":
481
- parameters.push(emitHttpHeaderParameter(context, parameter, method));
563
+ parameters.push(emitHttpHeaderParameter(context, parameter, method, serviceApiVersions));
482
564
  break;
483
565
  case "query":
484
- parameters.push(emitHttpQueryParameter(context, parameter, method));
566
+ parameters.push(
567
+ emitHttpQueryParameter(context, rootClient, parameter, method, serviceApiVersions),
568
+ );
485
569
  break;
486
570
  case "path":
487
- parameters.push(emitHttpPathParameter(context, parameter, operation));
571
+ parameters.push(emitHttpPathParameter(context, parameter, operation, serviceApiVersions));
488
572
  break;
489
573
  }
490
574
  }
@@ -495,10 +579,11 @@ function emitHttpParameters(
495
579
  function emitHttpBodyParameter(
496
580
  context: PythonSdkContext,
497
581
  bodyParam?: SdkBodyParameter,
582
+ serviceApiVersions: string[] = [],
498
583
  ): Record<string, any> | undefined {
499
584
  if (bodyParam === undefined) return undefined;
500
585
  return {
501
- ...emitParamBase(context, bodyParam),
586
+ ...emitParamBase(context, bodyParam, undefined, serviceApiVersions),
502
587
  contentTypes: bodyParam.contentTypes,
503
588
  location: bodyParam.kind,
504
589
  clientName: bodyParam.isGeneratedName ? "body" : camelToSnakeCase(bodyParam.name),
@@ -514,10 +514,11 @@ export const KnownTypes = {
514
514
  export function emitEndpointType(
515
515
  context: PythonSdkContext,
516
516
  type: SdkEndpointType,
517
+ serviceApiVersions: string[],
517
518
  ): Record<string, any>[] {
518
519
  const params: Record<string, any>[] = [];
519
520
  for (const param of type.templateArguments) {
520
- const paramBase = emitParamBase(context, param);
521
+ const paramBase = emitParamBase(context, param, undefined, serviceApiVersions);
521
522
  paramBase.clientName = context.arm ? "base_url" : paramBase.clientName;
522
523
  params.push({
523
524
  ...paramBase,