Skip to content

Commit f388179

Browse files
authored
Merge branch 'main' into copilot/verify-implement-spector-tests
2 parents 963eea5 + 641a3b7 commit f388179

13 files changed

Lines changed: 445 additions & 22 deletions

File tree

packages/typespec-test/test/compute/generated/typespec-ts/review/compute.api.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ export class ComputeClient {
5959
readonly pipeline: Pipeline;
6060
readonly restorePointCollections: RestorePointCollectionsOperations;
6161
readonly virtualMachines: VirtualMachinesOperations;
62+
readonly virtualMachineScaleSetExtensions: VirtualMachineScaleSetExtensionsOperations;
6263
}
6364

6465
// @public
@@ -276,6 +277,11 @@ export interface RestorePollerOptions<TResult, TResponse extends PathUncheckedRe
276277
updateIntervalInMs?: number;
277278
}
278279

280+
// @public
281+
export interface SubResourceReadOnly {
282+
readonly id?: string;
283+
}
284+
279285
// @public
280286
export interface SystemData {
281287
createdAt?: Date;
@@ -303,6 +309,34 @@ export interface VirtualMachineProperties {
303309
readonly provisioningState?: ResourceProvisioningState;
304310
}
305311

312+
// @public
313+
export interface VirtualMachineScaleSetExtension extends SubResourceReadOnly {
314+
name?: string;
315+
properties?: VirtualMachineScaleSetExtensionProperties;
316+
readonly vmType?: string;
317+
}
318+
319+
// @public
320+
export interface VirtualMachineScaleSetExtensionProperties {
321+
forceUpdateTag?: string;
322+
}
323+
324+
// @public
325+
export interface VirtualMachineScaleSetExtensionsCreateOrUpdateOptionalParams extends OperationOptions {
326+
updateIntervalInMs?: number;
327+
}
328+
329+
// @public
330+
export interface VirtualMachineScaleSetExtensionsGetOptionalParams extends OperationOptions {
331+
expand?: string;
332+
}
333+
334+
// @public
335+
export interface VirtualMachineScaleSetExtensionsOperations {
336+
createOrUpdate: (resourceGroupName: string, vmssExtensionName: string, resource: VirtualMachineScaleSetExtension, options?: VirtualMachineScaleSetExtensionsCreateOrUpdateOptionalParams) => PollerLike<OperationState<VirtualMachineScaleSetExtension>, VirtualMachineScaleSetExtension>;
337+
get: (resourceGroupName: string, vmssExtensionName: string, options?: VirtualMachineScaleSetExtensionsGetOptionalParams) => Promise<VirtualMachineScaleSetExtension>;
338+
}
339+
306340
// @public
307341
export interface VirtualMachinesCreateOrUpdateOptionalParams extends OperationOptions {
308342
updateIntervalInMs?: number;
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// Copyright (c) Microsoft Corporation.
2+
// Licensed under the MIT License.
3+
4+
export { createOrUpdate, get } from "./operations.js";
5+
export type {
6+
VirtualMachineScaleSetExtensionsCreateOrUpdateOptionalParams,
7+
VirtualMachineScaleSetExtensionsGetOptionalParams,
8+
} from "./options.js";
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
// Copyright (c) Microsoft Corporation.
2+
// Licensed under the MIT License.
3+
4+
import { ComputeContext as Client } from "../index.js";
5+
import {
6+
VirtualMachineScaleSetExtension,
7+
virtualMachineScaleSetExtensionSerializer,
8+
virtualMachineScaleSetExtensionDeserializer,
9+
} from "../../models/compute/models.js";
10+
import { errorResponseDeserializer } from "../../models/models.js";
11+
import { getLongRunningPoller } from "../../static-helpers/pollingHelpers.js";
12+
import { expandUrlTemplate } from "../../static-helpers/urlTemplate.js";
13+
import {
14+
VirtualMachineScaleSetExtensionsCreateOrUpdateOptionalParams,
15+
VirtualMachineScaleSetExtensionsGetOptionalParams,
16+
} from "./options.js";
17+
import {
18+
StreamableMethod,
19+
PathUncheckedResponse,
20+
createRestError,
21+
operationOptionsToRequestParameters,
22+
} from "@azure-rest/core-client";
23+
import { PollerLike, OperationState } from "@azure/core-lro";
24+
25+
export function _createOrUpdateSend(
26+
context: Client,
27+
resourceGroupName: string,
28+
vmssExtensionName: string,
29+
resource: VirtualMachineScaleSetExtension,
30+
options: VirtualMachineScaleSetExtensionsCreateOrUpdateOptionalParams = { requestOptions: {} },
31+
): StreamableMethod {
32+
const path = expandUrlTemplate(
33+
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/extensions/{vmssExtensionName}{?api%2Dversion}",
34+
{
35+
subscriptionId: context.subscriptionId,
36+
resourceGroupName: resourceGroupName,
37+
vmssExtensionName: vmssExtensionName,
38+
"api%2Dversion": "2025-04-01",
39+
},
40+
{
41+
allowReserved: options?.requestOptions?.skipUrlEncoding,
42+
},
43+
);
44+
return context
45+
.path(path)
46+
.put({
47+
...operationOptionsToRequestParameters(options),
48+
contentType: "application/json",
49+
headers: { accept: "application/json", ...options.requestOptions?.headers },
50+
body: virtualMachineScaleSetExtensionSerializer(resource),
51+
});
52+
}
53+
54+
export async function _createOrUpdateDeserialize(
55+
result: PathUncheckedResponse,
56+
): Promise<VirtualMachineScaleSetExtension> {
57+
const expectedStatuses = ["200", "201", "202"];
58+
if (!expectedStatuses.includes(result.status)) {
59+
const error = createRestError(result);
60+
error.details = errorResponseDeserializer(result.body);
61+
62+
throw error;
63+
}
64+
65+
return virtualMachineScaleSetExtensionDeserializer(result.body);
66+
}
67+
68+
/** The operation to create or update an extension. */
69+
export function createOrUpdate(
70+
context: Client,
71+
resourceGroupName: string,
72+
vmssExtensionName: string,
73+
resource: VirtualMachineScaleSetExtension,
74+
options: VirtualMachineScaleSetExtensionsCreateOrUpdateOptionalParams = { requestOptions: {} },
75+
): PollerLike<OperationState<VirtualMachineScaleSetExtension>, VirtualMachineScaleSetExtension> {
76+
return getLongRunningPoller(context, _createOrUpdateDeserialize, ["200", "201", "202"], {
77+
updateIntervalInMs: options?.updateIntervalInMs,
78+
abortSignal: options?.abortSignal,
79+
getInitialResponse: () =>
80+
_createOrUpdateSend(context, resourceGroupName, vmssExtensionName, resource, options),
81+
resourceLocationConfig: "location",
82+
apiVersion: "2025-04-01",
83+
}) as PollerLike<
84+
OperationState<VirtualMachineScaleSetExtension>,
85+
VirtualMachineScaleSetExtension
86+
>;
87+
}
88+
89+
export function _getSend(
90+
context: Client,
91+
resourceGroupName: string,
92+
vmssExtensionName: string,
93+
options: VirtualMachineScaleSetExtensionsGetOptionalParams = { requestOptions: {} },
94+
): StreamableMethod {
95+
const path = expandUrlTemplate(
96+
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/extensions/{vmssExtensionName}{?api%2Dversion,%24expand}",
97+
{
98+
subscriptionId: context.subscriptionId,
99+
resourceGroupName: resourceGroupName,
100+
vmssExtensionName: vmssExtensionName,
101+
"api%2Dversion": "2025-04-01",
102+
"%24expand": options?.expand,
103+
},
104+
{
105+
allowReserved: options?.requestOptions?.skipUrlEncoding,
106+
},
107+
);
108+
return context
109+
.path(path)
110+
.get({
111+
...operationOptionsToRequestParameters(options),
112+
headers: { accept: "application/json", ...options.requestOptions?.headers },
113+
});
114+
}
115+
116+
export async function _getDeserialize(
117+
result: PathUncheckedResponse,
118+
): Promise<VirtualMachineScaleSetExtension> {
119+
const expectedStatuses = ["200"];
120+
if (!expectedStatuses.includes(result.status)) {
121+
const error = createRestError(result);
122+
error.details = errorResponseDeserializer(result.body);
123+
124+
throw error;
125+
}
126+
127+
return virtualMachineScaleSetExtensionDeserializer(result.body);
128+
}
129+
130+
/** The operation to get the extension. */
131+
export async function get(
132+
context: Client,
133+
resourceGroupName: string,
134+
vmssExtensionName: string,
135+
options: VirtualMachineScaleSetExtensionsGetOptionalParams = { requestOptions: {} },
136+
): Promise<VirtualMachineScaleSetExtension> {
137+
const result = await _getSend(context, resourceGroupName, vmssExtensionName, options);
138+
return _getDeserialize(result);
139+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Copyright (c) Microsoft Corporation.
2+
// Licensed under the MIT License.
3+
4+
import { OperationOptions } from "@azure-rest/core-client";
5+
6+
/** Optional parameters. */
7+
export interface VirtualMachineScaleSetExtensionsCreateOrUpdateOptionalParams extends OperationOptions {
8+
/** Delay to wait until next poll, in milliseconds. */
9+
updateIntervalInMs?: number;
10+
}
11+
12+
/** Optional parameters. */
13+
export interface VirtualMachineScaleSetExtensionsGetOptionalParams extends OperationOptions {
14+
/** The expand expression to apply on the operation. */
15+
expand?: string;
16+
}

packages/typespec-test/test/compute/generated/typespec-ts/src/classic/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ export type { DiskAccessesOperations } from "./diskAccesses/index.js";
66
export type { DisksOperations } from "./disks/index.js";
77
export type { RestorePointCollectionsOperations } from "./restorePointCollections/index.js";
88
export type { VirtualMachinesOperations } from "./virtualMachines/index.js";
9+
export type { VirtualMachineScaleSetExtensionsOperations } from "./virtualMachineScaleSetExtensions/index.js";
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
// Copyright (c) Microsoft Corporation.
2+
// Licensed under the MIT License.
3+
4+
import { ComputeContext } from "../../api/computeContext.js";
5+
import { createOrUpdate, get } from "../../api/virtualMachineScaleSetExtensions/operations.js";
6+
import {
7+
VirtualMachineScaleSetExtensionsCreateOrUpdateOptionalParams,
8+
VirtualMachineScaleSetExtensionsGetOptionalParams,
9+
} from "../../api/virtualMachineScaleSetExtensions/options.js";
10+
import { VirtualMachineScaleSetExtension } from "../../models/compute/models.js";
11+
import { PollerLike, OperationState } from "@azure/core-lro";
12+
13+
/** Interface representing a VirtualMachineScaleSetExtensions operations. */
14+
export interface VirtualMachineScaleSetExtensionsOperations {
15+
/** The operation to create or update an extension. */
16+
createOrUpdate: (
17+
resourceGroupName: string,
18+
vmssExtensionName: string,
19+
resource: VirtualMachineScaleSetExtension,
20+
options?: VirtualMachineScaleSetExtensionsCreateOrUpdateOptionalParams,
21+
) => PollerLike<OperationState<VirtualMachineScaleSetExtension>, VirtualMachineScaleSetExtension>;
22+
/** The operation to get the extension. */
23+
get: (
24+
resourceGroupName: string,
25+
vmssExtensionName: string,
26+
options?: VirtualMachineScaleSetExtensionsGetOptionalParams,
27+
) => Promise<VirtualMachineScaleSetExtension>;
28+
}
29+
30+
function _getVirtualMachineScaleSetExtensions(context: ComputeContext) {
31+
return {
32+
createOrUpdate: (
33+
resourceGroupName: string,
34+
vmssExtensionName: string,
35+
resource: VirtualMachineScaleSetExtension,
36+
options?: VirtualMachineScaleSetExtensionsCreateOrUpdateOptionalParams,
37+
) => createOrUpdate(context, resourceGroupName, vmssExtensionName, resource, options),
38+
get: (
39+
resourceGroupName: string,
40+
vmssExtensionName: string,
41+
options?: VirtualMachineScaleSetExtensionsGetOptionalParams,
42+
) => get(context, resourceGroupName, vmssExtensionName, options),
43+
};
44+
}
45+
46+
export function _getVirtualMachineScaleSetExtensionsOperations(
47+
context: ComputeContext,
48+
): VirtualMachineScaleSetExtensionsOperations {
49+
return {
50+
..._getVirtualMachineScaleSetExtensions(context),
51+
};
52+
}

packages/typespec-test/test/compute/generated/typespec-ts/src/computeClient.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ import {
1515
RestorePointCollectionsOperations,
1616
_getRestorePointCollectionsOperations,
1717
} from "./classic/restorePointCollections/index.js";
18+
import {
19+
VirtualMachineScaleSetExtensionsOperations,
20+
_getVirtualMachineScaleSetExtensionsOperations,
21+
} from "./classic/virtualMachineScaleSetExtensions/index.js";
1822
import {
1923
VirtualMachinesOperations,
2024
_getVirtualMachinesOperations,
@@ -46,6 +50,9 @@ export class ComputeClient {
4650
this.pipeline = this._client.pipeline;
4751
this.diskAccesses = _getDiskAccessesOperations(this._client);
4852
this.disks = _getDisksOperations(this._client);
53+
this.virtualMachineScaleSetExtensions = _getVirtualMachineScaleSetExtensionsOperations(
54+
this._client,
55+
);
4956
this.actionGroups = _getActionGroupsOperations(this._client);
5057
this.restorePointCollections = _getRestorePointCollectionsOperations(this._client);
5158
this.virtualMachines = _getVirtualMachinesOperations(this._client);
@@ -55,6 +62,8 @@ export class ComputeClient {
5562
public readonly diskAccesses: DiskAccessesOperations;
5663
/** The operation groups for disks */
5764
public readonly disks: DisksOperations;
65+
/** The operation groups for virtualMachineScaleSetExtensions */
66+
public readonly virtualMachineScaleSetExtensions: VirtualMachineScaleSetExtensionsOperations;
5867
/** The operation groups for actionGroups */
5968
public readonly actionGroups: ActionGroupsOperations;
6069
/** The operation groups for restorePointCollections */

packages/typespec-test/test/compute/generated/typespec-ts/src/index.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ export type {
4040
RestorePointCollectionProperties,
4141
ComputeActionGroup,
4242
ComputeActionGroupsProperties,
43+
VirtualMachineScaleSetExtension,
44+
VirtualMachineScaleSetExtensionProperties,
45+
SubResourceReadOnly,
4346
} from "./models/compute/index.js";
4447
export type {
4548
ComputeDiskActionGroup,
@@ -70,12 +73,17 @@ export type {
7073
VirtualMachinesCreateOrUpdateOptionalParams,
7174
VirtualMachinesGetOptionalParams,
7275
} from "./api/virtualMachines/index.js";
76+
export type {
77+
VirtualMachineScaleSetExtensionsCreateOrUpdateOptionalParams,
78+
VirtualMachineScaleSetExtensionsGetOptionalParams,
79+
} from "./api/virtualMachineScaleSetExtensions/index.js";
7380
export type {
7481
ActionGroupsOperations,
7582
DiskAccessesOperations,
7683
DisksOperations,
7784
RestorePointCollectionsOperations,
7885
VirtualMachinesOperations,
86+
VirtualMachineScaleSetExtensionsOperations,
7987
} from "./classic/index.js";
8088
export type { PageSettings, ContinuablePage, PagedAsyncIterableIterator };
8189
export { AzureClouds };

packages/typespec-test/test/compute/generated/typespec-ts/src/models/compute/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,7 @@ export type {
88
RestorePointCollectionProperties,
99
ComputeActionGroup,
1010
ComputeActionGroupsProperties,
11+
VirtualMachineScaleSetExtension,
12+
VirtualMachineScaleSetExtensionProperties,
13+
SubResourceReadOnly,
1114
} from "./models.js";

0 commit comments

Comments
 (0)