diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 51a8951f61ed..d0c500419e22 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5069,7 +5069,7 @@ importers: sdk/computefleet/arm-computefleet: dependencies: '@azure-rest/core-client': - specifier: ^2.3.2 + specifier: ^2.3.1 version: link:../../core/core-client-rest '@azure/abort-controller': specifier: ^2.1.2 @@ -5081,13 +5081,13 @@ importers: specifier: ^3.1.0 version: link:../../core/core-lro '@azure/core-rest-pipeline': - specifier: ^1.18.2 + specifier: ^1.20.0 version: link:../../core/core-rest-pipeline '@azure/core-util': - specifier: ^1.11.0 + specifier: ^1.12.0 version: link:../../core/core-util '@azure/logger': - specifier: ^1.1.4 + specifier: ^1.2.0 version: link:../../core/logger tslib: specifier: ^2.8.1 @@ -5109,7 +5109,7 @@ importers: specifier: ^3.0.0 version: link:../../../common/tools/eslint-plugin-azure-sdk '@azure/identity': - specifier: ^4.2.1 + specifier: ^4.9.0 version: link:../../identity/identity '@types/node': specifier: ^20.0.0 @@ -5127,7 +5127,7 @@ importers: specifier: ^9.9.0 version: 9.32.0 playwright: - specifier: ^1.49.1 + specifier: ^1.52.0 version: 1.54.2 typescript: specifier: ~5.8.2 @@ -35334,7 +35334,7 @@ snapshots: magicast: 0.3.5 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.9)(@vitest/browser@3.2.4)(jsdom@16.7.0)(msw@2.7.3(@types/node@20.19.9)(typescript@5.8.3))(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.1) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.9)(@vitest/browser@3.2.4)(jsdom@16.7.0)(msw@2.7.3(@types/node@20.19.9)(typescript@5.8.3))(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.1) transitivePeerDependencies: - supports-color diff --git a/sdk/computefleet/arm-computefleet/CHANGELOG.md b/sdk/computefleet/arm-computefleet/CHANGELOG.md index 8e12a1068edd..9696466b7d43 100644 --- a/sdk/computefleet/arm-computefleet/CHANGELOG.md +++ b/sdk/computefleet/arm-computefleet/CHANGELOG.md @@ -1,15 +1,44 @@ # Release History -## 1.0.1 (Unreleased) +## 2.0.0-beta.1 (2025-08-14) +Compared with version 1.0.0 ### Features Added + - Added operation FleetsOperations.cancel + - Added operation FleetsOperations.listVirtualMachines + - Added Interface ErrorAdditionalInfo + - Added Interface ErrorDetail + - Added Interface ErrorResponse + - Added Interface FleetsCancelOptionalParams + - Added Interface FleetsListVirtualMachinesOptionalParams + - Added Interface VirtualMachine + - Added Interface ZoneAllocationPolicy + - Added Interface ZonePreference + - Interface AzureFleetClientOptionalParams has a new optional parameter cloudSetting + - Interface FleetProperties has a new optional parameter capacityType + - Interface FleetProperties has a new optional parameter mode + - Interface FleetProperties has a new optional parameter zoneAllocationPolicy + - Interface VirtualMachineScaleSetDataDisk has a new optional parameter diskIopsReadWrite + - Added Type Alias AzureSupportedClouds + - Added Type Alias CapacityType + - Added Type Alias FleetMode + - Added Type Alias VMOperationStatus + - Added Type Alias ZoneDistributionStrategy + - Added Enum AzureClouds + - Added Enum KnownCapacityType + - Added Enum KnownFleetMode + - Added Enum KnownVersions + - Added Enum KnownVMOperationStatus + - Added Enum KnownZoneDistributionStrategy + - Enum KnownAcceleratorType has a new value Fpga + - Enum KnownDiskControllerTypes has a new value Scsi ### Breaking Changes + - Interface VirtualMachineScaleSetDataDisk no longer has parameter diskIOPSReadWrite + - Enum KnownAcceleratorType no longer has value FPGA + - Enum KnownDiskControllerTypes no longer has value SCSI -### Bugs Fixed - -### Other Changes - + ## 1.0.0 (2024-10-21) ### Features Added diff --git a/sdk/computefleet/arm-computefleet/LICENSE b/sdk/computefleet/arm-computefleet/LICENSE index b2f52a2bad4e..63447fd8bbbf 100644 --- a/sdk/computefleet/arm-computefleet/LICENSE +++ b/sdk/computefleet/arm-computefleet/LICENSE @@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +SOFTWARE. \ No newline at end of file diff --git a/sdk/computefleet/arm-computefleet/README.md b/sdk/computefleet/arm-computefleet/README.md index 43fa3ffc2682..a6d5e1b53bc1 100644 --- a/sdk/computefleet/arm-computefleet/README.md +++ b/sdk/computefleet/arm-computefleet/README.md @@ -2,11 +2,14 @@ This package contains an isomorphic SDK (runs both in Node.js and in browsers) for AzureFleet client. -Azure Fleet Service -[Source code](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/computefleet/arm-computefleet) | -[Package (NPM)](https://www.npmjs.com/package/@azure/arm-computefleet) | -[API reference documentation](https://learn.microsoft.com/javascript/api/@azure/arm-computefleet?view=azure-node-preview) | + +Key links: + +- [Source code](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/computefleet/arm-computefleet) +- [Package (NPM)](https://www.npmjs.com/package/@azure/arm-computefleet) +- [API reference documentation](https://learn.microsoft.com/javascript/api/@azure/arm-computefleet?view=azure-node-preview) +- [Samples](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/computefleet/arm-computefleet/samples) ## Getting started @@ -43,7 +46,6 @@ npm install @azure/identity ``` You will also need to **register a new AAD application and grant access to AzureFleet** by assigning the suitable role to your service principal (note: roles such as `"Owner"` will not grant the necessary permissions). -Set the values of the client ID, tenant ID, and client secret of the AAD application as environment variables: `AZURE_CLIENT_ID`, `AZURE_TENANT_ID`, `AZURE_CLIENT_SECRET`. For more information about how to create an Azure AD Application check out [this guide](https://learn.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal). @@ -63,16 +65,16 @@ For browser environments, use the `InteractiveBrowserCredential` from the `@azur import { InteractiveBrowserCredential } from "@azure/identity"; import { AzureFleetClient } from "@azure/arm-computefleet"; -const subscriptionId = "00000000-0000-0000-0000-000000000000"; const credential = new InteractiveBrowserCredential({ tenantId: "", clientId: "", }); +const subscriptionId = "00000000-0000-0000-0000-000000000000"; const client = new AzureFleetClient(credential, subscriptionId); ``` -### JavaScript Bundle +### JavaScript Bundle To use this client library in the browser, first you need to use a bundler. For details on how to do this, please refer to our [bundling documentation](https://aka.ms/AzureSDKBundling). ## Key concepts @@ -95,6 +97,10 @@ setLogLevel("info"); For more detailed instructions on how to enable logs, you can look at the [@azure/logger package docs](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/core/logger). +## Next steps + +Please take a look at the [samples](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/computefleet/arm-computefleet/samples) directory for detailed examples on how to use this library. + ## Contributing If you'd like to contribute to this library, please read the [contributing guide](https://github.com/Azure/azure-sdk-for-js/blob/main/CONTRIBUTING.md) to learn more about how to build and test the code. diff --git a/sdk/computefleet/arm-computefleet/api-extractor.json b/sdk/computefleet/arm-computefleet/api-extractor.json index 16d81e2eb512..870d6d399477 100644 --- a/sdk/computefleet/arm-computefleet/api-extractor.json +++ b/sdk/computefleet/arm-computefleet/api-extractor.json @@ -1,3 +1 @@ -{ - "extends": "../../../api-extractor-base.json" -} +{ "extends": "../../../api-extractor-base.json" } diff --git a/sdk/computefleet/arm-computefleet/eslint.config.mjs b/sdk/computefleet/arm-computefleet/eslint.config.mjs new file mode 100644 index 000000000000..6d2f8a5914c3 --- /dev/null +++ b/sdk/computefleet/arm-computefleet/eslint.config.mjs @@ -0,0 +1,14 @@ +import azsdkEslint from "@azure/eslint-plugin-azure-sdk"; + +export default azsdkEslint.config([ + { + rules: { + "@azure/azure-sdk/ts-modules-only-named": "warn", + "@azure/azure-sdk/ts-package-json-types": "warn", + "@azure/azure-sdk/ts-package-json-engine-is-present": "warn", + "@azure/azure-sdk/ts-package-json-files-required": "off", + "@azure/azure-sdk/ts-package-json-main-is-cjs": "off", + "tsdoc/syntax": "warn", + }, + }, +]); diff --git a/sdk/computefleet/arm-computefleet/metadata.json b/sdk/computefleet/arm-computefleet/metadata.json new file mode 100644 index 000000000000..1a383a97f0df --- /dev/null +++ b/sdk/computefleet/arm-computefleet/metadata.json @@ -0,0 +1,4 @@ +{ + "apiVersion": "2025-07-01-preview", + "emitterVersion": "0.43.0" +} diff --git a/sdk/computefleet/arm-computefleet/package.json b/sdk/computefleet/arm-computefleet/package.json index c9917aaf714f..d6b7e1dc7ea2 100644 --- a/sdk/computefleet/arm-computefleet/package.json +++ b/sdk/computefleet/arm-computefleet/package.json @@ -1,17 +1,19 @@ { "name": "@azure/arm-computefleet", - "version": "1.0.1", - "description": "Azure Fleet Service", + "version": "2.0.0-beta.1", + "description": "A generated SDK for AzureFleetClient.", "engines": { "node": ">=20.0.0" }, "sideEffects": false, "autoPublish": false, "tshy": { - "project": "../../../tsconfig.src.build.json", "exports": { "./package.json": "./package.json", ".": "./src/index.ts", + "./api": "./src/api/index.ts", + "./api/fleets": "./src/api/fleets/index.ts", + "./api/operations": "./src/api/operations/index.ts", "./models": "./src/models/index.ts" }, "dialects": [ @@ -22,9 +24,12 @@ "browser", "react-native" ], - "selfLink": false + "selfLink": false, + "project": "./tsconfig.src.json" }, "type": "module", + "browser": "./dist/browser/index.js", + "react-native": "./dist/react-native/index.js", "keywords": [ "node", "azure", @@ -37,16 +42,16 @@ "license": "MIT", "files": [ "dist/", + "!dist/**/*.d.*ts.map", "README.md", - "LICENSE", - "review/", - "CHANGELOG.md" + "LICENSE" ], "sdk-type": "mgmt", "repository": "github:Azure/azure-sdk-for-js", "bugs": { "url": "https://github.com/Azure/azure-sdk-for-js/issues" }, + "homepage": "https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/computefleet/arm-computefleet/README.md", "prettier": "@azure/eslint-plugin-azure-sdk/prettier.json", "//metadata": { "constantPaths": [ @@ -57,13 +62,13 @@ ] }, "dependencies": { - "@azure-rest/core-client": "^2.3.2", + "@azure/core-util": "^1.12.0", + "@azure-rest/core-client": "^2.3.1", "@azure/abort-controller": "^2.1.2", "@azure/core-auth": "^1.9.0", "@azure/core-lro": "^3.1.0", - "@azure/core-rest-pipeline": "^1.18.2", - "@azure/core-util": "^1.11.0", - "@azure/logger": "^1.1.4", + "@azure/core-rest-pipeline": "^1.20.0", + "@azure/logger": "^1.2.0", "tslib": "^2.8.1" }, "devDependencies": { @@ -72,32 +77,32 @@ "@azure-tools/test-utils-vitest": "^1.0.0", "@azure/dev-tool": "^1.0.0", "@azure/eslint-plugin-azure-sdk": "^3.0.0", - "@azure/identity": "^4.2.1", + "@azure/identity": "^4.9.0", "@types/node": "^20.0.0", + "eslint": "^9.9.0", "@vitest/browser": "^3.0.9", "@vitest/coverage-istanbul": "^3.0.9", "dotenv": "^16.0.0", - "eslint": "^9.9.0", - "playwright": "^1.49.1", + "playwright": "^1.52.0", "typescript": "~5.8.2", "vitest": "^3.0.9" }, "scripts": { - "build": "npm run clean && dev-tool run build-package && dev-tool run extract-api", + "clean": "dev-tool run vendored rimraf --glob dist dist-browser dist-esm test-dist temp types *.tgz *.log", + "extract-api": "dev-tool run vendored rimraf review && dev-tool run extract-api", + "pack": "npm pack 2>&1", + "lint": "echo skipped", + "lint:fix": "echo skipped", "build:samples": "tsc -p tsconfig.samples.json && dev-tool samples publish -f", "check-format": "dev-tool run vendored prettier --list-different --config ../../../.prettierrc.json --ignore-path ../../../.prettierignore \"src/**/*.{ts,cts,mts}\" \"test/**/*.{ts,cts,mts}\" \"*.{js,cjs,mjs,json}\" \"samples-dev/*.ts\"", - "clean": "dev-tool run vendored rimraf --glob dist dist-browser dist-esm test-dist temp types *.tgz *.log", "execute:samples": "dev-tool samples run samples-dev", - "extract-api": "dev-tool run vendored rimraf review && dev-tool run extract-api", "format": "dev-tool run vendored prettier --write --config ../../../.prettierrc.json --ignore-path ../../../.prettierignore \"src/**/*.{ts,cts,mts}\" \"test/**/*.{ts,cts,mts}\" \"*.{js,cjs,mjs,json}\" \"samples-dev/*.ts\"", "generate:client": "echo skipped", - "lint": "echo skipped", - "lint:fix": "echo skipped", - "pack": "npm pack 2>&1", - "test": "npm run test:node && npm run test:browser", - "test:browser": "echo skipped", + "test:browser": "dev-tool run build-test && dev-tool run test:vitest --browser", + "build": "npm run clean && dev-tool run build-package && dev-tool run extract-api", "test:node": "dev-tool run test:vitest", "test:node:esm": "dev-tool run test:vitest --esm", + "test": "npm run test:node && npm run test:browser", "update-snippets": "dev-tool run update-snippets" }, "//sampleConfiguration": { @@ -128,6 +133,60 @@ "default": "./dist/commonjs/index.js" } }, + "./api": { + "browser": { + "types": "./dist/browser/api/index.d.ts", + "default": "./dist/browser/api/index.js" + }, + "react-native": { + "types": "./dist/react-native/api/index.d.ts", + "default": "./dist/react-native/api/index.js" + }, + "import": { + "types": "./dist/esm/api/index.d.ts", + "default": "./dist/esm/api/index.js" + }, + "require": { + "types": "./dist/commonjs/api/index.d.ts", + "default": "./dist/commonjs/api/index.js" + } + }, + "./api/fleets": { + "browser": { + "types": "./dist/browser/api/fleets/index.d.ts", + "default": "./dist/browser/api/fleets/index.js" + }, + "react-native": { + "types": "./dist/react-native/api/fleets/index.d.ts", + "default": "./dist/react-native/api/fleets/index.js" + }, + "import": { + "types": "./dist/esm/api/fleets/index.d.ts", + "default": "./dist/esm/api/fleets/index.js" + }, + "require": { + "types": "./dist/commonjs/api/fleets/index.d.ts", + "default": "./dist/commonjs/api/fleets/index.js" + } + }, + "./api/operations": { + "browser": { + "types": "./dist/browser/api/operations/index.d.ts", + "default": "./dist/browser/api/operations/index.js" + }, + "react-native": { + "types": "./dist/react-native/api/operations/index.d.ts", + "default": "./dist/react-native/api/operations/index.js" + }, + "import": { + "types": "./dist/esm/api/operations/index.d.ts", + "default": "./dist/esm/api/operations/index.js" + }, + "require": { + "types": "./dist/commonjs/api/operations/index.d.ts", + "default": "./dist/commonjs/api/operations/index.js" + } + }, "./models": { "browser": { "types": "./dist/browser/models/index.d.ts", @@ -149,7 +208,5 @@ }, "main": "./dist/commonjs/index.js", "types": "./dist/commonjs/index.d.ts", - "module": "./dist/esm/index.js", - "browser": "./dist/browser/index.js", - "react-native": "./dist/react-native/index.js" + "module": "./dist/esm/index.js" } diff --git a/sdk/computefleet/arm-computefleet/review/arm-computefleet-api-fleets-node.api.md b/sdk/computefleet/arm-computefleet/review/arm-computefleet-api-fleets-node.api.md new file mode 100644 index 000000000000..27f108dbbc18 --- /dev/null +++ b/sdk/computefleet/arm-computefleet/review/arm-computefleet-api-fleets-node.api.md @@ -0,0 +1,83 @@ +## API Report File for "@azure/arm-computefleet" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import { Client } from '@azure-rest/core-client'; +import { OperationOptions } from '@azure-rest/core-client'; +import { OperationState } from '@azure/core-lro'; +import { PollerLike } from '@azure/core-lro'; + +// @public +export function $delete(context: AzureFleetContext, resourceGroupName: string, fleetName: string, options?: FleetsDeleteOptionalParams): PollerLike, void>; + +// @public +export function cancel(context: AzureFleetContext, resourceGroupName: string, fleetName: string, options?: FleetsCancelOptionalParams): PollerLike, void>; + +// @public +export function createOrUpdate(context: AzureFleetContext, resourceGroupName: string, fleetName: string, resource: Fleet, options?: FleetsCreateOrUpdateOptionalParams): PollerLike, Fleet>; + +// @public +export interface FleetsCancelOptionalParams extends OperationOptions { + updateIntervalInMs?: number; +} + +// @public +export interface FleetsCreateOrUpdateOptionalParams extends OperationOptions { + updateIntervalInMs?: number; +} + +// @public +export interface FleetsDeleteOptionalParams extends OperationOptions { + updateIntervalInMs?: number; +} + +// @public +export interface FleetsGetOptionalParams extends OperationOptions { +} + +// @public +export interface FleetsListByResourceGroupOptionalParams extends OperationOptions { +} + +// @public +export interface FleetsListBySubscriptionOptionalParams extends OperationOptions { +} + +// @public +export interface FleetsListVirtualMachineScaleSetsOptionalParams extends OperationOptions { +} + +// @public +export interface FleetsListVirtualMachinesOptionalParams extends OperationOptions { + filter?: string; + skiptoken?: string; +} + +// @public +export interface FleetsUpdateOptionalParams extends OperationOptions { + updateIntervalInMs?: number; +} + +// @public +export function get(context: AzureFleetContext, resourceGroupName: string, fleetName: string, options?: FleetsGetOptionalParams): Promise; + +// @public +export function listByResourceGroup(context: AzureFleetContext, resourceGroupName: string, options?: FleetsListByResourceGroupOptionalParams): PagedAsyncIterableIterator; + +// @public +export function listBySubscription(context: AzureFleetContext, options?: FleetsListBySubscriptionOptionalParams): PagedAsyncIterableIterator; + +// @public +export function listVirtualMachines(context: AzureFleetContext, resourceGroupName: string, name: string, options?: FleetsListVirtualMachinesOptionalParams): PagedAsyncIterableIterator; + +// @public +export function listVirtualMachineScaleSets(context: AzureFleetContext, resourceGroupName: string, name: string, options?: FleetsListVirtualMachineScaleSetsOptionalParams): PagedAsyncIterableIterator; + +// @public +export function update(context: AzureFleetContext, resourceGroupName: string, fleetName: string, properties: FleetUpdate, options?: FleetsUpdateOptionalParams): PollerLike, Fleet>; + +// (No @packageDocumentation comment for this package) + +``` diff --git a/sdk/computefleet/arm-computefleet/review/arm-computefleet-api-node.api.md b/sdk/computefleet/arm-computefleet/review/arm-computefleet-api-node.api.md new file mode 100644 index 000000000000..14c5c957c0ce --- /dev/null +++ b/sdk/computefleet/arm-computefleet/review/arm-computefleet-api-node.api.md @@ -0,0 +1,28 @@ +## API Report File for "@azure/arm-computefleet" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import { Client } from '@azure-rest/core-client'; +import { ClientOptions } from '@azure-rest/core-client'; +import { TokenCredential } from '@azure/core-auth'; + +// @public +export interface AzureFleetClientOptionalParams extends ClientOptions { + apiVersion?: string; + cloudSetting?: AzureSupportedClouds; +} + +// @public (undocumented) +export interface AzureFleetContext extends Client { + apiVersion: string; + subscriptionId: string; +} + +// @public (undocumented) +export function createAzureFleet(credential: TokenCredential, subscriptionId: string, options?: AzureFleetClientOptionalParams): AzureFleetContext; + +// (No @packageDocumentation comment for this package) + +``` diff --git a/sdk/computefleet/arm-computefleet/review/arm-computefleet-api-operations-node.api.md b/sdk/computefleet/arm-computefleet/review/arm-computefleet-api-operations-node.api.md new file mode 100644 index 000000000000..10596ea07caf --- /dev/null +++ b/sdk/computefleet/arm-computefleet/review/arm-computefleet-api-operations-node.api.md @@ -0,0 +1,19 @@ +## API Report File for "@azure/arm-computefleet" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import { Client } from '@azure-rest/core-client'; +import { OperationOptions } from '@azure-rest/core-client'; + +// @public +export function list(context: AzureFleetContext, options?: OperationsListOptionalParams): PagedAsyncIterableIterator; + +// @public +export interface OperationsListOptionalParams extends OperationOptions { +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/sdk/computefleet/arm-computefleet/review/arm-computefleet-models-node.api.md b/sdk/computefleet/arm-computefleet/review/arm-computefleet-models-node.api.md index 0a6f8c1f510b..e4fc157a6f81 100644 --- a/sdk/computefleet/arm-computefleet/review/arm-computefleet-models-node.api.md +++ b/sdk/computefleet/arm-computefleet/review/arm-computefleet-models-node.api.md @@ -94,6 +94,9 @@ export interface CapacityReservationProfile { capacityReservationGroup?: SubResource; } +// @public +export type CapacityType = string; + // @public export interface ComputeProfile { additionalVirtualMachineCapabilities?: AdditionalCapabilities; @@ -150,6 +153,26 @@ export interface EncryptionIdentity { userAssignedIdentityResourceId?: string; } +// @public +export interface ErrorAdditionalInfo { + readonly info?: any; + readonly type?: string; +} + +// @public +export interface ErrorDetail { + readonly additionalInfo?: ErrorAdditionalInfo[]; + readonly code?: string; + readonly details?: ErrorDetail[]; + readonly message?: string; + readonly target?: string; +} + +// @public +export interface ErrorResponse { + error?: ErrorDetail; +} + // @public export type EvictionPolicy = string; @@ -161,10 +184,15 @@ export interface Fleet extends TrackedResource { zones?: string[]; } +// @public +export type FleetMode = string; + // @public export interface FleetProperties { additionalLocationsProfile?: AdditionalLocationsProfile; + capacityType?: CapacityType; computeProfile: ComputeProfile; + mode?: FleetMode; readonly provisioningState?: ProvisioningState; regularPriorityProfile?: RegularPriorityProfile; spotPriorityProfile?: SpotPriorityProfile; @@ -172,6 +200,7 @@ export interface FleetProperties { readonly uniqueId?: string; vmAttributes?: VMAttributes; vmSizesProfile: VmSizeProfile[]; + zoneAllocationPolicy?: ZoneAllocationPolicy; } // @public @@ -218,7 +247,7 @@ export enum KnownAcceleratorManufacturer { // @public export enum KnownAcceleratorType { - FPGA = "FPGA", + Fpga = "FPGA", GPU = "GPU" } @@ -240,6 +269,12 @@ export enum KnownCachingTypes { ReadWrite = "ReadWrite" } +// @public +export enum KnownCapacityType { + VCpu = "VCpu", + VM = "VM" +} + // @public export enum KnownCpuManufacturer { AMD = "AMD", @@ -277,7 +312,7 @@ export enum KnownDiffDiskPlacement { // @public export enum KnownDiskControllerTypes { NVMe = "NVMe", - SCSI = "SCSI" + Scsi = "SCSI" } // @public @@ -309,6 +344,12 @@ export enum KnownEvictionPolicy { Delete = "Delete" } +// @public +export enum KnownFleetMode { + Instance = "Instance", + Managed = "Managed" +} + // @public export enum KnownIPVersion { IPv4 = "IPv4", @@ -461,6 +502,14 @@ export enum KnownStorageAccountTypes { UltraSSDLRS = "UltraSSD_LRS" } +// @public +export enum KnownVersions { + V20231101Preview = "2023-11-01-preview", + V20240501Preview = "2024-05-01-preview", + V20241101 = "2024-11-01", + V20250701Preview = "2025-07-01-preview" +} + // @public export enum KnownVMAttributeSupport { Excluded = "Excluded", @@ -479,6 +528,15 @@ export enum KnownVMCategory { StorageOptimized = "StorageOptimized" } +// @public +export enum KnownVMOperationStatus { + Canceled = "Canceled", + CancelFailedStatusUnknown = "CancelFailedStatusUnknown", + Creating = "Creating", + Failed = "Failed", + Succeeded = "Succeeded" +} + // @public export enum KnownWindowsPatchAssessmentMode { AutomaticByPlatform = "AutomaticByPlatform", @@ -500,6 +558,12 @@ export enum KnownWindowsVMGuestPatchMode { Manual = "Manual" } +// @public +export enum KnownZoneDistributionStrategy { + BestEffortSingleZone = "BestEffortSingleZone", + Prioritized = "Prioritized" +} + // @public export interface LinuxConfiguration { disablePasswordAuthentication?: boolean; @@ -574,8 +638,8 @@ export type OperatingSystemTypes = string; // @public export interface Operation { - actionType?: ActionType; - readonly display?: OperationDisplay; + readonly actionType?: ActionType; + display?: OperationDisplay; readonly isDataAction?: boolean; readonly name?: string; readonly origin?: Origin; @@ -786,6 +850,14 @@ export interface VirtualHardDisk { uri?: string; } +// @public +export interface VirtualMachine { + readonly error?: ApiError; + readonly id: string; + readonly operationStatus: VMOperationStatus; + readonly type?: string; +} + // @public export interface VirtualMachineScaleSet { readonly error?: ApiError; @@ -799,7 +871,7 @@ export interface VirtualMachineScaleSetDataDisk { caching?: CachingTypes; createOption: DiskCreateOptionTypes; deleteOption?: DiskDeleteOptionTypes; - diskIOPSReadWrite?: number; + diskIopsReadWrite?: number; diskMBpsReadWrite?: number; diskSizeGB?: number; lun: number; @@ -1024,6 +1096,9 @@ export interface VMGalleryApplication { treatFailureAsDeploymentFailure?: boolean; } +// @public +export type VMOperationStatus = string; + // @public export interface VmSizeProfile { name: string; @@ -1073,6 +1148,21 @@ export interface WinRMListener { protocol?: ProtocolTypes; } +// @public +export interface ZoneAllocationPolicy { + distributionStrategy: ZoneDistributionStrategy; + zonePreferences?: ZonePreference[]; +} + +// @public +export type ZoneDistributionStrategy = string; + +// @public +export interface ZonePreference { + rank?: number; + zone: string; +} + // (No @packageDocumentation comment for this package) ``` diff --git a/sdk/computefleet/arm-computefleet/review/arm-computefleet-node.api.md b/sdk/computefleet/arm-computefleet/review/arm-computefleet-node.api.md index 88c428d81178..9521d93bf1b7 100644 --- a/sdk/computefleet/arm-computefleet/review/arm-computefleet-node.api.md +++ b/sdk/computefleet/arm-computefleet/review/arm-computefleet-node.api.md @@ -70,6 +70,13 @@ export interface ApplicationProfile { // @public export type ArchitectureType = string; +// @public +export enum AzureClouds { + AZURE_CHINA_CLOUD = "AZURE_CHINA_CLOUD", + AZURE_PUBLIC_CLOUD = "AZURE_PUBLIC_CLOUD", + AZURE_US_GOVERNMENT = "AZURE_US_GOVERNMENT" +} + // @public (undocumented) export class AzureFleetClient { constructor(credential: TokenCredential, subscriptionId: string, options?: AzureFleetClientOptionalParams); @@ -81,8 +88,12 @@ export class AzureFleetClient { // @public export interface AzureFleetClientOptionalParams extends ClientOptions { apiVersion?: string; + cloudSetting?: AzureSupportedClouds; } +// @public +export type AzureSupportedClouds = `${AzureClouds}`; + // @public export interface BaseVirtualMachineProfile { applicationProfile?: ApplicationProfile; @@ -116,6 +127,9 @@ export interface CapacityReservationProfile { capacityReservationGroup?: SubResource; } +// @public +export type CapacityType = string; + // @public export interface ComputeProfile { additionalVirtualMachineCapabilities?: AdditionalCapabilities; @@ -177,6 +191,26 @@ export interface EncryptionIdentity { userAssignedIdentityResourceId?: string; } +// @public +export interface ErrorAdditionalInfo { + readonly info?: any; + readonly type?: string; +} + +// @public +export interface ErrorDetail { + readonly additionalInfo?: ErrorAdditionalInfo[]; + readonly code?: string; + readonly details?: ErrorDetail[]; + readonly message?: string; + readonly target?: string; +} + +// @public +export interface ErrorResponse { + error?: ErrorDetail; +} + // @public export type EvictionPolicy = string; @@ -188,10 +222,15 @@ export interface Fleet extends TrackedResource { zones?: string[]; } +// @public +export type FleetMode = string; + // @public export interface FleetProperties { additionalLocationsProfile?: AdditionalLocationsProfile; + capacityType?: CapacityType; computeProfile: ComputeProfile; + mode?: FleetMode; readonly provisioningState?: ProvisioningState; regularPriorityProfile?: RegularPriorityProfile; spotPriorityProfile?: SpotPriorityProfile; @@ -199,6 +238,12 @@ export interface FleetProperties { readonly uniqueId?: string; vmAttributes?: VMAttributes; vmSizesProfile: VmSizeProfile[]; + zoneAllocationPolicy?: ZoneAllocationPolicy; +} + +// @public +export interface FleetsCancelOptionalParams extends OperationOptions { + updateIntervalInMs?: number; } // @public @@ -227,13 +272,21 @@ export interface FleetsListBySubscriptionOptionalParams extends OperationOptions export interface FleetsListVirtualMachineScaleSetsOptionalParams extends OperationOptions { } +// @public +export interface FleetsListVirtualMachinesOptionalParams extends OperationOptions { + filter?: string; + skiptoken?: string; +} + // @public export interface FleetsOperations { + cancel: (resourceGroupName: string, fleetName: string, options?: FleetsCancelOptionalParams) => PollerLike, void>; createOrUpdate: (resourceGroupName: string, fleetName: string, resource: Fleet, options?: FleetsCreateOrUpdateOptionalParams) => PollerLike, Fleet>; delete: (resourceGroupName: string, fleetName: string, options?: FleetsDeleteOptionalParams) => PollerLike, void>; get: (resourceGroupName: string, fleetName: string, options?: FleetsGetOptionalParams) => Promise; listByResourceGroup: (resourceGroupName: string, options?: FleetsListByResourceGroupOptionalParams) => PagedAsyncIterableIterator; listBySubscription: (options?: FleetsListBySubscriptionOptionalParams) => PagedAsyncIterableIterator; + listVirtualMachines: (resourceGroupName: string, name: string, options?: FleetsListVirtualMachinesOptionalParams) => PagedAsyncIterableIterator; listVirtualMachineScaleSets: (resourceGroupName: string, name: string, options?: FleetsListVirtualMachineScaleSetsOptionalParams) => PagedAsyncIterableIterator; update: (resourceGroupName: string, fleetName: string, properties: FleetUpdate, options?: FleetsUpdateOptionalParams) => PollerLike, Fleet>; } @@ -287,7 +340,7 @@ export enum KnownAcceleratorManufacturer { // @public export enum KnownAcceleratorType { - FPGA = "FPGA", + Fpga = "FPGA", GPU = "GPU" } @@ -309,6 +362,12 @@ export enum KnownCachingTypes { ReadWrite = "ReadWrite" } +// @public +export enum KnownCapacityType { + VCpu = "VCpu", + VM = "VM" +} + // @public export enum KnownCpuManufacturer { AMD = "AMD", @@ -346,7 +405,7 @@ export enum KnownDiffDiskPlacement { // @public export enum KnownDiskControllerTypes { NVMe = "NVMe", - SCSI = "SCSI" + Scsi = "SCSI" } // @public @@ -378,6 +437,12 @@ export enum KnownEvictionPolicy { Delete = "Delete" } +// @public +export enum KnownFleetMode { + Instance = "Instance", + Managed = "Managed" +} + // @public export enum KnownIPVersion { IPv4 = "IPv4", @@ -530,6 +595,14 @@ export enum KnownStorageAccountTypes { UltraSSDLRS = "UltraSSD_LRS" } +// @public +export enum KnownVersions { + V20231101Preview = "2023-11-01-preview", + V20240501Preview = "2024-05-01-preview", + V20241101 = "2024-11-01", + V20250701Preview = "2025-07-01-preview" +} + // @public export enum KnownVMAttributeSupport { Excluded = "Excluded", @@ -548,6 +621,15 @@ export enum KnownVMCategory { StorageOptimized = "StorageOptimized" } +// @public +export enum KnownVMOperationStatus { + Canceled = "Canceled", + CancelFailedStatusUnknown = "CancelFailedStatusUnknown", + Creating = "Creating", + Failed = "Failed", + Succeeded = "Succeeded" +} + // @public export enum KnownWindowsPatchAssessmentMode { AutomaticByPlatform = "AutomaticByPlatform", @@ -569,6 +651,12 @@ export enum KnownWindowsVMGuestPatchMode { Manual = "Manual" } +// @public +export enum KnownZoneDistributionStrategy { + BestEffortSingleZone = "BestEffortSingleZone", + Prioritized = "Prioritized" +} + // @public export interface LinuxConfiguration { disablePasswordAuthentication?: boolean; @@ -643,8 +731,8 @@ export type OperatingSystemTypes = string; // @public export interface Operation { - actionType?: ActionType; - readonly display?: OperationDisplay; + readonly actionType?: ActionType; + display?: OperationDisplay; readonly isDataAction?: boolean; readonly name?: string; readonly origin?: Origin; @@ -886,6 +974,14 @@ export interface VirtualHardDisk { uri?: string; } +// @public +export interface VirtualMachine { + readonly error?: ApiError; + readonly id: string; + readonly operationStatus: VMOperationStatus; + readonly type?: string; +} + // @public export interface VirtualMachineScaleSet { readonly error?: ApiError; @@ -899,7 +995,7 @@ export interface VirtualMachineScaleSetDataDisk { caching?: CachingTypes; createOption: DiskCreateOptionTypes; deleteOption?: DiskDeleteOptionTypes; - diskIOPSReadWrite?: number; + diskIopsReadWrite?: number; diskMBpsReadWrite?: number; diskSizeGB?: number; lun: number; @@ -1124,6 +1220,9 @@ export interface VMGalleryApplication { treatFailureAsDeploymentFailure?: boolean; } +// @public +export type VMOperationStatus = string; + // @public export interface VmSizeProfile { name: string; @@ -1173,6 +1272,21 @@ export interface WinRMListener { protocol?: ProtocolTypes; } +// @public +export interface ZoneAllocationPolicy { + distributionStrategy: ZoneDistributionStrategy; + zonePreferences?: ZonePreference[]; +} + +// @public +export type ZoneDistributionStrategy = string; + +// @public +export interface ZonePreference { + rank?: number; + zone: string; +} + // (No @packageDocumentation comment for this package) ``` diff --git a/sdk/computefleet/arm-computefleet/sample.env b/sdk/computefleet/arm-computefleet/sample.env index efbc7787bd3b..508439fc7d62 100644 --- a/sdk/computefleet/arm-computefleet/sample.env +++ b/sdk/computefleet/arm-computefleet/sample.env @@ -1 +1 @@ -# Feel free to add your own environment variables. +# Feel free to add your own environment variables. \ No newline at end of file diff --git a/sdk/computefleet/arm-computefleet/samples-dev/fleetsCancelSample.ts b/sdk/computefleet/arm-computefleet/samples-dev/fleetsCancelSample.ts new file mode 100644 index 000000000000..3f0296202f29 --- /dev/null +++ b/sdk/computefleet/arm-computefleet/samples-dev/fleetsCancelSample.ts @@ -0,0 +1,24 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { AzureFleetClient } from "@azure/arm-computefleet"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to cancels an instance Fleet creation that is in progress. + * + * @summary cancels an instance Fleet creation that is in progress. + * x-ms-original-file: 2025-07-01-preview/Fleets_Cancel.json + */ +async function fleetsCancel(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "3453D930-6DDF-4466-B3B3-E1AEE9BD448C"; + const client = new AzureFleetClient(credential, subscriptionId); + await client.fleets.cancel("rgazurefleet", "myFleet"); +} + +async function main(): Promise { + await fleetsCancel(); +} + +main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples-dev/fleetsCreateOrUpdateSample.ts b/sdk/computefleet/arm-computefleet/samples-dev/fleetsCreateOrUpdateSample.ts index 529f37700d8e..ae4369080fe2 100644 --- a/sdk/computefleet/arm-computefleet/samples-dev/fleetsCreateOrUpdateSample.ts +++ b/sdk/computefleet/arm-computefleet/samples-dev/fleetsCreateOrUpdateSample.ts @@ -8,13 +8,13 @@ import { DefaultAzureCredential } from "@azure/identity"; * This sample demonstrates how to create a Fleet * * @summary create a Fleet - * x-ms-original-file: 2024-11-01/Fleets_CreateOrUpdate.json + * x-ms-original-file: 2025-07-01-preview/Fleets_CreateOrUpdate.json */ async function fleetsCreateOrUpdate(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "1DC2F28C-A625-4B0E-9748-9885A3C9E9EB"; const client = new AzureFleetClient(credential, subscriptionId); - const result = await client.fleets.createOrUpdate("rgazurefleet", "testFleet", { + const result = await client.fleets.createOrUpdate("rgazurefleet", "myFleet", { properties: { spotPriorityProfile: { capacity: 20, @@ -27,9 +27,12 @@ async function fleetsCreateOrUpdate(): Promise { regularPriorityProfile: { capacity: 20, minCapacity: 10, - allocationStrategy: "LowestPrice", + allocationStrategy: "Prioritized", }, - vmSizesProfile: [{ name: "Standard_d1_v2", rank: 19225 }], + vmSizesProfile: [ + { name: "Standard_D1_v2", rank: 0 }, + { name: "Standard_D2_v2", rank: 1 }, + ], computeProfile: { baseVirtualMachineProfile: { osProfile: { @@ -156,11 +159,12 @@ async function fleetsCreateOrUpdate(): Promise { }, }, }, - diskIOPSReadWrite: 27, + diskIopsReadWrite: 27, diskMBpsReadWrite: 2, deleteOption: "Delete", }, ], + diskControllerType: "uzb", }, networkProfile: { healthProbe: { @@ -331,119 +335,364 @@ async function fleetsCreateOrUpdate(): Promise { }, computeApiVersion: "2023-07-01", platformFaultDomainCount: 1, + additionalVirtualMachineCapabilities: { + ultraSSDEnabled: true, + hibernationEnabled: true, + }, }, - }, - zones: ["zone1", "zone2"], - identity: { - type: "UserAssigned", - userAssignedIdentities: { key9851: {} }, - }, - tags: { key3518: "luvrnuvsgdpbuofdskkcoqhfh" }, - location: "westus", - plan: { - name: "jwgrcrnrtfoxn", - publisher: "iozjbiqqckqm", - product: "cgopbyvdyqikahwyxfpzwaqk", - promotionCode: "naglezezplcaruqogtxnuizslqnnbr", - version: "wa", - }, - }); - console.log(result); -} - -/** - * This sample demonstrates how to create a Fleet - * - * @summary create a Fleet - * x-ms-original-file: 2024-11-01/Fleets_CreateOrUpdate_MinimumSet.json - */ -async function fleetsCreateOrUpdateMinimumSet(): Promise { - const credential = new DefaultAzureCredential(); - const subscriptionId = "1DC2F28C-A625-4B0E-9748-9885A3C9E9EB"; - const client = new AzureFleetClient(credential, subscriptionId); - const result = await client.fleets.createOrUpdate("rgazurefleet", "testFleet", { - properties: { - spotPriorityProfile: { - capacity: 2, - minCapacity: 1, - evictionPolicy: "Delete", - allocationStrategy: "PriceCapacityOptimized", - maintain: true, + mode: "Instance", + capacityType: "VCpu", + zoneAllocationPolicy: { + distributionStrategy: "Prioritized", + zonePreferences: [ + { zone: "1", rank: 0 }, + { zone: "2", rank: 1 }, + ], }, - regularPriorityProfile: { - capacity: 2, - minCapacity: 1, - allocationStrategy: "LowestPrice", + vmAttributes: { + vCpuCount: { min: 2, max: 4 }, + memoryInGiB: { min: 2, max: 4 }, + memoryInGiBPerVCpu: { min: 2, max: 4 }, + localStorageSupport: "Excluded", + localStorageInGiB: { min: 2, max: 4 }, + localStorageDiskTypes: ["HDD"], + dataDiskCount: { min: 2, max: 4 }, + networkInterfaceCount: { min: 2, max: 4 }, + networkBandwidthInMbps: { min: 2, max: 4 }, + rdmaSupport: "Excluded", + rdmaNetworkInterfaceCount: { min: 2, max: 4 }, + acceleratorSupport: "Excluded", + acceleratorManufacturers: ["AMD"], + acceleratorTypes: ["GPU"], + acceleratorCount: { min: 2, max: 4 }, + vmCategories: ["GpuAccelerated"], + architectureTypes: ["ARM64"], + cpuManufacturers: ["Intel"], + burstableSupport: "Excluded", + excludedVMSizes: ["Standard_A1"], }, - vmSizesProfile: [ - { name: "Standard_D2s_v3" }, - { name: "Standard_D4s_v3" }, - { name: "Standard_E2s_v3" }, - ], - computeProfile: { - baseVirtualMachineProfile: { - storageProfile: { - imageReference: { - publisher: "canonical", - offer: "0001-com-ubuntu-server-focal", - sku: "20_04-lts-gen2", - version: "latest", - }, - osDisk: { - caching: "ReadWrite", - createOption: "FromImage", - osType: "Linux", - managedDisk: { storageAccountType: "Standard_LRS" }, - }, - }, - osProfile: { - computerNamePrefix: "prefix", - adminUsername: "azureuser", - adminPassword: "TestPassword$0", - linuxConfiguration: { disablePasswordAuthentication: false }, - }, - networkProfile: { - networkInterfaceConfigurations: [ - { - name: "vmNameTest", - properties: { - primary: true, - enableAcceleratedNetworking: false, - ipConfigurations: [ + additionalLocationsProfile: { + locationProfiles: [ + { + location: "ekbzgzhs", + virtualMachineProfileOverride: { + osProfile: { + computerNamePrefix: "xoxwfnjjuqibzxldgxu", + adminUsername: "wwjyuhblwecni", + adminPassword: "", + customData: "gvyvbgcgutteiivwjn", + windowsConfiguration: { + provisionVMAgent: true, + enableAutomaticUpdates: true, + timeZone: "oqpoladmchkkugpxocrynztkok", + additionalUnattendContent: [ { - name: "vmNameTest", - properties: { - subnet: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}", + passName: "OobeSystem", + componentName: "Microsoft-Windows-Shell-Setup", + settingName: "AutoLogon", + content: "ynkrgbreqtuxgftjgeuvozzypzx", + }, + ], + patchSettings: { + patchMode: "Manual", + enableHotpatching: true, + assessmentMode: "ImageDefault", + automaticByPlatformSettings: { + rebootSetting: "Unknown", + bypassPlatformSafetyChecksOnUserSchedule: true, + }, + }, + winRM: { + listeners: [ + { + protocol: "Http", + certificateUrl: "https://microsoft.com/a", + }, + ], + }, + enableVMAgentPlatformUpdates: true, + }, + linuxConfiguration: { + disablePasswordAuthentication: true, + ssh: { + publicKeys: [{ path: "bci", keyData: "meokrrrddgnyxyhg" }], + }, + provisionVMAgent: true, + patchSettings: { + patchMode: "ImageDefault", + assessmentMode: "ImageDefault", + automaticByPlatformSettings: { + rebootSetting: "Unknown", + bypassPlatformSafetyChecksOnUserSchedule: true, + }, + }, + enableVMAgentPlatformUpdates: true, + }, + secrets: [ + { + sourceVault: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", + }, + vaultCertificates: [ + { + certificateUrl: "https://microsoft.com/a", + certificateStore: "hdts", + }, + ], + }, + ], + allowExtensionOperations: true, + requireGuestProvisionSignal: true, + }, + storageProfile: { + imageReference: { + publisher: "mqxgwbiyjzmxavhbkd", + offer: "isxgumkarlkomp", + sku: "eojmppqcrnpmxirtp", + version: "wvpcqefgtmqdgltiuz", + sharedGalleryImageId: "kmkgihoxwlawuuhcinfirktdwkmx", + communityGalleryImageId: "vlqe", + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}/versions/{versionName}", + }, + osDisk: { + name: "xhwnqpqigoymwwetvhjuuhiu", + caching: "None", + writeAcceleratorEnabled: true, + createOption: "FromImage", + diffDiskSettings: { option: "Local", placement: "CacheDisk" }, + diskSizeGB: 21, + osType: "Windows", + image: { uri: "https://microsoft.com/a" }, + vhdContainers: ["mgyqnavpb"], + managedDisk: { + storageAccountType: "Standard_LRS", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + securityProfile: { + securityEncryptionType: "VMGuestStateOnly", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + }, + }, + deleteOption: "Delete", + }, + dataDisks: [ + { + name: "nqblcowgig", + lun: 14, + caching: "None", + writeAcceleratorEnabled: true, + createOption: "FromImage", + diskSizeGB: 11, + managedDisk: { + storageAccountType: "Standard_LRS", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + securityProfile: { + securityEncryptionType: "VMGuestStateOnly", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", }, - primary: true, - loadBalancerBackendAddressPools: [ - { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/backendAddressPools/{backendAddressPoolName}", + }, + }, + diskIopsReadWrite: 5, + diskMBpsReadWrite: 4, + deleteOption: "Delete", + }, + ], + diskControllerType: "SCSI", + }, + networkProfile: { + healthProbe: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}", + }, + networkInterfaceConfigurations: [ + { + name: "uyemquurltujhbjkhm", + properties: { + primary: true, + enableAcceleratedNetworking: true, + disableTcpStateTracking: true, + enableFpga: true, + networkSecurityGroup: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}", + }, + dnsSettings: { dnsServers: ["ajcsckebabrus"] }, + ipConfigurations: [ + { + name: "xpwuwsvkuml", + properties: { + subnet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}", + }, + primary: true, + publicIPAddressConfiguration: { + name: "wbpdlbxflssopphq", + properties: { + idleTimeoutInMinutes: 9, + dnsSettings: { + domainNameLabel: "uwjtwqgwalsctypszcbnxo", + domainNameLabelScope: "TenantReuse", + }, + ipTags: [ + { + ipTagType: "hxkbmbisknggtfdqoaqagjhipdkd", + tag: "vzxhyyrzieaocbxyxieivj", + }, + ], + publicIPPrefix: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}", + }, + publicIPAddressVersion: "IPv4", + deleteOption: "Delete", + }, + sku: { name: "Basic", tier: "Regional" }, + }, + privateIPAddressVersion: "IPv4", + applicationGatewayBackendAddressPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/backendAddressPools/{backendAddressPoolName}", + }, + ], + applicationSecurityGroups: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationSecurityGroups/{applicationSecurityGroupName}", + }, + ], + loadBalancerBackendAddressPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/backendAddressPools/{backendAddressPoolName}", + }, + ], + loadBalancerInboundNatPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/inboundNatPools/{inboundNatPoolName}", + }, + ], }, - ], + }, + ], + enableIPForwarding: true, + deleteOption: "Delete", + auxiliaryMode: "None", + auxiliarySku: "None", + }, + }, + ], + networkApiVersion: "2020-11-01", + }, + securityProfile: { + uefiSettings: { secureBootEnabled: true, vTpmEnabled: true }, + encryptionAtHost: true, + securityType: "TrustedLaunch", + encryptionIdentity: { + userAssignedIdentityResourceId: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{userAssignedIdentityName}", + }, + proxyAgentSettings: { + enabled: true, + mode: "Audit", + keyIncarnationId: 22, + }, + }, + diagnosticsProfile: { + bootDiagnostics: { + enabled: true, + storageUri: "https://microsoft.com/a", + }, + }, + extensionProfile: { + extensions: [ + { + name: "dockglmmvl", + properties: { + forceUpdateTag: "wzyqlpszoiewqbhlnzckfshdtpwkbd", + publisher: "iikgjziralgrfsrxrlrdigqyfhuqg", + type: "xzhgosms", + typeHandlerVersion: "mfzdzdwucagkogmxoosyjpej", + autoUpgradeMinorVersion: true, + enableAutomaticUpgrade: true, + settings: {}, + protectedSettings: {}, + provisionAfterExtensions: ["rqrycujrpdodllirebkfg"], + suppressFailures: true, + protectedSettingsFromKeyVault: { + secretUrl: "https://microsoft.com/ahygahgb", + sourceVault: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", + }, }, }, - ], - enableIPForwarding: true, + }, + ], + extensionsTimeBudget: "srxtwxrc", + }, + licenseType: "hilutelnuqxtpdznq", + scheduledEventsProfile: { + terminateNotificationProfile: { + notBeforeTimeout: "jgycfvgxpzvgsdylbcspkrxwhgxkyd", + enable: true, + }, + osImageNotificationProfile: { + notBeforeTimeout: "nbgfbvisxveyywfyjgcfb", + enable: true, }, }, - ], + userData: "ezhyl", + capacityReservation: { + capacityReservationGroup: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}", + }, + }, + applicationProfile: { + galleryApplications: [ + { + tags: "fronuehbtzhxaoijmdmjzwaswgevh", + order: 19, + packageReferenceId: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{applicationName}/versions/{versionName}", + configurationReference: "gqxsvizquzglpsgqaundtyh", + treatFailureAsDeploymentFailure: true, + enableAutomaticUpgrade: true, + }, + ], + }, + hardwareProfile: { + vmSizeProperties: { vCPUsAvailable: 1, vCPUsPerCore: 4 }, + }, + serviceArtifactReference: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactsName}/vmArtifactsProfiles/{vmArtifactsProfileName}", + }, + securityPostureReference: { + id: "/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest", + excludeExtensions: ["zagiokiwvg"], + isOverridable: true, + }, + }, }, - }, - computeApiVersion: "2023-09-01", - platformFaultDomainCount: 1, + ], }, }, - tags: { key: "fleets-test" }, - location: "eastus2euap", + zones: ["1", "2"], + identity: { type: "UserAssigned", userAssignedIdentities: {} }, + tags: {}, + location: "westus", + plan: { + name: "jwgrcrnrtfoxn", + publisher: "iozjbiqqckqm", + product: "cgopbyvdyqikahwyxfpzwaqk", + promotionCode: "naglezezplcaruqogtxnuizslqnnbr", + version: "wa", + }, }); console.log(result); } async function main(): Promise { await fleetsCreateOrUpdate(); - await fleetsCreateOrUpdateMinimumSet(); } main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples-dev/fleetsDeleteSample.ts b/sdk/computefleet/arm-computefleet/samples-dev/fleetsDeleteSample.ts index c1dc91b90b6e..4f7b2b2cb570 100644 --- a/sdk/computefleet/arm-computefleet/samples-dev/fleetsDeleteSample.ts +++ b/sdk/computefleet/arm-computefleet/samples-dev/fleetsDeleteSample.ts @@ -8,7 +8,7 @@ import { DefaultAzureCredential } from "@azure/identity"; * This sample demonstrates how to delete a Fleet * * @summary delete a Fleet - * x-ms-original-file: 2024-11-01/Fleets_Delete.json + * x-ms-original-file: 2025-07-01-preview/Fleets_Delete.json */ async function fleetsDelete(): Promise { const credential = new DefaultAzureCredential(); diff --git a/sdk/computefleet/arm-computefleet/samples-dev/fleetsGetSample.ts b/sdk/computefleet/arm-computefleet/samples-dev/fleetsGetSample.ts index 072d4c2169ab..e653f66460df 100644 --- a/sdk/computefleet/arm-computefleet/samples-dev/fleetsGetSample.ts +++ b/sdk/computefleet/arm-computefleet/samples-dev/fleetsGetSample.ts @@ -8,13 +8,13 @@ import { DefaultAzureCredential } from "@azure/identity"; * This sample demonstrates how to get a Fleet * * @summary get a Fleet - * x-ms-original-file: 2024-11-01/Fleets_Get.json + * x-ms-original-file: 2025-07-01-preview/Fleets_Get.json */ async function fleetsGet(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "1DC2F28C-A625-4B0E-9748-9885A3C9E9EB"; const client = new AzureFleetClient(credential, subscriptionId); - const result = await client.fleets.get("rgazurefleet", "testFleet"); + const result = await client.fleets.get("rgazurefleet", "myFleet"); console.log(result); } diff --git a/sdk/computefleet/arm-computefleet/samples-dev/fleetsListByResourceGroupSample.ts b/sdk/computefleet/arm-computefleet/samples-dev/fleetsListByResourceGroupSample.ts index 357c6c5ca9ad..4baee3a8b7a0 100644 --- a/sdk/computefleet/arm-computefleet/samples-dev/fleetsListByResourceGroupSample.ts +++ b/sdk/computefleet/arm-computefleet/samples-dev/fleetsListByResourceGroupSample.ts @@ -8,7 +8,7 @@ import { DefaultAzureCredential } from "@azure/identity"; * This sample demonstrates how to list Fleet resources by resource group * * @summary list Fleet resources by resource group - * x-ms-original-file: 2024-11-01/Fleets_ListByResourceGroup.json + * x-ms-original-file: 2025-07-01-preview/Fleets_ListByResourceGroup.json */ async function fleetsListByResourceGroup(): Promise { const credential = new DefaultAzureCredential(); diff --git a/sdk/computefleet/arm-computefleet/samples-dev/fleetsListBySubscriptionSample.ts b/sdk/computefleet/arm-computefleet/samples-dev/fleetsListBySubscriptionSample.ts index fd6a4e650521..7fc9d255d255 100644 --- a/sdk/computefleet/arm-computefleet/samples-dev/fleetsListBySubscriptionSample.ts +++ b/sdk/computefleet/arm-computefleet/samples-dev/fleetsListBySubscriptionSample.ts @@ -8,7 +8,7 @@ import { DefaultAzureCredential } from "@azure/identity"; * This sample demonstrates how to list Fleet resources by subscription ID * * @summary list Fleet resources by subscription ID - * x-ms-original-file: 2024-11-01/Fleets_ListBySubscription.json + * x-ms-original-file: 2025-07-01-preview/Fleets_ListBySubscription.json */ async function fleetsListBySubscription(): Promise { const credential = new DefaultAzureCredential(); diff --git a/sdk/computefleet/arm-computefleet/samples-dev/fleetsListVirtualMachineScaleSetsSample.ts b/sdk/computefleet/arm-computefleet/samples-dev/fleetsListVirtualMachineScaleSetsSample.ts index 16ab7aec0b9e..5a23fd78f236 100644 --- a/sdk/computefleet/arm-computefleet/samples-dev/fleetsListVirtualMachineScaleSetsSample.ts +++ b/sdk/computefleet/arm-computefleet/samples-dev/fleetsListVirtualMachineScaleSetsSample.ts @@ -8,7 +8,7 @@ import { DefaultAzureCredential } from "@azure/identity"; * This sample demonstrates how to list VirtualMachineScaleSet resources by Fleet * * @summary list VirtualMachineScaleSet resources by Fleet - * x-ms-original-file: 2024-11-01/Fleets_ListVirtualMachineScaleSets.json + * x-ms-original-file: 2025-07-01-preview/Fleets_ListVirtualMachineScaleSets.json */ async function fleetsListVirtualMachineScaleSets(): Promise { const credential = new DefaultAzureCredential(); diff --git a/sdk/computefleet/arm-computefleet/samples-dev/fleetsListVirtualMachinesSample.ts b/sdk/computefleet/arm-computefleet/samples-dev/fleetsListVirtualMachinesSample.ts new file mode 100644 index 000000000000..5d4d1aa6dc4b --- /dev/null +++ b/sdk/computefleet/arm-computefleet/samples-dev/fleetsListVirtualMachinesSample.ts @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { AzureFleetClient } from "@azure/arm-computefleet"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to list VirtualMachine resources of an instance Fleet. + * + * @summary list VirtualMachine resources of an instance Fleet. + * x-ms-original-file: 2025-07-01-preview/Fleets_ListVirtualMachines.json + */ +async function fleetsListVirtualMachinesMaximumSet(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "3453D930-6DDF-4466-B3B3-E1AEE9BD448C"; + const client = new AzureFleetClient(credential, subscriptionId); + const resArray = new Array(); + for await (const item of client.fleets.listVirtualMachines("rgazurefleet", "myFleet", { + filter: "xzcepyottghqa", + skiptoken: "hydepbmwuypaprlphcdecsz", + })) { + resArray.push(item); + } + + console.log(resArray); +} + +async function main(): Promise { + await fleetsListVirtualMachinesMaximumSet(); +} + +main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples-dev/fleetsUpdateSample.ts b/sdk/computefleet/arm-computefleet/samples-dev/fleetsUpdateSample.ts index b7323eafe735..31b3cf6fb333 100644 --- a/sdk/computefleet/arm-computefleet/samples-dev/fleetsUpdateSample.ts +++ b/sdk/computefleet/arm-computefleet/samples-dev/fleetsUpdateSample.ts @@ -8,13 +8,13 @@ import { DefaultAzureCredential } from "@azure/identity"; * This sample demonstrates how to update a Fleet * * @summary update a Fleet - * x-ms-original-file: 2024-11-01/Fleets_Update.json + * x-ms-original-file: 2025-07-01-preview/Fleets_Update.json */ async function fleetsUpdate(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "1DC2F28C-A625-4B0E-9748-9885A3C9E9EB"; const client = new AzureFleetClient(credential, subscriptionId); - const result = await client.fleets.update("rgazurefleet", "testFleet", { + const result = await client.fleets.update("rgazurefleet", "myFleet", { identity: { type: "UserAssigned", userAssignedIdentities: {} }, tags: {}, properties: { @@ -29,9 +29,12 @@ async function fleetsUpdate(): Promise { regularPriorityProfile: { capacity: 20, minCapacity: 10, - allocationStrategy: "LowestPrice", + allocationStrategy: "Prioritized", }, - vmSizesProfile: [{ name: "Standard_d1_v2", rank: 19225 }], + vmSizesProfile: [ + { name: "Standard_D1_v2", rank: 0 }, + { name: "Standard_D2_v2", rank: 1 }, + ], computeProfile: { baseVirtualMachineProfile: { osProfile: { @@ -158,11 +161,12 @@ async function fleetsUpdate(): Promise { }, }, }, - diskIOPSReadWrite: 27, + diskIopsReadWrite: 27, diskMBpsReadWrite: 2, deleteOption: "Delete", }, ], + diskControllerType: "uzb", }, networkProfile: { healthProbe: { @@ -333,7 +337,345 @@ async function fleetsUpdate(): Promise { }, computeApiVersion: "2023-07-01", platformFaultDomainCount: 1, + additionalVirtualMachineCapabilities: { + ultraSSDEnabled: true, + hibernationEnabled: true, + }, + }, + vmAttributes: { + vCpuCount: { min: 2, max: 4 }, + memoryInGiB: { min: 2, max: 4 }, + memoryInGiBPerVCpu: { min: 2, max: 4 }, + localStorageSupport: "Excluded", + localStorageInGiB: { min: 2, max: 4 }, + localStorageDiskTypes: ["HDD"], + dataDiskCount: { min: 2, max: 4 }, + networkInterfaceCount: { min: 2, max: 4 }, + networkBandwidthInMbps: { min: 2, max: 4 }, + rdmaSupport: "Excluded", + rdmaNetworkInterfaceCount: { min: 2, max: 4 }, + acceleratorSupport: "Excluded", + acceleratorManufacturers: ["AMD"], + acceleratorTypes: ["GPU"], + acceleratorCount: { min: 2, max: 4 }, + vmCategories: ["GeneralPurpose"], + architectureTypes: ["ARM64"], + cpuManufacturers: ["Intel"], + burstableSupport: "Excluded", + excludedVMSizes: ["Standard_A1"], + }, + additionalLocationsProfile: { + locationProfiles: [ + { + location: "v", + virtualMachineProfileOverride: { + osProfile: { + computerNamePrefix: "tec", + adminUsername: "xdgnnqymtamdyqxy", + adminPassword: "", + customData: "whcielwnerogvbxnbia", + windowsConfiguration: { + provisionVMAgent: true, + enableAutomaticUpdates: true, + timeZone: "ktf", + additionalUnattendContent: [ + { + passName: "OobeSystem", + componentName: "Microsoft-Windows-Shell-Setup", + settingName: "AutoLogon", + content: "xcigofrcurxdwx", + }, + ], + patchSettings: { + patchMode: "Manual", + enableHotpatching: true, + assessmentMode: "ImageDefault", + automaticByPlatformSettings: { + rebootSetting: "Unknown", + bypassPlatformSafetyChecksOnUserSchedule: true, + }, + }, + winRM: { + listeners: [ + { + protocol: "Http", + certificateUrl: "https://microsoft.com/apzd", + }, + ], + }, + enableVMAgentPlatformUpdates: true, + }, + linuxConfiguration: { + disablePasswordAuthentication: true, + ssh: { + publicKeys: [ + { + path: "ebeglujkldnntlpmazrg", + keyData: "vmgnwtwjcodavmu", + }, + ], + }, + provisionVMAgent: true, + patchSettings: { + patchMode: "ImageDefault", + assessmentMode: "ImageDefault", + automaticByPlatformSettings: { + rebootSetting: "Unknown", + bypassPlatformSafetyChecksOnUserSchedule: true, + }, + }, + enableVMAgentPlatformUpdates: true, + }, + secrets: [ + { + sourceVault: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", + }, + vaultCertificates: [ + { + certificateUrl: "https://microsoft.com/a", + certificateStore: "yycyfwpymjtwzza", + }, + ], + }, + ], + allowExtensionOperations: true, + requireGuestProvisionSignal: true, + }, + storageProfile: { + imageReference: { + publisher: "mqxgwbiyjzmxavhbkd", + offer: "isxgumkarlkomp", + sku: "eojmppqcrnpmxirtp", + version: "wvpcqefgtmqdgltiuz", + sharedGalleryImageId: "kmkgihoxwlawuuhcinfirktdwkmx", + communityGalleryImageId: "vlqe", + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}/versions/{versionName}", + }, + osDisk: { + name: "dt", + caching: "None", + writeAcceleratorEnabled: true, + createOption: "FromImage", + diffDiskSettings: { option: "Local", placement: "CacheDisk" }, + diskSizeGB: 9, + osType: "Windows", + image: { uri: "https://microsoft.com/a" }, + vhdContainers: ["kdagj"], + managedDisk: { + storageAccountType: "Standard_LRS", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + securityProfile: { + securityEncryptionType: "VMGuestStateOnly", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + }, + }, + deleteOption: "Delete", + }, + dataDisks: [ + { + name: "mhljivkyryuomrapmmxx", + lun: 6, + caching: "None", + writeAcceleratorEnabled: true, + createOption: "FromImage", + diskSizeGB: 9, + managedDisk: { + storageAccountType: "Standard_LRS", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + securityProfile: { + securityEncryptionType: "VMGuestStateOnly", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + }, + }, + diskIopsReadWrite: 24, + diskMBpsReadWrite: 4, + deleteOption: "Delete", + }, + ], + diskControllerType: "SCSI", + }, + networkProfile: { + healthProbe: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}", + }, + networkInterfaceConfigurations: [ + { + name: "gpunpcdsdphgspvgwwbnk", + properties: { + primary: true, + enableAcceleratedNetworking: true, + disableTcpStateTracking: true, + enableFpga: true, + networkSecurityGroup: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}", + }, + dnsSettings: { dnsServers: ["sjpmlu"] }, + ipConfigurations: [ + { + name: "fweiphgkyhbcsbfjmxzczkpg", + properties: { + subnet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}", + }, + primary: true, + publicIPAddressConfiguration: { + name: "dvnoamqjyshquvtmf", + properties: { + idleTimeoutInMinutes: 1, + dnsSettings: { + domainNameLabel: "ayofnb", + domainNameLabelScope: "TenantReuse", + }, + ipTags: [ + { + ipTagType: "zqpznczmc", + tag: "ugnfzikniqjisffrbvryavenhmtd", + }, + ], + publicIPPrefix: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}", + }, + publicIPAddressVersion: "IPv4", + deleteOption: "Delete", + }, + sku: { name: "Basic", tier: "Regional" }, + }, + privateIPAddressVersion: "IPv4", + applicationGatewayBackendAddressPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/backendAddressPools/{backendAddressPoolName}", + }, + ], + applicationSecurityGroups: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationSecurityGroups/{applicationSecurityGroupName}", + }, + ], + loadBalancerBackendAddressPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/backendAddressPools/{backendAddressPoolName}", + }, + ], + loadBalancerInboundNatPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/inboundNatPools/{inboundNatPoolName}", + }, + ], + }, + }, + ], + enableIPForwarding: true, + deleteOption: "Delete", + auxiliaryMode: "None", + auxiliarySku: "None", + }, + }, + ], + networkApiVersion: "2020-11-01", + }, + securityProfile: { + uefiSettings: { secureBootEnabled: true, vTpmEnabled: true }, + encryptionAtHost: true, + securityType: "TrustedLaunch", + encryptionIdentity: { + userAssignedIdentityResourceId: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{userAssignedIdentityName}", + }, + proxyAgentSettings: { + enabled: true, + mode: "Audit", + keyIncarnationId: 6, + }, + }, + diagnosticsProfile: { + bootDiagnostics: { + enabled: true, + storageUri: "https://microsoft.com/a", + }, + }, + extensionProfile: { + extensions: [ + { + name: "oredyuufsd", + properties: { + forceUpdateTag: "muglieujh", + publisher: "ccbiyfuveemaaopgxbjpm", + type: "yorumzkbfpxnrdwgczwwaeaxmda", + typeHandlerVersion: "nlnqbmgzwubbc", + autoUpgradeMinorVersion: true, + enableAutomaticUpgrade: true, + settings: {}, + protectedSettings: {}, + provisionAfterExtensions: ["xuefrutmgzsxrpjjayvy"], + suppressFailures: true, + protectedSettingsFromKeyVault: { + secretUrl: "https://microsoft.com/a", + sourceVault: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", + }, + }, + }, + }, + ], + extensionsTimeBudget: "trluxrynunvdnukztblhbnsubr", + }, + licenseType: "ginsqshzwimjteiyfxhnjxfrcaat", + scheduledEventsProfile: { + terminateNotificationProfile: { + notBeforeTimeout: "plbazenobaeueixatewbey", + enable: true, + }, + osImageNotificationProfile: { + notBeforeTimeout: "ednjvcedpjmczw", + enable: true, + }, + }, + userData: "zekdr", + capacityReservation: { + capacityReservationGroup: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}", + }, + }, + applicationProfile: { + galleryApplications: [ + { + tags: "eomzidad", + order: 22, + packageReferenceId: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{applicationName}/versions/{versionName}", + configurationReference: "zdqfcpvt", + treatFailureAsDeploymentFailure: true, + enableAutomaticUpgrade: true, + }, + ], + }, + hardwareProfile: { + vmSizeProperties: { vCPUsAvailable: 8, vCPUsPerCore: 17 }, + }, + serviceArtifactReference: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactsName}/vmArtifactsProfiles/{vmArtifactsProfileName}", + }, + securityPostureReference: { + id: "/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest", + excludeExtensions: ["ragwgzswxzzz"], + isOverridable: true, + }, + }, + }, + ], }, + mode: "Managed", + capacityType: "VM", + zoneAllocationPolicy: { distributionStrategy: "BestEffortSingleZone" }, }, plan: { name: "jwgrcrnrtfoxn", diff --git a/sdk/computefleet/arm-computefleet/samples-dev/operationsListSample.ts b/sdk/computefleet/arm-computefleet/samples-dev/operationsListSample.ts index c99dd3331495..35f61787f3fd 100644 --- a/sdk/computefleet/arm-computefleet/samples-dev/operationsListSample.ts +++ b/sdk/computefleet/arm-computefleet/samples-dev/operationsListSample.ts @@ -8,7 +8,7 @@ import { DefaultAzureCredential } from "@azure/identity"; * This sample demonstrates how to list the operations for the provider * * @summary list the operations for the provider - * x-ms-original-file: 2024-11-01/Operations_List.json + * x-ms-original-file: 2025-07-01-preview/Operations_List.json */ async function operationsList(): Promise { const credential = new DefaultAzureCredential(); diff --git a/sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsCreateOrUpdateSample.js b/sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsCreateOrUpdateSample.js deleted file mode 100644 index d539be964959..000000000000 --- a/sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsCreateOrUpdateSample.js +++ /dev/null @@ -1,449 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -const { AzureFleetClient } = require("@azure/arm-computefleet"); -const { DefaultAzureCredential } = require("@azure/identity"); - -/** - * This sample demonstrates how to create a Fleet - * - * @summary create a Fleet - * x-ms-original-file: 2024-11-01/Fleets_CreateOrUpdate.json - */ -async function fleetsCreateOrUpdate() { - const credential = new DefaultAzureCredential(); - const subscriptionId = "1DC2F28C-A625-4B0E-9748-9885A3C9E9EB"; - const client = new AzureFleetClient(credential, subscriptionId); - const result = await client.fleets.createOrUpdate("rgazurefleet", "testFleet", { - properties: { - spotPriorityProfile: { - capacity: 20, - minCapacity: 10, - maxPricePerVM: 0.00865, - evictionPolicy: "Delete", - allocationStrategy: "PriceCapacityOptimized", - maintain: true, - }, - regularPriorityProfile: { - capacity: 20, - minCapacity: 10, - allocationStrategy: "LowestPrice", - }, - vmSizesProfile: [{ name: "Standard_d1_v2", rank: 19225 }], - computeProfile: { - baseVirtualMachineProfile: { - osProfile: { - computerNamePrefix: "o", - adminUsername: "nrgzqciiaaxjrqldbmjbqkyhntp", - adminPassword: "adfbrdxpv", - customData: "xjjib", - windowsConfiguration: { - provisionVMAgent: true, - enableAutomaticUpdates: true, - timeZone: "hlyjiqcfksgrpjrct", - additionalUnattendContent: [ - { - passName: "OobeSystem", - componentName: "Microsoft-Windows-Shell-Setup", - settingName: "AutoLogon", - content: "bubmqbxjkj", - }, - ], - patchSettings: { - patchMode: "Manual", - enableHotpatching: true, - assessmentMode: "ImageDefault", - automaticByPlatformSettings: { - rebootSetting: "Unknown", - bypassPlatformSafetyChecksOnUserSchedule: true, - }, - }, - winRM: { - listeners: [ - { - protocol: "Https", - certificateUrl: "https://myVaultName.vault.azure.net/secrets/myCertName", - }, - ], - }, - enableVMAgentPlatformUpdates: true, - }, - linuxConfiguration: { - disablePasswordAuthentication: true, - ssh: { - publicKeys: [{ path: "kmqz", keyData: "kivgsubusvpprwqaqpjcmhsv" }], - }, - provisionVMAgent: true, - patchSettings: { - patchMode: "ImageDefault", - assessmentMode: "ImageDefault", - automaticByPlatformSettings: { - rebootSetting: "Unknown", - bypassPlatformSafetyChecksOnUserSchedule: true, - }, - }, - enableVMAgentPlatformUpdates: true, - }, - secrets: [ - { - sourceVault: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", - }, - vaultCertificates: [ - { - certificateUrl: "https://myVaultName.vault.azure.net/secrets/myCertName", - certificateStore: "nlxrwavpzhueffxsshlun", - }, - ], - }, - ], - allowExtensionOperations: true, - requireGuestProvisionSignal: true, - }, - storageProfile: { - imageReference: { - publisher: "mqxgwbiyjzmxavhbkd", - offer: "isxgumkarlkomp", - sku: "eojmppqcrnpmxirtp", - version: "wvpcqefgtmqdgltiuz", - sharedGalleryImageId: "kmkgihoxwlawuuhcinfirktdwkmx", - communityGalleryImageId: "vlqe", - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}/versions/{versionName}", - }, - osDisk: { - name: "wfttw", - caching: "None", - writeAcceleratorEnabled: true, - createOption: "FromImage", - diffDiskSettings: { option: "Local", placement: "CacheDisk" }, - diskSizeGB: 14, - osType: "Windows", - image: { - uri: "https://myStorageAccountName.blob.core.windows.net/myContainerName/myVhdName.vhd", - }, - vhdContainers: ["tkzcwddtinkfpnfklatw"], - managedDisk: { - storageAccountType: "Standard_LRS", - diskEncryptionSet: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", - }, - securityProfile: { - securityEncryptionType: "VMGuestStateOnly", - diskEncryptionSet: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", - }, - }, - }, - deleteOption: "Delete", - }, - dataDisks: [ - { - name: "eogiykmdmeikswxmigjws", - lun: 14, - caching: "None", - writeAcceleratorEnabled: true, - createOption: "FromImage", - diskSizeGB: 6, - managedDisk: { - storageAccountType: "Standard_LRS", - diskEncryptionSet: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", - }, - securityProfile: { - securityEncryptionType: "VMGuestStateOnly", - diskEncryptionSet: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", - }, - }, - }, - diskIOPSReadWrite: 27, - diskMBpsReadWrite: 2, - deleteOption: "Delete", - }, - ], - }, - networkProfile: { - healthProbe: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}", - }, - networkInterfaceConfigurations: [ - { - name: "i", - properties: { - primary: true, - enableAcceleratedNetworking: true, - disableTcpStateTracking: true, - enableFpga: true, - networkSecurityGroup: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}", - }, - dnsSettings: { dnsServers: ["nxmmfolhclsesu"] }, - ipConfigurations: [ - { - name: "oezqhkidfhyywlfzwuotilrpbqnjg", - properties: { - subnet: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}", - }, - primary: true, - publicIPAddressConfiguration: { - name: "fvpqf", - properties: { - idleTimeoutInMinutes: 9, - dnsSettings: { - domainNameLabel: "ukrddzvmorpmfsczjwtbvp", - domainNameLabelScope: "TenantReuse", - }, - ipTags: [ - { - ipTagType: "sddgsoemnzgqizale", - tag: "wufmhrjsakbiaetyara", - }, - ], - publicIPPrefix: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}", - }, - publicIPAddressVersion: "IPv4", - deleteOption: "Delete", - }, - sku: { name: "Basic", tier: "Regional" }, - }, - privateIPAddressVersion: "IPv4", - applicationGatewayBackendAddressPools: [ - { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/backendAddressPools/{backendAddressPoolName}", - }, - ], - applicationSecurityGroups: [ - { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationSecurityGroups/{applicationSecurityGroupName}", - }, - ], - loadBalancerBackendAddressPools: [ - { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/backendAddressPools/{backendAddressPoolName}", - }, - ], - loadBalancerInboundNatPools: [ - { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/inboundNatPools/{inboundNatPoolName}", - }, - ], - }, - }, - ], - enableIPForwarding: true, - deleteOption: "Delete", - auxiliaryMode: "None", - auxiliarySku: "None", - }, - }, - ], - networkApiVersion: "2020-11-01", - }, - securityProfile: { - uefiSettings: { secureBootEnabled: true, vTpmEnabled: true }, - encryptionAtHost: true, - securityType: "TrustedLaunch", - encryptionIdentity: { - userAssignedIdentityResourceId: - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{userAssignedIdentityName}", - }, - proxyAgentSettings: { - enabled: true, - mode: "Audit", - keyIncarnationId: 20, - }, - }, - diagnosticsProfile: { - bootDiagnostics: { - enabled: true, - storageUri: "http://myStorageAccountName.blob.core.windows.net", - }, - }, - extensionProfile: { - extensions: [ - { - name: "bndxuxx", - properties: { - forceUpdateTag: "yhgxw", - publisher: "kpxtirxjfprhs", - type: "pgjilctjjwaa", - typeHandlerVersion: "zevivcoilxmbwlrihhhibq", - autoUpgradeMinorVersion: true, - enableAutomaticUpgrade: true, - settings: {}, - protectedSettings: {}, - provisionAfterExtensions: ["nftzosroolbcwmpupujzqwqe"], - suppressFailures: true, - protectedSettingsFromKeyVault: { - secretUrl: "https://myvaultName.vault.azure.net/secrets/secret/mySecretName", - sourceVault: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", - }, - }, - }, - }, - ], - extensionsTimeBudget: "mbhjahtdygwgyszdwjtvlvtgchdwil", - }, - licenseType: "v", - scheduledEventsProfile: { - terminateNotificationProfile: { - notBeforeTimeout: "iljppmmw", - enable: true, - }, - osImageNotificationProfile: { - notBeforeTimeout: "olbpadmevekyczfokodtfprxti", - enable: true, - }, - }, - userData: "s", - capacityReservation: { - capacityReservationGroup: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}", - }, - }, - applicationProfile: { - galleryApplications: [ - { - tags: "eyrqjbib", - order: 5, - packageReferenceId: - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{applicationName}/versions/{versionName}", - configurationReference: "ulztmiavpojpbpbddgnuuiimxcpau", - treatFailureAsDeploymentFailure: true, - enableAutomaticUpgrade: true, - }, - ], - }, - hardwareProfile: { - vmSizeProperties: { vCPUsAvailable: 16, vCPUsPerCore: 23 }, - }, - serviceArtifactReference: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactsName}/vmArtifactsProfiles/{vmArtifactsProfileName}", - }, - securityPostureReference: { - id: "/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest", - excludeExtensions: ["{securityPostureVMExtensionName}"], - isOverridable: true, - }, - }, - computeApiVersion: "2023-07-01", - platformFaultDomainCount: 1, - }, - }, - zones: ["zone1", "zone2"], - identity: { - type: "UserAssigned", - userAssignedIdentities: { key9851: {} }, - }, - tags: { key3518: "luvrnuvsgdpbuofdskkcoqhfh" }, - location: "westus", - plan: { - name: "jwgrcrnrtfoxn", - publisher: "iozjbiqqckqm", - product: "cgopbyvdyqikahwyxfpzwaqk", - promotionCode: "naglezezplcaruqogtxnuizslqnnbr", - version: "wa", - }, - }); - console.log(result); -} - -/** - * This sample demonstrates how to create a Fleet - * - * @summary create a Fleet - * x-ms-original-file: 2024-11-01/Fleets_CreateOrUpdate_MinimumSet.json - */ -async function fleetsCreateOrUpdateMinimumSet() { - const credential = new DefaultAzureCredential(); - const subscriptionId = "1DC2F28C-A625-4B0E-9748-9885A3C9E9EB"; - const client = new AzureFleetClient(credential, subscriptionId); - const result = await client.fleets.createOrUpdate("rgazurefleet", "testFleet", { - properties: { - spotPriorityProfile: { - capacity: 2, - minCapacity: 1, - evictionPolicy: "Delete", - allocationStrategy: "PriceCapacityOptimized", - maintain: true, - }, - regularPriorityProfile: { - capacity: 2, - minCapacity: 1, - allocationStrategy: "LowestPrice", - }, - vmSizesProfile: [ - { name: "Standard_D2s_v3" }, - { name: "Standard_D4s_v3" }, - { name: "Standard_E2s_v3" }, - ], - computeProfile: { - baseVirtualMachineProfile: { - storageProfile: { - imageReference: { - publisher: "canonical", - offer: "0001-com-ubuntu-server-focal", - sku: "20_04-lts-gen2", - version: "latest", - }, - osDisk: { - caching: "ReadWrite", - createOption: "FromImage", - osType: "Linux", - managedDisk: { storageAccountType: "Standard_LRS" }, - }, - }, - osProfile: { - computerNamePrefix: "prefix", - adminUsername: "azureuser", - adminPassword: "TestPassword$0", - linuxConfiguration: { disablePasswordAuthentication: false }, - }, - networkProfile: { - networkInterfaceConfigurations: [ - { - name: "vmNameTest", - properties: { - primary: true, - enableAcceleratedNetworking: false, - ipConfigurations: [ - { - name: "vmNameTest", - properties: { - subnet: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}", - }, - primary: true, - loadBalancerBackendAddressPools: [ - { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/backendAddressPools/{backendAddressPoolName}", - }, - ], - }, - }, - ], - enableIPForwarding: true, - }, - }, - ], - }, - }, - computeApiVersion: "2023-09-01", - platformFaultDomainCount: 1, - }, - }, - tags: { key: "fleets-test" }, - location: "eastus2euap", - }); - console.log(result); -} - -async function main() { - fleetsCreateOrUpdate(); - fleetsCreateOrUpdateMinimumSet(); -} - -main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsUpdateSample.js b/sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsUpdateSample.js deleted file mode 100644 index f136d7c94f28..000000000000 --- a/sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsUpdateSample.js +++ /dev/null @@ -1,353 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -const { AzureFleetClient } = require("@azure/arm-computefleet"); -const { DefaultAzureCredential } = require("@azure/identity"); - -/** - * This sample demonstrates how to update a Fleet - * - * @summary update a Fleet - * x-ms-original-file: 2024-11-01/Fleets_Update.json - */ -async function fleetsUpdate() { - const credential = new DefaultAzureCredential(); - const subscriptionId = "1DC2F28C-A625-4B0E-9748-9885A3C9E9EB"; - const client = new AzureFleetClient(credential, subscriptionId); - const result = await client.fleets.update("rgazurefleet", "testFleet", { - identity: { type: "UserAssigned", userAssignedIdentities: {} }, - tags: {}, - properties: { - spotPriorityProfile: { - capacity: 20, - minCapacity: 10, - maxPricePerVM: 0.00865, - evictionPolicy: "Delete", - allocationStrategy: "PriceCapacityOptimized", - maintain: true, - }, - regularPriorityProfile: { - capacity: 20, - minCapacity: 10, - allocationStrategy: "LowestPrice", - }, - vmSizesProfile: [{ name: "Standard_d1_v2", rank: 19225 }], - computeProfile: { - baseVirtualMachineProfile: { - osProfile: { - computerNamePrefix: "o", - adminUsername: "nrgzqciiaaxjrqldbmjbqkyhntp", - adminPassword: "adfbrdxpv", - customData: "xjjib", - windowsConfiguration: { - provisionVMAgent: true, - enableAutomaticUpdates: true, - timeZone: "hlyjiqcfksgrpjrct", - additionalUnattendContent: [ - { - passName: "OobeSystem", - componentName: "Microsoft-Windows-Shell-Setup", - settingName: "AutoLogon", - content: "bubmqbxjkj", - }, - ], - patchSettings: { - patchMode: "Manual", - enableHotpatching: true, - assessmentMode: "ImageDefault", - automaticByPlatformSettings: { - rebootSetting: "Unknown", - bypassPlatformSafetyChecksOnUserSchedule: true, - }, - }, - winRM: { - listeners: [ - { - protocol: "Http", - certificateUrl: "https://myVaultName.vault.azure.net/secrets/myCertName", - }, - ], - }, - enableVMAgentPlatformUpdates: true, - }, - linuxConfiguration: { - disablePasswordAuthentication: true, - ssh: { - publicKeys: [{ path: "kmqz", keyData: "kivgsubusvpprwqaqpjcmhsv" }], - }, - provisionVMAgent: true, - patchSettings: { - patchMode: "ImageDefault", - assessmentMode: "ImageDefault", - automaticByPlatformSettings: { - rebootSetting: "Unknown", - bypassPlatformSafetyChecksOnUserSchedule: true, - }, - }, - enableVMAgentPlatformUpdates: true, - }, - secrets: [ - { - sourceVault: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", - }, - vaultCertificates: [ - { - certificateUrl: "https://myVaultName.vault.azure.net/secrets/myCertName", - certificateStore: "nlxrwavpzhueffxsshlun", - }, - ], - }, - ], - allowExtensionOperations: true, - requireGuestProvisionSignal: true, - }, - storageProfile: { - imageReference: { - publisher: "mqxgwbiyjzmxavhbkd", - offer: "isxgumkarlkomp", - sku: "eojmppqcrnpmxirtp", - version: "wvpcqefgtmqdgltiuz", - sharedGalleryImageId: "kmkgihoxwlawuuhcinfirktdwkmx", - communityGalleryImageId: "vlqe", - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}/versions/{versionName}", - }, - osDisk: { - name: "wfttw", - caching: "None", - writeAcceleratorEnabled: true, - createOption: "FromImage", - diffDiskSettings: { option: "Local", placement: "CacheDisk" }, - diskSizeGB: 14, - osType: "Windows", - image: { - uri: "https://myStorageAccountName.blob.core.windows.net/myContainerName/myVhdName.vhd", - }, - vhdContainers: ["tkzcwddtinkfpnfklatw"], - managedDisk: { - storageAccountType: "Standard_LRS", - diskEncryptionSet: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", - }, - securityProfile: { - securityEncryptionType: "VMGuestStateOnly", - diskEncryptionSet: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", - }, - }, - }, - deleteOption: "Delete", - }, - dataDisks: [ - { - name: "eogiykmdmeikswxmigjws", - lun: 14, - caching: "None", - writeAcceleratorEnabled: true, - createOption: "FromImage", - diskSizeGB: 6, - managedDisk: { - storageAccountType: "Standard_LRS", - diskEncryptionSet: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", - }, - securityProfile: { - securityEncryptionType: "VMGuestStateOnly", - diskEncryptionSet: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", - }, - }, - }, - diskIOPSReadWrite: 27, - diskMBpsReadWrite: 2, - deleteOption: "Delete", - }, - ], - }, - networkProfile: { - healthProbe: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}", - }, - networkInterfaceConfigurations: [ - { - name: "i", - properties: { - primary: true, - enableAcceleratedNetworking: true, - disableTcpStateTracking: true, - enableFpga: true, - networkSecurityGroup: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}", - }, - dnsSettings: { dnsServers: ["nxmmfolhclsesu"] }, - ipConfigurations: [ - { - name: "oezqhkidfhyywlfzwuotilrpbqnjg", - properties: { - subnet: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}", - }, - primary: true, - publicIPAddressConfiguration: { - name: "fvpqf", - properties: { - idleTimeoutInMinutes: 9, - dnsSettings: { - domainNameLabel: "ukrddzvmorpmfsczjwtbvp", - domainNameLabelScope: "TenantReuse", - }, - ipTags: [ - { - ipTagType: "sddgsoemnzgqizale", - tag: "wufmhrjsakbiaetyara", - }, - ], - publicIPPrefix: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}", - }, - publicIPAddressVersion: "IPv4", - deleteOption: "Delete", - }, - sku: { name: "Basic", tier: "Regional" }, - }, - privateIPAddressVersion: "IPv4", - applicationGatewayBackendAddressPools: [ - { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/backendAddressPools/{backendAddressPoolName}", - }, - ], - applicationSecurityGroups: [ - { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationSecurityGroups/{applicationSecurityGroupName}", - }, - ], - loadBalancerBackendAddressPools: [ - { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/backendAddressPools/{backendAddressPoolName}", - }, - ], - loadBalancerInboundNatPools: [ - { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/inboundNatPools/{inboundNatPoolName}", - }, - ], - }, - }, - ], - enableIPForwarding: true, - deleteOption: "Delete", - auxiliaryMode: "None", - auxiliarySku: "None", - }, - }, - ], - networkApiVersion: "2020-11-01", - }, - securityProfile: { - uefiSettings: { secureBootEnabled: true, vTpmEnabled: true }, - encryptionAtHost: true, - securityType: "TrustedLaunch", - encryptionIdentity: { - userAssignedIdentityResourceId: - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{userAssignedIdentityName}", - }, - proxyAgentSettings: { - enabled: true, - mode: "Audit", - keyIncarnationId: 20, - }, - }, - diagnosticsProfile: { - bootDiagnostics: { - enabled: true, - storageUri: "http://myStorageAccountName.blob.core.windows.net", - }, - }, - extensionProfile: { - extensions: [ - { - name: "bndxuxx", - properties: { - forceUpdateTag: "yhgxw", - publisher: "kpxtirxjfprhs", - type: "pgjilctjjwaa", - typeHandlerVersion: "zevivcoilxmbwlrihhhibq", - autoUpgradeMinorVersion: true, - enableAutomaticUpgrade: true, - settings: {}, - protectedSettings: {}, - provisionAfterExtensions: ["nftzosroolbcwmpupujzqwqe"], - suppressFailures: true, - protectedSettingsFromKeyVault: { - secretUrl: "https://myVaultName.vault.azure.net/secrets/secret/mySecretName", - sourceVault: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", - }, - }, - }, - }, - ], - extensionsTimeBudget: "mbhjahtdygwgyszdwjtvlvtgchdwil", - }, - licenseType: "v", - scheduledEventsProfile: { - terminateNotificationProfile: { - notBeforeTimeout: "iljppmmw", - enable: true, - }, - osImageNotificationProfile: { - notBeforeTimeout: "olbpadmevekyczfokodtfprxti", - enable: true, - }, - }, - userData: "s", - capacityReservation: { - capacityReservationGroup: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}", - }, - }, - applicationProfile: { - galleryApplications: [ - { - tags: "eyrqjbib", - order: 5, - packageReferenceId: - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{applicationName}/versions/{versionName}", - configurationReference: "ulztmiavpojpbpbddgnuuiimxcpau", - treatFailureAsDeploymentFailure: true, - enableAutomaticUpgrade: true, - }, - ], - }, - hardwareProfile: { - vmSizeProperties: { vCPUsAvailable: 16, vCPUsPerCore: 23 }, - }, - serviceArtifactReference: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactsName}/vmArtifactsProfiles/{vmArtifactsProfileName}", - }, - securityPostureReference: { - id: "/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest", - excludeExtensions: ["{securityPostureVMExtensionName}"], - isOverridable: true, - }, - }, - computeApiVersion: "2023-07-01", - platformFaultDomainCount: 1, - }, - }, - plan: { - name: "jwgrcrnrtfoxn", - publisher: "iozjbiqqckqm", - product: "cgopbyvdyqikahwyxfpzwaqk", - promotionCode: "naglezezplcaruqogtxnuizslqnnbr", - version: "wa", - }, - }); - console.log(result); -} - -async function main() { - fleetsUpdate(); -} - -main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v1/javascript/sample.env b/sdk/computefleet/arm-computefleet/samples/v1/javascript/sample.env deleted file mode 100644 index efbc7787bd3b..000000000000 --- a/sdk/computefleet/arm-computefleet/samples/v1/javascript/sample.env +++ /dev/null @@ -1 +0,0 @@ -# Feel free to add your own environment variables. diff --git a/sdk/computefleet/arm-computefleet/samples/v1/typescript/sample.env b/sdk/computefleet/arm-computefleet/samples/v1/typescript/sample.env deleted file mode 100644 index efbc7787bd3b..000000000000 --- a/sdk/computefleet/arm-computefleet/samples/v1/typescript/sample.env +++ /dev/null @@ -1 +0,0 @@ -# Feel free to add your own environment variables. diff --git a/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsCreateOrUpdateSample.ts b/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsCreateOrUpdateSample.ts deleted file mode 100644 index 6e9c61512fe0..000000000000 --- a/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsCreateOrUpdateSample.ts +++ /dev/null @@ -1,462 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -import { AzureFleetClient } from "@azure/arm-computefleet"; -import { DefaultAzureCredential } from "@azure/identity"; - -/** - * This sample demonstrates how to create a Fleet - * - * @summary create a Fleet - * x-ms-original-file: 2024-11-01/Fleets_CreateOrUpdate.json - */ -async function fleetsCreateOrUpdate(): Promise { - const credential = new DefaultAzureCredential(); - const subscriptionId = "1DC2F28C-A625-4B0E-9748-9885A3C9E9EB"; - const client = new AzureFleetClient(credential, subscriptionId); - const result = await client.fleets.createOrUpdate( - "rgazurefleet", - "testFleet", - { - properties: { - spotPriorityProfile: { - capacity: 20, - minCapacity: 10, - maxPricePerVM: 0.00865, - evictionPolicy: "Delete", - allocationStrategy: "PriceCapacityOptimized", - maintain: true, - }, - regularPriorityProfile: { - capacity: 20, - minCapacity: 10, - allocationStrategy: "LowestPrice", - }, - vmSizesProfile: [{ name: "Standard_d1_v2", rank: 19225 }], - computeProfile: { - baseVirtualMachineProfile: { - osProfile: { - computerNamePrefix: "o", - adminUsername: "nrgzqciiaaxjrqldbmjbqkyhntp", - adminPassword: "adfbrdxpv", - customData: "xjjib", - windowsConfiguration: { - provisionVMAgent: true, - enableAutomaticUpdates: true, - timeZone: "hlyjiqcfksgrpjrct", - additionalUnattendContent: [ - { - passName: "OobeSystem", - componentName: "Microsoft-Windows-Shell-Setup", - settingName: "AutoLogon", - content: "bubmqbxjkj", - }, - ], - patchSettings: { - patchMode: "Manual", - enableHotpatching: true, - assessmentMode: "ImageDefault", - automaticByPlatformSettings: { - rebootSetting: "Unknown", - bypassPlatformSafetyChecksOnUserSchedule: true, - }, - }, - winRM: { - listeners: [ - { - protocol: "Https", - certificateUrl: - "https://myVaultName.vault.azure.net/secrets/myCertName", - }, - ], - }, - enableVMAgentPlatformUpdates: true, - }, - linuxConfiguration: { - disablePasswordAuthentication: true, - ssh: { - publicKeys: [ - { path: "kmqz", keyData: "kivgsubusvpprwqaqpjcmhsv" }, - ], - }, - provisionVMAgent: true, - patchSettings: { - patchMode: "ImageDefault", - assessmentMode: "ImageDefault", - automaticByPlatformSettings: { - rebootSetting: "Unknown", - bypassPlatformSafetyChecksOnUserSchedule: true, - }, - }, - enableVMAgentPlatformUpdates: true, - }, - secrets: [ - { - sourceVault: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", - }, - vaultCertificates: [ - { - certificateUrl: - "https://myVaultName.vault.azure.net/secrets/myCertName", - certificateStore: "nlxrwavpzhueffxsshlun", - }, - ], - }, - ], - allowExtensionOperations: true, - requireGuestProvisionSignal: true, - }, - storageProfile: { - imageReference: { - publisher: "mqxgwbiyjzmxavhbkd", - offer: "isxgumkarlkomp", - sku: "eojmppqcrnpmxirtp", - version: "wvpcqefgtmqdgltiuz", - sharedGalleryImageId: "kmkgihoxwlawuuhcinfirktdwkmx", - communityGalleryImageId: "vlqe", - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}/versions/{versionName}", - }, - osDisk: { - name: "wfttw", - caching: "None", - writeAcceleratorEnabled: true, - createOption: "FromImage", - diffDiskSettings: { option: "Local", placement: "CacheDisk" }, - diskSizeGB: 14, - osType: "Windows", - image: { - uri: "https://myStorageAccountName.blob.core.windows.net/myContainerName/myVhdName.vhd", - }, - vhdContainers: ["tkzcwddtinkfpnfklatw"], - managedDisk: { - storageAccountType: "Standard_LRS", - diskEncryptionSet: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", - }, - securityProfile: { - securityEncryptionType: "VMGuestStateOnly", - diskEncryptionSet: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", - }, - }, - }, - deleteOption: "Delete", - }, - dataDisks: [ - { - name: "eogiykmdmeikswxmigjws", - lun: 14, - caching: "None", - writeAcceleratorEnabled: true, - createOption: "FromImage", - diskSizeGB: 6, - managedDisk: { - storageAccountType: "Standard_LRS", - diskEncryptionSet: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", - }, - securityProfile: { - securityEncryptionType: "VMGuestStateOnly", - diskEncryptionSet: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", - }, - }, - }, - diskIOPSReadWrite: 27, - diskMBpsReadWrite: 2, - deleteOption: "Delete", - }, - ], - }, - networkProfile: { - healthProbe: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}", - }, - networkInterfaceConfigurations: [ - { - name: "i", - properties: { - primary: true, - enableAcceleratedNetworking: true, - disableTcpStateTracking: true, - enableFpga: true, - networkSecurityGroup: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}", - }, - dnsSettings: { dnsServers: ["nxmmfolhclsesu"] }, - ipConfigurations: [ - { - name: "oezqhkidfhyywlfzwuotilrpbqnjg", - properties: { - subnet: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}", - }, - primary: true, - publicIPAddressConfiguration: { - name: "fvpqf", - properties: { - idleTimeoutInMinutes: 9, - dnsSettings: { - domainNameLabel: "ukrddzvmorpmfsczjwtbvp", - domainNameLabelScope: "TenantReuse", - }, - ipTags: [ - { - ipTagType: "sddgsoemnzgqizale", - tag: "wufmhrjsakbiaetyara", - }, - ], - publicIPPrefix: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}", - }, - publicIPAddressVersion: "IPv4", - deleteOption: "Delete", - }, - sku: { name: "Basic", tier: "Regional" }, - }, - privateIPAddressVersion: "IPv4", - applicationGatewayBackendAddressPools: [ - { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/backendAddressPools/{backendAddressPoolName}", - }, - ], - applicationSecurityGroups: [ - { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationSecurityGroups/{applicationSecurityGroupName}", - }, - ], - loadBalancerBackendAddressPools: [ - { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/backendAddressPools/{backendAddressPoolName}", - }, - ], - loadBalancerInboundNatPools: [ - { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/inboundNatPools/{inboundNatPoolName}", - }, - ], - }, - }, - ], - enableIPForwarding: true, - deleteOption: "Delete", - auxiliaryMode: "None", - auxiliarySku: "None", - }, - }, - ], - networkApiVersion: "2020-11-01", - }, - securityProfile: { - uefiSettings: { secureBootEnabled: true, vTpmEnabled: true }, - encryptionAtHost: true, - securityType: "TrustedLaunch", - encryptionIdentity: { - userAssignedIdentityResourceId: - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{userAssignedIdentityName}", - }, - proxyAgentSettings: { - enabled: true, - mode: "Audit", - keyIncarnationId: 20, - }, - }, - diagnosticsProfile: { - bootDiagnostics: { - enabled: true, - storageUri: "http://myStorageAccountName.blob.core.windows.net", - }, - }, - extensionProfile: { - extensions: [ - { - name: "bndxuxx", - properties: { - forceUpdateTag: "yhgxw", - publisher: "kpxtirxjfprhs", - type: "pgjilctjjwaa", - typeHandlerVersion: "zevivcoilxmbwlrihhhibq", - autoUpgradeMinorVersion: true, - enableAutomaticUpgrade: true, - settings: {}, - protectedSettings: {}, - provisionAfterExtensions: ["nftzosroolbcwmpupujzqwqe"], - suppressFailures: true, - protectedSettingsFromKeyVault: { - secretUrl: - "https://myvaultName.vault.azure.net/secrets/secret/mySecretName", - sourceVault: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", - }, - }, - }, - }, - ], - extensionsTimeBudget: "mbhjahtdygwgyszdwjtvlvtgchdwil", - }, - licenseType: "v", - scheduledEventsProfile: { - terminateNotificationProfile: { - notBeforeTimeout: "iljppmmw", - enable: true, - }, - osImageNotificationProfile: { - notBeforeTimeout: "olbpadmevekyczfokodtfprxti", - enable: true, - }, - }, - userData: "s", - capacityReservation: { - capacityReservationGroup: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}", - }, - }, - applicationProfile: { - galleryApplications: [ - { - tags: "eyrqjbib", - order: 5, - packageReferenceId: - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{applicationName}/versions/{versionName}", - configurationReference: "ulztmiavpojpbpbddgnuuiimxcpau", - treatFailureAsDeploymentFailure: true, - enableAutomaticUpgrade: true, - }, - ], - }, - hardwareProfile: { - vmSizeProperties: { vCPUsAvailable: 16, vCPUsPerCore: 23 }, - }, - serviceArtifactReference: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactsName}/vmArtifactsProfiles/{vmArtifactsProfileName}", - }, - securityPostureReference: { - id: "/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest", - excludeExtensions: ["{securityPostureVMExtensionName}"], - isOverridable: true, - }, - }, - computeApiVersion: "2023-07-01", - platformFaultDomainCount: 1, - }, - }, - zones: ["zone1", "zone2"], - identity: { - type: "UserAssigned", - userAssignedIdentities: { key9851: {} }, - }, - tags: { key3518: "luvrnuvsgdpbuofdskkcoqhfh" }, - location: "westus", - plan: { - name: "jwgrcrnrtfoxn", - publisher: "iozjbiqqckqm", - product: "cgopbyvdyqikahwyxfpzwaqk", - promotionCode: "naglezezplcaruqogtxnuizslqnnbr", - version: "wa", - }, - }, - ); - console.log(result); -} - -/** - * This sample demonstrates how to create a Fleet - * - * @summary create a Fleet - * x-ms-original-file: 2024-11-01/Fleets_CreateOrUpdate_MinimumSet.json - */ -async function fleetsCreateOrUpdateMinimumSet(): Promise { - const credential = new DefaultAzureCredential(); - const subscriptionId = "1DC2F28C-A625-4B0E-9748-9885A3C9E9EB"; - const client = new AzureFleetClient(credential, subscriptionId); - const result = await client.fleets.createOrUpdate( - "rgazurefleet", - "testFleet", - { - properties: { - spotPriorityProfile: { - capacity: 2, - minCapacity: 1, - evictionPolicy: "Delete", - allocationStrategy: "PriceCapacityOptimized", - maintain: true, - }, - regularPriorityProfile: { - capacity: 2, - minCapacity: 1, - allocationStrategy: "LowestPrice", - }, - vmSizesProfile: [ - { name: "Standard_D2s_v3" }, - { name: "Standard_D4s_v3" }, - { name: "Standard_E2s_v3" }, - ], - computeProfile: { - baseVirtualMachineProfile: { - storageProfile: { - imageReference: { - publisher: "canonical", - offer: "0001-com-ubuntu-server-focal", - sku: "20_04-lts-gen2", - version: "latest", - }, - osDisk: { - caching: "ReadWrite", - createOption: "FromImage", - osType: "Linux", - managedDisk: { storageAccountType: "Standard_LRS" }, - }, - }, - osProfile: { - computerNamePrefix: "prefix", - adminUsername: "azureuser", - adminPassword: "TestPassword$0", - linuxConfiguration: { disablePasswordAuthentication: false }, - }, - networkProfile: { - networkInterfaceConfigurations: [ - { - name: "vmNameTest", - properties: { - primary: true, - enableAcceleratedNetworking: false, - ipConfigurations: [ - { - name: "vmNameTest", - properties: { - subnet: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}", - }, - primary: true, - loadBalancerBackendAddressPools: [ - { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/backendAddressPools/{backendAddressPoolName}", - }, - ], - }, - }, - ], - enableIPForwarding: true, - }, - }, - ], - }, - }, - computeApiVersion: "2023-09-01", - platformFaultDomainCount: 1, - }, - }, - tags: { key: "fleets-test" }, - location: "eastus2euap", - }, - ); - console.log(result); -} - -async function main(): Promise { - fleetsCreateOrUpdate(); - fleetsCreateOrUpdateMinimumSet(); -} - -main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsUpdateSample.ts b/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsUpdateSample.ts deleted file mode 100644 index d8cf302fc737..000000000000 --- a/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsUpdateSample.ts +++ /dev/null @@ -1,358 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -import { AzureFleetClient } from "@azure/arm-computefleet"; -import { DefaultAzureCredential } from "@azure/identity"; - -/** - * This sample demonstrates how to update a Fleet - * - * @summary update a Fleet - * x-ms-original-file: 2024-11-01/Fleets_Update.json - */ -async function fleetsUpdate(): Promise { - const credential = new DefaultAzureCredential(); - const subscriptionId = "1DC2F28C-A625-4B0E-9748-9885A3C9E9EB"; - const client = new AzureFleetClient(credential, subscriptionId); - const result = await client.fleets.update("rgazurefleet", "testFleet", { - identity: { type: "UserAssigned", userAssignedIdentities: {} }, - tags: {}, - properties: { - spotPriorityProfile: { - capacity: 20, - minCapacity: 10, - maxPricePerVM: 0.00865, - evictionPolicy: "Delete", - allocationStrategy: "PriceCapacityOptimized", - maintain: true, - }, - regularPriorityProfile: { - capacity: 20, - minCapacity: 10, - allocationStrategy: "LowestPrice", - }, - vmSizesProfile: [{ name: "Standard_d1_v2", rank: 19225 }], - computeProfile: { - baseVirtualMachineProfile: { - osProfile: { - computerNamePrefix: "o", - adminUsername: "nrgzqciiaaxjrqldbmjbqkyhntp", - adminPassword: "adfbrdxpv", - customData: "xjjib", - windowsConfiguration: { - provisionVMAgent: true, - enableAutomaticUpdates: true, - timeZone: "hlyjiqcfksgrpjrct", - additionalUnattendContent: [ - { - passName: "OobeSystem", - componentName: "Microsoft-Windows-Shell-Setup", - settingName: "AutoLogon", - content: "bubmqbxjkj", - }, - ], - patchSettings: { - patchMode: "Manual", - enableHotpatching: true, - assessmentMode: "ImageDefault", - automaticByPlatformSettings: { - rebootSetting: "Unknown", - bypassPlatformSafetyChecksOnUserSchedule: true, - }, - }, - winRM: { - listeners: [ - { - protocol: "Http", - certificateUrl: - "https://myVaultName.vault.azure.net/secrets/myCertName", - }, - ], - }, - enableVMAgentPlatformUpdates: true, - }, - linuxConfiguration: { - disablePasswordAuthentication: true, - ssh: { - publicKeys: [ - { path: "kmqz", keyData: "kivgsubusvpprwqaqpjcmhsv" }, - ], - }, - provisionVMAgent: true, - patchSettings: { - patchMode: "ImageDefault", - assessmentMode: "ImageDefault", - automaticByPlatformSettings: { - rebootSetting: "Unknown", - bypassPlatformSafetyChecksOnUserSchedule: true, - }, - }, - enableVMAgentPlatformUpdates: true, - }, - secrets: [ - { - sourceVault: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", - }, - vaultCertificates: [ - { - certificateUrl: - "https://myVaultName.vault.azure.net/secrets/myCertName", - certificateStore: "nlxrwavpzhueffxsshlun", - }, - ], - }, - ], - allowExtensionOperations: true, - requireGuestProvisionSignal: true, - }, - storageProfile: { - imageReference: { - publisher: "mqxgwbiyjzmxavhbkd", - offer: "isxgumkarlkomp", - sku: "eojmppqcrnpmxirtp", - version: "wvpcqefgtmqdgltiuz", - sharedGalleryImageId: "kmkgihoxwlawuuhcinfirktdwkmx", - communityGalleryImageId: "vlqe", - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}/versions/{versionName}", - }, - osDisk: { - name: "wfttw", - caching: "None", - writeAcceleratorEnabled: true, - createOption: "FromImage", - diffDiskSettings: { option: "Local", placement: "CacheDisk" }, - diskSizeGB: 14, - osType: "Windows", - image: { - uri: "https://myStorageAccountName.blob.core.windows.net/myContainerName/myVhdName.vhd", - }, - vhdContainers: ["tkzcwddtinkfpnfklatw"], - managedDisk: { - storageAccountType: "Standard_LRS", - diskEncryptionSet: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", - }, - securityProfile: { - securityEncryptionType: "VMGuestStateOnly", - diskEncryptionSet: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", - }, - }, - }, - deleteOption: "Delete", - }, - dataDisks: [ - { - name: "eogiykmdmeikswxmigjws", - lun: 14, - caching: "None", - writeAcceleratorEnabled: true, - createOption: "FromImage", - diskSizeGB: 6, - managedDisk: { - storageAccountType: "Standard_LRS", - diskEncryptionSet: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", - }, - securityProfile: { - securityEncryptionType: "VMGuestStateOnly", - diskEncryptionSet: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", - }, - }, - }, - diskIOPSReadWrite: 27, - diskMBpsReadWrite: 2, - deleteOption: "Delete", - }, - ], - }, - networkProfile: { - healthProbe: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}", - }, - networkInterfaceConfigurations: [ - { - name: "i", - properties: { - primary: true, - enableAcceleratedNetworking: true, - disableTcpStateTracking: true, - enableFpga: true, - networkSecurityGroup: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}", - }, - dnsSettings: { dnsServers: ["nxmmfolhclsesu"] }, - ipConfigurations: [ - { - name: "oezqhkidfhyywlfzwuotilrpbqnjg", - properties: { - subnet: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}", - }, - primary: true, - publicIPAddressConfiguration: { - name: "fvpqf", - properties: { - idleTimeoutInMinutes: 9, - dnsSettings: { - domainNameLabel: "ukrddzvmorpmfsczjwtbvp", - domainNameLabelScope: "TenantReuse", - }, - ipTags: [ - { - ipTagType: "sddgsoemnzgqizale", - tag: "wufmhrjsakbiaetyara", - }, - ], - publicIPPrefix: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}", - }, - publicIPAddressVersion: "IPv4", - deleteOption: "Delete", - }, - sku: { name: "Basic", tier: "Regional" }, - }, - privateIPAddressVersion: "IPv4", - applicationGatewayBackendAddressPools: [ - { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/backendAddressPools/{backendAddressPoolName}", - }, - ], - applicationSecurityGroups: [ - { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationSecurityGroups/{applicationSecurityGroupName}", - }, - ], - loadBalancerBackendAddressPools: [ - { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/backendAddressPools/{backendAddressPoolName}", - }, - ], - loadBalancerInboundNatPools: [ - { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/inboundNatPools/{inboundNatPoolName}", - }, - ], - }, - }, - ], - enableIPForwarding: true, - deleteOption: "Delete", - auxiliaryMode: "None", - auxiliarySku: "None", - }, - }, - ], - networkApiVersion: "2020-11-01", - }, - securityProfile: { - uefiSettings: { secureBootEnabled: true, vTpmEnabled: true }, - encryptionAtHost: true, - securityType: "TrustedLaunch", - encryptionIdentity: { - userAssignedIdentityResourceId: - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{userAssignedIdentityName}", - }, - proxyAgentSettings: { - enabled: true, - mode: "Audit", - keyIncarnationId: 20, - }, - }, - diagnosticsProfile: { - bootDiagnostics: { - enabled: true, - storageUri: "http://myStorageAccountName.blob.core.windows.net", - }, - }, - extensionProfile: { - extensions: [ - { - name: "bndxuxx", - properties: { - forceUpdateTag: "yhgxw", - publisher: "kpxtirxjfprhs", - type: "pgjilctjjwaa", - typeHandlerVersion: "zevivcoilxmbwlrihhhibq", - autoUpgradeMinorVersion: true, - enableAutomaticUpgrade: true, - settings: {}, - protectedSettings: {}, - provisionAfterExtensions: ["nftzosroolbcwmpupujzqwqe"], - suppressFailures: true, - protectedSettingsFromKeyVault: { - secretUrl: - "https://myVaultName.vault.azure.net/secrets/secret/mySecretName", - sourceVault: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", - }, - }, - }, - }, - ], - extensionsTimeBudget: "mbhjahtdygwgyszdwjtvlvtgchdwil", - }, - licenseType: "v", - scheduledEventsProfile: { - terminateNotificationProfile: { - notBeforeTimeout: "iljppmmw", - enable: true, - }, - osImageNotificationProfile: { - notBeforeTimeout: "olbpadmevekyczfokodtfprxti", - enable: true, - }, - }, - userData: "s", - capacityReservation: { - capacityReservationGroup: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}", - }, - }, - applicationProfile: { - galleryApplications: [ - { - tags: "eyrqjbib", - order: 5, - packageReferenceId: - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{applicationName}/versions/{versionName}", - configurationReference: "ulztmiavpojpbpbddgnuuiimxcpau", - treatFailureAsDeploymentFailure: true, - enableAutomaticUpgrade: true, - }, - ], - }, - hardwareProfile: { - vmSizeProperties: { vCPUsAvailable: 16, vCPUsPerCore: 23 }, - }, - serviceArtifactReference: { - id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactsName}/vmArtifactsProfiles/{vmArtifactsProfileName}", - }, - securityPostureReference: { - id: "/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest", - excludeExtensions: ["{securityPostureVMExtensionName}"], - isOverridable: true, - }, - }, - computeApiVersion: "2023-07-01", - platformFaultDomainCount: 1, - }, - }, - plan: { - name: "jwgrcrnrtfoxn", - publisher: "iozjbiqqckqm", - product: "cgopbyvdyqikahwyxfpzwaqk", - promotionCode: "naglezezplcaruqogtxnuizslqnnbr", - version: "wa", - }, - }); - console.log(result); -} - -async function main(): Promise { - fleetsUpdate(); -} - -main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v1/typescript/tsconfig.json b/sdk/computefleet/arm-computefleet/samples/v1/typescript/tsconfig.json deleted file mode 100644 index 984eed535aa8..000000000000 --- a/sdk/computefleet/arm-computefleet/samples/v1/typescript/tsconfig.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2020", - "module": "commonjs", - "moduleResolution": "node", - "resolveJsonModule": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "strict": true, - "alwaysStrict": true, - "outDir": "dist", - "rootDir": "src" - }, - "include": [ - "src/**/*.ts" - ] -} diff --git a/sdk/computefleet/arm-computefleet/samples/v1/javascript/README.md b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/README.md similarity index 61% rename from sdk/computefleet/arm-computefleet/samples/v1/javascript/README.md rename to sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/README.md index 85a9dee2ca96..f93cf4351521 100644 --- a/sdk/computefleet/arm-computefleet/samples/v1/javascript/README.md +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/README.md @@ -1,17 +1,19 @@ -# @azure/arm-computefleet client library samples for JavaScript +# @azure/arm-computefleet client library samples for JavaScript (Beta) These sample programs show how to use the JavaScript client libraries for @azure/arm-computefleet in some common scenarios. -| **File Name** | **Description** | -| ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -| [fleetsCreateOrUpdateSample.js][fleetscreateorupdatesample] | create a Fleet x-ms-original-file: 2024-11-01/Fleets_CreateOrUpdate.json | -| [fleetsDeleteSample.js][fleetsdeletesample] | delete a Fleet x-ms-original-file: 2024-11-01/Fleets_Delete.json | -| [fleetsGetSample.js][fleetsgetsample] | get a Fleet x-ms-original-file: 2024-11-01/Fleets_Get.json | -| [fleetsListByResourceGroupSample.js][fleetslistbyresourcegroupsample] | list Fleet resources by resource group x-ms-original-file: 2024-11-01/Fleets_ListByResourceGroup.json | -| [fleetsListBySubscriptionSample.js][fleetslistbysubscriptionsample] | list Fleet resources by subscription ID x-ms-original-file: 2024-11-01/Fleets_ListBySubscription.json | -| [fleetsListVirtualMachineScaleSetsSample.js][fleetslistvirtualmachinescalesetssample] | list VirtualMachineScaleSet resources by Fleet x-ms-original-file: 2024-11-01/Fleets_ListVirtualMachineScaleSets.json | -| [fleetsUpdateSample.js][fleetsupdatesample] | update a Fleet x-ms-original-file: 2024-11-01/Fleets_Update.json | -| [operationsListSample.js][operationslistsample] | list the operations for the provider x-ms-original-file: 2024-11-01/Operations_List.json | +| **File Name** | **Description** | +| ------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| [fleetsCancelSample.js][fleetscancelsample] | cancels an instance Fleet creation that is in progress. x-ms-original-file: 2025-07-01-preview/Fleets_Cancel.json | +| [fleetsCreateOrUpdateSample.js][fleetscreateorupdatesample] | create a Fleet x-ms-original-file: 2025-07-01-preview/Fleets_CreateOrUpdate.json | +| [fleetsDeleteSample.js][fleetsdeletesample] | delete a Fleet x-ms-original-file: 2025-07-01-preview/Fleets_Delete.json | +| [fleetsGetSample.js][fleetsgetsample] | get a Fleet x-ms-original-file: 2025-07-01-preview/Fleets_Get.json | +| [fleetsListByResourceGroupSample.js][fleetslistbyresourcegroupsample] | list Fleet resources by resource group x-ms-original-file: 2025-07-01-preview/Fleets_ListByResourceGroup.json | +| [fleetsListBySubscriptionSample.js][fleetslistbysubscriptionsample] | list Fleet resources by subscription ID x-ms-original-file: 2025-07-01-preview/Fleets_ListBySubscription.json | +| [fleetsListVirtualMachineScaleSetsSample.js][fleetslistvirtualmachinescalesetssample] | list VirtualMachineScaleSet resources by Fleet x-ms-original-file: 2025-07-01-preview/Fleets_ListVirtualMachineScaleSets.json | +| [fleetsListVirtualMachinesSample.js][fleetslistvirtualmachinessample] | list VirtualMachine resources of an instance Fleet. x-ms-original-file: 2025-07-01-preview/Fleets_ListVirtualMachines.json | +| [fleetsUpdateSample.js][fleetsupdatesample] | update a Fleet x-ms-original-file: 2025-07-01-preview/Fleets_Update.json | +| [operationsListSample.js][operationslistsample] | list the operations for the provider x-ms-original-file: 2025-07-01-preview/Operations_List.json | ## Prerequisites @@ -38,27 +40,29 @@ npm install 3. Run whichever samples you like (note that some samples may require additional setup, see the table above): ```bash -node fleetsCreateOrUpdateSample.js +node fleetsCancelSample.js ``` Alternatively, run a single sample with the correct environment variables set (setting up the `.env` file is not required if you do this), for example (cross-platform): ```bash -npx dev-tool run vendored cross-env node fleetsCreateOrUpdateSample.js +npx dev-tool run vendored cross-env node fleetsCancelSample.js ``` ## Next Steps Take a look at our [API Documentation][apiref] for more information about the APIs that are available in the clients. -[fleetscreateorupdatesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsCreateOrUpdateSample.js -[fleetsdeletesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsDeleteSample.js -[fleetsgetsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsGetSample.js -[fleetslistbyresourcegroupsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsListByResourceGroupSample.js -[fleetslistbysubscriptionsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsListBySubscriptionSample.js -[fleetslistvirtualmachinescalesetssample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsListVirtualMachineScaleSetsSample.js -[fleetsupdatesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsUpdateSample.js -[operationslistsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v1/javascript/operationsListSample.js +[fleetscancelsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsCancelSample.js +[fleetscreateorupdatesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsCreateOrUpdateSample.js +[fleetsdeletesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsDeleteSample.js +[fleetsgetsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsGetSample.js +[fleetslistbyresourcegroupsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsListByResourceGroupSample.js +[fleetslistbysubscriptionsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsListBySubscriptionSample.js +[fleetslistvirtualmachinescalesetssample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsListVirtualMachineScaleSetsSample.js +[fleetslistvirtualmachinessample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsListVirtualMachinesSample.js +[fleetsupdatesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsUpdateSample.js +[operationslistsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/operationsListSample.js [apiref]: https://learn.microsoft.com/javascript/api/@azure/arm-computefleet?view=azure-node-preview [freesub]: https://azure.microsoft.com/free/ [package]: https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/computefleet/arm-computefleet/README.md diff --git a/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsCancelSample.js b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsCancelSample.js new file mode 100644 index 000000000000..0fbcac9966bb --- /dev/null +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsCancelSample.js @@ -0,0 +1,24 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const { AzureFleetClient } = require("@azure/arm-computefleet"); +const { DefaultAzureCredential } = require("@azure/identity"); + +/** + * This sample demonstrates how to cancels an instance Fleet creation that is in progress. + * + * @summary cancels an instance Fleet creation that is in progress. + * x-ms-original-file: 2025-07-01-preview/Fleets_Cancel.json + */ +async function fleetsCancel() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "3453D930-6DDF-4466-B3B3-E1AEE9BD448C"; + const client = new AzureFleetClient(credential, subscriptionId); + await client.fleets.cancel("rgazurefleet", "myFleet"); +} + +async function main() { + await fleetsCancel(); +} + +main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsCreateOrUpdateSample.js b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsCreateOrUpdateSample.js new file mode 100644 index 000000000000..e63014674d06 --- /dev/null +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsCreateOrUpdateSample.js @@ -0,0 +1,698 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const { AzureFleetClient } = require("@azure/arm-computefleet"); +const { DefaultAzureCredential } = require("@azure/identity"); + +/** + * This sample demonstrates how to create a Fleet + * + * @summary create a Fleet + * x-ms-original-file: 2025-07-01-preview/Fleets_CreateOrUpdate.json + */ +async function fleetsCreateOrUpdate() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "1DC2F28C-A625-4B0E-9748-9885A3C9E9EB"; + const client = new AzureFleetClient(credential, subscriptionId); + const result = await client.fleets.createOrUpdate("rgazurefleet", "myFleet", { + properties: { + spotPriorityProfile: { + capacity: 20, + minCapacity: 10, + maxPricePerVM: 0.00865, + evictionPolicy: "Delete", + allocationStrategy: "PriceCapacityOptimized", + maintain: true, + }, + regularPriorityProfile: { + capacity: 20, + minCapacity: 10, + allocationStrategy: "Prioritized", + }, + vmSizesProfile: [ + { name: "Standard_D1_v2", rank: 0 }, + { name: "Standard_D2_v2", rank: 1 }, + ], + computeProfile: { + baseVirtualMachineProfile: { + osProfile: { + computerNamePrefix: "o", + adminUsername: "nrgzqciiaaxjrqldbmjbqkyhntp", + adminPassword: "adfbrdxpv", + customData: "xjjib", + windowsConfiguration: { + provisionVMAgent: true, + enableAutomaticUpdates: true, + timeZone: "hlyjiqcfksgrpjrct", + additionalUnattendContent: [ + { + passName: "OobeSystem", + componentName: "Microsoft-Windows-Shell-Setup", + settingName: "AutoLogon", + content: "bubmqbxjkj", + }, + ], + patchSettings: { + patchMode: "Manual", + enableHotpatching: true, + assessmentMode: "ImageDefault", + automaticByPlatformSettings: { + rebootSetting: "Unknown", + bypassPlatformSafetyChecksOnUserSchedule: true, + }, + }, + winRM: { + listeners: [ + { + protocol: "Https", + certificateUrl: "https://myVaultName.vault.azure.net/secrets/myCertName", + }, + ], + }, + enableVMAgentPlatformUpdates: true, + }, + linuxConfiguration: { + disablePasswordAuthentication: true, + ssh: { + publicKeys: [{ path: "kmqz", keyData: "kivgsubusvpprwqaqpjcmhsv" }], + }, + provisionVMAgent: true, + patchSettings: { + patchMode: "ImageDefault", + assessmentMode: "ImageDefault", + automaticByPlatformSettings: { + rebootSetting: "Unknown", + bypassPlatformSafetyChecksOnUserSchedule: true, + }, + }, + enableVMAgentPlatformUpdates: true, + }, + secrets: [ + { + sourceVault: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", + }, + vaultCertificates: [ + { + certificateUrl: "https://myVaultName.vault.azure.net/secrets/myCertName", + certificateStore: "nlxrwavpzhueffxsshlun", + }, + ], + }, + ], + allowExtensionOperations: true, + requireGuestProvisionSignal: true, + }, + storageProfile: { + imageReference: { + publisher: "mqxgwbiyjzmxavhbkd", + offer: "isxgumkarlkomp", + sku: "eojmppqcrnpmxirtp", + version: "wvpcqefgtmqdgltiuz", + sharedGalleryImageId: "kmkgihoxwlawuuhcinfirktdwkmx", + communityGalleryImageId: "vlqe", + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}/versions/{versionName}", + }, + osDisk: { + name: "wfttw", + caching: "None", + writeAcceleratorEnabled: true, + createOption: "FromImage", + diffDiskSettings: { option: "Local", placement: "CacheDisk" }, + diskSizeGB: 14, + osType: "Windows", + image: { + uri: "https://myStorageAccountName.blob.core.windows.net/myContainerName/myVhdName.vhd", + }, + vhdContainers: ["tkzcwddtinkfpnfklatw"], + managedDisk: { + storageAccountType: "Standard_LRS", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + securityProfile: { + securityEncryptionType: "VMGuestStateOnly", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + }, + }, + deleteOption: "Delete", + }, + dataDisks: [ + { + name: "eogiykmdmeikswxmigjws", + lun: 14, + caching: "None", + writeAcceleratorEnabled: true, + createOption: "FromImage", + diskSizeGB: 6, + managedDisk: { + storageAccountType: "Standard_LRS", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + securityProfile: { + securityEncryptionType: "VMGuestStateOnly", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + }, + }, + diskIopsReadWrite: 27, + diskMBpsReadWrite: 2, + deleteOption: "Delete", + }, + ], + diskControllerType: "uzb", + }, + networkProfile: { + healthProbe: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}", + }, + networkInterfaceConfigurations: [ + { + name: "i", + properties: { + primary: true, + enableAcceleratedNetworking: true, + disableTcpStateTracking: true, + enableFpga: true, + networkSecurityGroup: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}", + }, + dnsSettings: { dnsServers: ["nxmmfolhclsesu"] }, + ipConfigurations: [ + { + name: "oezqhkidfhyywlfzwuotilrpbqnjg", + properties: { + subnet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}", + }, + primary: true, + publicIPAddressConfiguration: { + name: "fvpqf", + properties: { + idleTimeoutInMinutes: 9, + dnsSettings: { + domainNameLabel: "ukrddzvmorpmfsczjwtbvp", + domainNameLabelScope: "TenantReuse", + }, + ipTags: [ + { + ipTagType: "sddgsoemnzgqizale", + tag: "wufmhrjsakbiaetyara", + }, + ], + publicIPPrefix: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}", + }, + publicIPAddressVersion: "IPv4", + deleteOption: "Delete", + }, + sku: { name: "Basic", tier: "Regional" }, + }, + privateIPAddressVersion: "IPv4", + applicationGatewayBackendAddressPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/backendAddressPools/{backendAddressPoolName}", + }, + ], + applicationSecurityGroups: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationSecurityGroups/{applicationSecurityGroupName}", + }, + ], + loadBalancerBackendAddressPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/backendAddressPools/{backendAddressPoolName}", + }, + ], + loadBalancerInboundNatPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/inboundNatPools/{inboundNatPoolName}", + }, + ], + }, + }, + ], + enableIPForwarding: true, + deleteOption: "Delete", + auxiliaryMode: "None", + auxiliarySku: "None", + }, + }, + ], + networkApiVersion: "2020-11-01", + }, + securityProfile: { + uefiSettings: { secureBootEnabled: true, vTpmEnabled: true }, + encryptionAtHost: true, + securityType: "TrustedLaunch", + encryptionIdentity: { + userAssignedIdentityResourceId: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{userAssignedIdentityName}", + }, + proxyAgentSettings: { + enabled: true, + mode: "Audit", + keyIncarnationId: 20, + }, + }, + diagnosticsProfile: { + bootDiagnostics: { + enabled: true, + storageUri: "http://myStorageAccountName.blob.core.windows.net", + }, + }, + extensionProfile: { + extensions: [ + { + name: "bndxuxx", + properties: { + forceUpdateTag: "yhgxw", + publisher: "kpxtirxjfprhs", + type: "pgjilctjjwaa", + typeHandlerVersion: "zevivcoilxmbwlrihhhibq", + autoUpgradeMinorVersion: true, + enableAutomaticUpgrade: true, + settings: {}, + protectedSettings: {}, + provisionAfterExtensions: ["nftzosroolbcwmpupujzqwqe"], + suppressFailures: true, + protectedSettingsFromKeyVault: { + secretUrl: "https://myvaultName.vault.azure.net/secrets/secret/mySecretName", + sourceVault: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", + }, + }, + }, + }, + ], + extensionsTimeBudget: "mbhjahtdygwgyszdwjtvlvtgchdwil", + }, + licenseType: "v", + scheduledEventsProfile: { + terminateNotificationProfile: { + notBeforeTimeout: "iljppmmw", + enable: true, + }, + osImageNotificationProfile: { + notBeforeTimeout: "olbpadmevekyczfokodtfprxti", + enable: true, + }, + }, + userData: "s", + capacityReservation: { + capacityReservationGroup: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}", + }, + }, + applicationProfile: { + galleryApplications: [ + { + tags: "eyrqjbib", + order: 5, + packageReferenceId: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{applicationName}/versions/{versionName}", + configurationReference: "ulztmiavpojpbpbddgnuuiimxcpau", + treatFailureAsDeploymentFailure: true, + enableAutomaticUpgrade: true, + }, + ], + }, + hardwareProfile: { + vmSizeProperties: { vCPUsAvailable: 16, vCPUsPerCore: 23 }, + }, + serviceArtifactReference: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactsName}/vmArtifactsProfiles/{vmArtifactsProfileName}", + }, + securityPostureReference: { + id: "/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest", + excludeExtensions: ["{securityPostureVMExtensionName}"], + isOverridable: true, + }, + }, + computeApiVersion: "2023-07-01", + platformFaultDomainCount: 1, + additionalVirtualMachineCapabilities: { + ultraSSDEnabled: true, + hibernationEnabled: true, + }, + }, + mode: "Instance", + capacityType: "VCpu", + zoneAllocationPolicy: { + distributionStrategy: "Prioritized", + zonePreferences: [ + { zone: "1", rank: 0 }, + { zone: "2", rank: 1 }, + ], + }, + vmAttributes: { + vCpuCount: { min: 2, max: 4 }, + memoryInGiB: { min: 2, max: 4 }, + memoryInGiBPerVCpu: { min: 2, max: 4 }, + localStorageSupport: "Excluded", + localStorageInGiB: { min: 2, max: 4 }, + localStorageDiskTypes: ["HDD"], + dataDiskCount: { min: 2, max: 4 }, + networkInterfaceCount: { min: 2, max: 4 }, + networkBandwidthInMbps: { min: 2, max: 4 }, + rdmaSupport: "Excluded", + rdmaNetworkInterfaceCount: { min: 2, max: 4 }, + acceleratorSupport: "Excluded", + acceleratorManufacturers: ["AMD"], + acceleratorTypes: ["GPU"], + acceleratorCount: { min: 2, max: 4 }, + vmCategories: ["GpuAccelerated"], + architectureTypes: ["ARM64"], + cpuManufacturers: ["Intel"], + burstableSupport: "Excluded", + excludedVMSizes: ["Standard_A1"], + }, + additionalLocationsProfile: { + locationProfiles: [ + { + location: "ekbzgzhs", + virtualMachineProfileOverride: { + osProfile: { + computerNamePrefix: "xoxwfnjjuqibzxldgxu", + adminUsername: "wwjyuhblwecni", + adminPassword: "", + customData: "gvyvbgcgutteiivwjn", + windowsConfiguration: { + provisionVMAgent: true, + enableAutomaticUpdates: true, + timeZone: "oqpoladmchkkugpxocrynztkok", + additionalUnattendContent: [ + { + passName: "OobeSystem", + componentName: "Microsoft-Windows-Shell-Setup", + settingName: "AutoLogon", + content: "ynkrgbreqtuxgftjgeuvozzypzx", + }, + ], + patchSettings: { + patchMode: "Manual", + enableHotpatching: true, + assessmentMode: "ImageDefault", + automaticByPlatformSettings: { + rebootSetting: "Unknown", + bypassPlatformSafetyChecksOnUserSchedule: true, + }, + }, + winRM: { + listeners: [ + { + protocol: "Http", + certificateUrl: "https://microsoft.com/a", + }, + ], + }, + enableVMAgentPlatformUpdates: true, + }, + linuxConfiguration: { + disablePasswordAuthentication: true, + ssh: { + publicKeys: [{ path: "bci", keyData: "meokrrrddgnyxyhg" }], + }, + provisionVMAgent: true, + patchSettings: { + patchMode: "ImageDefault", + assessmentMode: "ImageDefault", + automaticByPlatformSettings: { + rebootSetting: "Unknown", + bypassPlatformSafetyChecksOnUserSchedule: true, + }, + }, + enableVMAgentPlatformUpdates: true, + }, + secrets: [ + { + sourceVault: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", + }, + vaultCertificates: [ + { + certificateUrl: "https://microsoft.com/a", + certificateStore: "hdts", + }, + ], + }, + ], + allowExtensionOperations: true, + requireGuestProvisionSignal: true, + }, + storageProfile: { + imageReference: { + publisher: "mqxgwbiyjzmxavhbkd", + offer: "isxgumkarlkomp", + sku: "eojmppqcrnpmxirtp", + version: "wvpcqefgtmqdgltiuz", + sharedGalleryImageId: "kmkgihoxwlawuuhcinfirktdwkmx", + communityGalleryImageId: "vlqe", + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}/versions/{versionName}", + }, + osDisk: { + name: "xhwnqpqigoymwwetvhjuuhiu", + caching: "None", + writeAcceleratorEnabled: true, + createOption: "FromImage", + diffDiskSettings: { option: "Local", placement: "CacheDisk" }, + diskSizeGB: 21, + osType: "Windows", + image: { uri: "https://microsoft.com/a" }, + vhdContainers: ["mgyqnavpb"], + managedDisk: { + storageAccountType: "Standard_LRS", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + securityProfile: { + securityEncryptionType: "VMGuestStateOnly", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + }, + }, + deleteOption: "Delete", + }, + dataDisks: [ + { + name: "nqblcowgig", + lun: 14, + caching: "None", + writeAcceleratorEnabled: true, + createOption: "FromImage", + diskSizeGB: 11, + managedDisk: { + storageAccountType: "Standard_LRS", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + securityProfile: { + securityEncryptionType: "VMGuestStateOnly", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + }, + }, + diskIopsReadWrite: 5, + diskMBpsReadWrite: 4, + deleteOption: "Delete", + }, + ], + diskControllerType: "SCSI", + }, + networkProfile: { + healthProbe: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}", + }, + networkInterfaceConfigurations: [ + { + name: "uyemquurltujhbjkhm", + properties: { + primary: true, + enableAcceleratedNetworking: true, + disableTcpStateTracking: true, + enableFpga: true, + networkSecurityGroup: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}", + }, + dnsSettings: { dnsServers: ["ajcsckebabrus"] }, + ipConfigurations: [ + { + name: "xpwuwsvkuml", + properties: { + subnet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}", + }, + primary: true, + publicIPAddressConfiguration: { + name: "wbpdlbxflssopphq", + properties: { + idleTimeoutInMinutes: 9, + dnsSettings: { + domainNameLabel: "uwjtwqgwalsctypszcbnxo", + domainNameLabelScope: "TenantReuse", + }, + ipTags: [ + { + ipTagType: "hxkbmbisknggtfdqoaqagjhipdkd", + tag: "vzxhyyrzieaocbxyxieivj", + }, + ], + publicIPPrefix: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}", + }, + publicIPAddressVersion: "IPv4", + deleteOption: "Delete", + }, + sku: { name: "Basic", tier: "Regional" }, + }, + privateIPAddressVersion: "IPv4", + applicationGatewayBackendAddressPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/backendAddressPools/{backendAddressPoolName}", + }, + ], + applicationSecurityGroups: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationSecurityGroups/{applicationSecurityGroupName}", + }, + ], + loadBalancerBackendAddressPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/backendAddressPools/{backendAddressPoolName}", + }, + ], + loadBalancerInboundNatPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/inboundNatPools/{inboundNatPoolName}", + }, + ], + }, + }, + ], + enableIPForwarding: true, + deleteOption: "Delete", + auxiliaryMode: "None", + auxiliarySku: "None", + }, + }, + ], + networkApiVersion: "2020-11-01", + }, + securityProfile: { + uefiSettings: { secureBootEnabled: true, vTpmEnabled: true }, + encryptionAtHost: true, + securityType: "TrustedLaunch", + encryptionIdentity: { + userAssignedIdentityResourceId: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{userAssignedIdentityName}", + }, + proxyAgentSettings: { + enabled: true, + mode: "Audit", + keyIncarnationId: 22, + }, + }, + diagnosticsProfile: { + bootDiagnostics: { + enabled: true, + storageUri: "https://microsoft.com/a", + }, + }, + extensionProfile: { + extensions: [ + { + name: "dockglmmvl", + properties: { + forceUpdateTag: "wzyqlpszoiewqbhlnzckfshdtpwkbd", + publisher: "iikgjziralgrfsrxrlrdigqyfhuqg", + type: "xzhgosms", + typeHandlerVersion: "mfzdzdwucagkogmxoosyjpej", + autoUpgradeMinorVersion: true, + enableAutomaticUpgrade: true, + settings: {}, + protectedSettings: {}, + provisionAfterExtensions: ["rqrycujrpdodllirebkfg"], + suppressFailures: true, + protectedSettingsFromKeyVault: { + secretUrl: "https://microsoft.com/ahygahgb", + sourceVault: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", + }, + }, + }, + }, + ], + extensionsTimeBudget: "srxtwxrc", + }, + licenseType: "hilutelnuqxtpdznq", + scheduledEventsProfile: { + terminateNotificationProfile: { + notBeforeTimeout: "jgycfvgxpzvgsdylbcspkrxwhgxkyd", + enable: true, + }, + osImageNotificationProfile: { + notBeforeTimeout: "nbgfbvisxveyywfyjgcfb", + enable: true, + }, + }, + userData: "ezhyl", + capacityReservation: { + capacityReservationGroup: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}", + }, + }, + applicationProfile: { + galleryApplications: [ + { + tags: "fronuehbtzhxaoijmdmjzwaswgevh", + order: 19, + packageReferenceId: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{applicationName}/versions/{versionName}", + configurationReference: "gqxsvizquzglpsgqaundtyh", + treatFailureAsDeploymentFailure: true, + enableAutomaticUpgrade: true, + }, + ], + }, + hardwareProfile: { + vmSizeProperties: { vCPUsAvailable: 1, vCPUsPerCore: 4 }, + }, + serviceArtifactReference: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactsName}/vmArtifactsProfiles/{vmArtifactsProfileName}", + }, + securityPostureReference: { + id: "/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest", + excludeExtensions: ["zagiokiwvg"], + isOverridable: true, + }, + }, + }, + ], + }, + }, + zones: ["1", "2"], + identity: { type: "UserAssigned", userAssignedIdentities: {} }, + tags: {}, + location: "westus", + plan: { + name: "jwgrcrnrtfoxn", + publisher: "iozjbiqqckqm", + product: "cgopbyvdyqikahwyxfpzwaqk", + promotionCode: "naglezezplcaruqogtxnuizslqnnbr", + version: "wa", + }, + }); + console.log(result); +} + +async function main() { + await fleetsCreateOrUpdate(); +} + +main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsDeleteSample.js b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsDeleteSample.js similarity index 88% rename from sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsDeleteSample.js rename to sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsDeleteSample.js index 01a14231eec9..691735f7019d 100644 --- a/sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsDeleteSample.js +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsDeleteSample.js @@ -8,7 +8,7 @@ const { DefaultAzureCredential } = require("@azure/identity"); * This sample demonstrates how to delete a Fleet * * @summary delete a Fleet - * x-ms-original-file: 2024-11-01/Fleets_Delete.json + * x-ms-original-file: 2025-07-01-preview/Fleets_Delete.json */ async function fleetsDelete() { const credential = new DefaultAzureCredential(); @@ -18,7 +18,7 @@ async function fleetsDelete() { } async function main() { - fleetsDelete(); + await fleetsDelete(); } main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsGetSample.js b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsGetSample.js similarity index 79% rename from sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsGetSample.js rename to sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsGetSample.js index 147910874d74..9bbd94e8acb9 100644 --- a/sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsGetSample.js +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsGetSample.js @@ -8,18 +8,18 @@ const { DefaultAzureCredential } = require("@azure/identity"); * This sample demonstrates how to get a Fleet * * @summary get a Fleet - * x-ms-original-file: 2024-11-01/Fleets_Get.json + * x-ms-original-file: 2025-07-01-preview/Fleets_Get.json */ async function fleetsGet() { const credential = new DefaultAzureCredential(); const subscriptionId = "1DC2F28C-A625-4B0E-9748-9885A3C9E9EB"; const client = new AzureFleetClient(credential, subscriptionId); - const result = await client.fleets.get("rgazurefleet", "testFleet"); + const result = await client.fleets.get("rgazurefleet", "myFleet"); console.log(result); } async function main() { - fleetsGet(); + await fleetsGet(); } main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsListByResourceGroupSample.js b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsListByResourceGroupSample.js similarity index 78% rename from sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsListByResourceGroupSample.js rename to sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsListByResourceGroupSample.js index c67b316f73d1..8d4429436749 100644 --- a/sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsListByResourceGroupSample.js +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsListByResourceGroupSample.js @@ -8,14 +8,14 @@ const { DefaultAzureCredential } = require("@azure/identity"); * This sample demonstrates how to list Fleet resources by resource group * * @summary list Fleet resources by resource group - * x-ms-original-file: 2024-11-01/Fleets_ListByResourceGroup.json + * x-ms-original-file: 2025-07-01-preview/Fleets_ListByResourceGroup.json */ async function fleetsListByResourceGroup() { const credential = new DefaultAzureCredential(); const subscriptionId = "1DC2F28C-A625-4B0E-9748-9885A3C9E9EB"; const client = new AzureFleetClient(credential, subscriptionId); const resArray = new Array(); - for await (let item of client.fleets.listByResourceGroup("rgazurefleet")) { + for await (const item of client.fleets.listByResourceGroup("rgazurefleet")) { resArray.push(item); } @@ -23,7 +23,7 @@ async function fleetsListByResourceGroup() { } async function main() { - fleetsListByResourceGroup(); + await fleetsListByResourceGroup(); } main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsListBySubscriptionSample.js b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsListBySubscriptionSample.js similarity index 80% rename from sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsListBySubscriptionSample.js rename to sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsListBySubscriptionSample.js index 9e5df9d0d10c..bbc152df380d 100644 --- a/sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsListBySubscriptionSample.js +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsListBySubscriptionSample.js @@ -8,14 +8,14 @@ const { DefaultAzureCredential } = require("@azure/identity"); * This sample demonstrates how to list Fleet resources by subscription ID * * @summary list Fleet resources by subscription ID - * x-ms-original-file: 2024-11-01/Fleets_ListBySubscription.json + * x-ms-original-file: 2025-07-01-preview/Fleets_ListBySubscription.json */ async function fleetsListBySubscription() { const credential = new DefaultAzureCredential(); const subscriptionId = "1DC2F28C-A625-4B0E-9748-9885A3C9E9EB"; const client = new AzureFleetClient(credential, subscriptionId); const resArray = new Array(); - for await (let item of client.fleets.listBySubscription()) { + for await (const item of client.fleets.listBySubscription()) { resArray.push(item); } @@ -23,7 +23,7 @@ async function fleetsListBySubscription() { } async function main() { - fleetsListBySubscription(); + await fleetsListBySubscription(); } main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsListVirtualMachineScaleSetsSample.js b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsListVirtualMachineScaleSetsSample.js similarity index 76% rename from sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsListVirtualMachineScaleSetsSample.js rename to sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsListVirtualMachineScaleSetsSample.js index b08be0d0b00e..dc518cf8f0fb 100644 --- a/sdk/computefleet/arm-computefleet/samples/v1/javascript/fleetsListVirtualMachineScaleSetsSample.js +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsListVirtualMachineScaleSetsSample.js @@ -8,14 +8,14 @@ const { DefaultAzureCredential } = require("@azure/identity"); * This sample demonstrates how to list VirtualMachineScaleSet resources by Fleet * * @summary list VirtualMachineScaleSet resources by Fleet - * x-ms-original-file: 2024-11-01/Fleets_ListVirtualMachineScaleSets.json + * x-ms-original-file: 2025-07-01-preview/Fleets_ListVirtualMachineScaleSets.json */ async function fleetsListVirtualMachineScaleSets() { const credential = new DefaultAzureCredential(); const subscriptionId = "1DC2F28C-A625-4B0E-9748-9885A3C9E9EB"; const client = new AzureFleetClient(credential, subscriptionId); const resArray = new Array(); - for await (let item of client.fleets.listVirtualMachineScaleSets("rgazurefleet", "myFleet")) { + for await (const item of client.fleets.listVirtualMachineScaleSets("rgazurefleet", "myFleet")) { resArray.push(item); } @@ -23,7 +23,7 @@ async function fleetsListVirtualMachineScaleSets() { } async function main() { - fleetsListVirtualMachineScaleSets(); + await fleetsListVirtualMachineScaleSets(); } main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsListVirtualMachinesSample.js b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsListVirtualMachinesSample.js new file mode 100644 index 000000000000..8e6e70081a35 --- /dev/null +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsListVirtualMachinesSample.js @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const { AzureFleetClient } = require("@azure/arm-computefleet"); +const { DefaultAzureCredential } = require("@azure/identity"); + +/** + * This sample demonstrates how to list VirtualMachine resources of an instance Fleet. + * + * @summary list VirtualMachine resources of an instance Fleet. + * x-ms-original-file: 2025-07-01-preview/Fleets_ListVirtualMachines.json + */ +async function fleetsListVirtualMachinesMaximumSet() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "3453D930-6DDF-4466-B3B3-E1AEE9BD448C"; + const client = new AzureFleetClient(credential, subscriptionId); + const resArray = new Array(); + for await (const item of client.fleets.listVirtualMachines("rgazurefleet", "myFleet", { + filter: "xzcepyottghqa", + skiptoken: "hydepbmwuypaprlphcdecsz", + })) { + resArray.push(item); + } + + console.log(resArray); +} + +async function main() { + await fleetsListVirtualMachinesMaximumSet(); +} + +main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsUpdateSample.js b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsUpdateSample.js new file mode 100644 index 000000000000..62d0e8365cf1 --- /dev/null +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/fleetsUpdateSample.js @@ -0,0 +1,695 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const { AzureFleetClient } = require("@azure/arm-computefleet"); +const { DefaultAzureCredential } = require("@azure/identity"); + +/** + * This sample demonstrates how to update a Fleet + * + * @summary update a Fleet + * x-ms-original-file: 2025-07-01-preview/Fleets_Update.json + */ +async function fleetsUpdate() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "1DC2F28C-A625-4B0E-9748-9885A3C9E9EB"; + const client = new AzureFleetClient(credential, subscriptionId); + const result = await client.fleets.update("rgazurefleet", "myFleet", { + identity: { type: "UserAssigned", userAssignedIdentities: {} }, + tags: {}, + properties: { + spotPriorityProfile: { + capacity: 20, + minCapacity: 10, + maxPricePerVM: 0.00865, + evictionPolicy: "Delete", + allocationStrategy: "PriceCapacityOptimized", + maintain: true, + }, + regularPriorityProfile: { + capacity: 20, + minCapacity: 10, + allocationStrategy: "Prioritized", + }, + vmSizesProfile: [ + { name: "Standard_D1_v2", rank: 0 }, + { name: "Standard_D2_v2", rank: 1 }, + ], + computeProfile: { + baseVirtualMachineProfile: { + osProfile: { + computerNamePrefix: "o", + adminUsername: "nrgzqciiaaxjrqldbmjbqkyhntp", + adminPassword: "adfbrdxpv", + customData: "xjjib", + windowsConfiguration: { + provisionVMAgent: true, + enableAutomaticUpdates: true, + timeZone: "hlyjiqcfksgrpjrct", + additionalUnattendContent: [ + { + passName: "OobeSystem", + componentName: "Microsoft-Windows-Shell-Setup", + settingName: "AutoLogon", + content: "bubmqbxjkj", + }, + ], + patchSettings: { + patchMode: "Manual", + enableHotpatching: true, + assessmentMode: "ImageDefault", + automaticByPlatformSettings: { + rebootSetting: "Unknown", + bypassPlatformSafetyChecksOnUserSchedule: true, + }, + }, + winRM: { + listeners: [ + { + protocol: "Http", + certificateUrl: "https://myVaultName.vault.azure.net/secrets/myCertName", + }, + ], + }, + enableVMAgentPlatformUpdates: true, + }, + linuxConfiguration: { + disablePasswordAuthentication: true, + ssh: { + publicKeys: [{ path: "kmqz", keyData: "kivgsubusvpprwqaqpjcmhsv" }], + }, + provisionVMAgent: true, + patchSettings: { + patchMode: "ImageDefault", + assessmentMode: "ImageDefault", + automaticByPlatformSettings: { + rebootSetting: "Unknown", + bypassPlatformSafetyChecksOnUserSchedule: true, + }, + }, + enableVMAgentPlatformUpdates: true, + }, + secrets: [ + { + sourceVault: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", + }, + vaultCertificates: [ + { + certificateUrl: "https://myVaultName.vault.azure.net/secrets/myCertName", + certificateStore: "nlxrwavpzhueffxsshlun", + }, + ], + }, + ], + allowExtensionOperations: true, + requireGuestProvisionSignal: true, + }, + storageProfile: { + imageReference: { + publisher: "mqxgwbiyjzmxavhbkd", + offer: "isxgumkarlkomp", + sku: "eojmppqcrnpmxirtp", + version: "wvpcqefgtmqdgltiuz", + sharedGalleryImageId: "kmkgihoxwlawuuhcinfirktdwkmx", + communityGalleryImageId: "vlqe", + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}/versions/{versionName}", + }, + osDisk: { + name: "wfttw", + caching: "None", + writeAcceleratorEnabled: true, + createOption: "FromImage", + diffDiskSettings: { option: "Local", placement: "CacheDisk" }, + diskSizeGB: 14, + osType: "Windows", + image: { + uri: "https://myStorageAccountName.blob.core.windows.net/myContainerName/myVhdName.vhd", + }, + vhdContainers: ["tkzcwddtinkfpnfklatw"], + managedDisk: { + storageAccountType: "Standard_LRS", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + securityProfile: { + securityEncryptionType: "VMGuestStateOnly", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + }, + }, + deleteOption: "Delete", + }, + dataDisks: [ + { + name: "eogiykmdmeikswxmigjws", + lun: 14, + caching: "None", + writeAcceleratorEnabled: true, + createOption: "FromImage", + diskSizeGB: 6, + managedDisk: { + storageAccountType: "Standard_LRS", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + securityProfile: { + securityEncryptionType: "VMGuestStateOnly", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + }, + }, + diskIopsReadWrite: 27, + diskMBpsReadWrite: 2, + deleteOption: "Delete", + }, + ], + diskControllerType: "uzb", + }, + networkProfile: { + healthProbe: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}", + }, + networkInterfaceConfigurations: [ + { + name: "i", + properties: { + primary: true, + enableAcceleratedNetworking: true, + disableTcpStateTracking: true, + enableFpga: true, + networkSecurityGroup: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}", + }, + dnsSettings: { dnsServers: ["nxmmfolhclsesu"] }, + ipConfigurations: [ + { + name: "oezqhkidfhyywlfzwuotilrpbqnjg", + properties: { + subnet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}", + }, + primary: true, + publicIPAddressConfiguration: { + name: "fvpqf", + properties: { + idleTimeoutInMinutes: 9, + dnsSettings: { + domainNameLabel: "ukrddzvmorpmfsczjwtbvp", + domainNameLabelScope: "TenantReuse", + }, + ipTags: [ + { + ipTagType: "sddgsoemnzgqizale", + tag: "wufmhrjsakbiaetyara", + }, + ], + publicIPPrefix: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}", + }, + publicIPAddressVersion: "IPv4", + deleteOption: "Delete", + }, + sku: { name: "Basic", tier: "Regional" }, + }, + privateIPAddressVersion: "IPv4", + applicationGatewayBackendAddressPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/backendAddressPools/{backendAddressPoolName}", + }, + ], + applicationSecurityGroups: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationSecurityGroups/{applicationSecurityGroupName}", + }, + ], + loadBalancerBackendAddressPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/backendAddressPools/{backendAddressPoolName}", + }, + ], + loadBalancerInboundNatPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/inboundNatPools/{inboundNatPoolName}", + }, + ], + }, + }, + ], + enableIPForwarding: true, + deleteOption: "Delete", + auxiliaryMode: "None", + auxiliarySku: "None", + }, + }, + ], + networkApiVersion: "2020-11-01", + }, + securityProfile: { + uefiSettings: { secureBootEnabled: true, vTpmEnabled: true }, + encryptionAtHost: true, + securityType: "TrustedLaunch", + encryptionIdentity: { + userAssignedIdentityResourceId: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{userAssignedIdentityName}", + }, + proxyAgentSettings: { + enabled: true, + mode: "Audit", + keyIncarnationId: 20, + }, + }, + diagnosticsProfile: { + bootDiagnostics: { + enabled: true, + storageUri: "http://myStorageAccountName.blob.core.windows.net", + }, + }, + extensionProfile: { + extensions: [ + { + name: "bndxuxx", + properties: { + forceUpdateTag: "yhgxw", + publisher: "kpxtirxjfprhs", + type: "pgjilctjjwaa", + typeHandlerVersion: "zevivcoilxmbwlrihhhibq", + autoUpgradeMinorVersion: true, + enableAutomaticUpgrade: true, + settings: {}, + protectedSettings: {}, + provisionAfterExtensions: ["nftzosroolbcwmpupujzqwqe"], + suppressFailures: true, + protectedSettingsFromKeyVault: { + secretUrl: "https://myVaultName.vault.azure.net/secrets/secret/mySecretName", + sourceVault: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", + }, + }, + }, + }, + ], + extensionsTimeBudget: "mbhjahtdygwgyszdwjtvlvtgchdwil", + }, + licenseType: "v", + scheduledEventsProfile: { + terminateNotificationProfile: { + notBeforeTimeout: "iljppmmw", + enable: true, + }, + osImageNotificationProfile: { + notBeforeTimeout: "olbpadmevekyczfokodtfprxti", + enable: true, + }, + }, + userData: "s", + capacityReservation: { + capacityReservationGroup: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}", + }, + }, + applicationProfile: { + galleryApplications: [ + { + tags: "eyrqjbib", + order: 5, + packageReferenceId: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{applicationName}/versions/{versionName}", + configurationReference: "ulztmiavpojpbpbddgnuuiimxcpau", + treatFailureAsDeploymentFailure: true, + enableAutomaticUpgrade: true, + }, + ], + }, + hardwareProfile: { + vmSizeProperties: { vCPUsAvailable: 16, vCPUsPerCore: 23 }, + }, + serviceArtifactReference: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactsName}/vmArtifactsProfiles/{vmArtifactsProfileName}", + }, + securityPostureReference: { + id: "/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest", + excludeExtensions: ["{securityPostureVMExtensionName}"], + isOverridable: true, + }, + }, + computeApiVersion: "2023-07-01", + platformFaultDomainCount: 1, + additionalVirtualMachineCapabilities: { + ultraSSDEnabled: true, + hibernationEnabled: true, + }, + }, + vmAttributes: { + vCpuCount: { min: 2, max: 4 }, + memoryInGiB: { min: 2, max: 4 }, + memoryInGiBPerVCpu: { min: 2, max: 4 }, + localStorageSupport: "Excluded", + localStorageInGiB: { min: 2, max: 4 }, + localStorageDiskTypes: ["HDD"], + dataDiskCount: { min: 2, max: 4 }, + networkInterfaceCount: { min: 2, max: 4 }, + networkBandwidthInMbps: { min: 2, max: 4 }, + rdmaSupport: "Excluded", + rdmaNetworkInterfaceCount: { min: 2, max: 4 }, + acceleratorSupport: "Excluded", + acceleratorManufacturers: ["AMD"], + acceleratorTypes: ["GPU"], + acceleratorCount: { min: 2, max: 4 }, + vmCategories: ["GeneralPurpose"], + architectureTypes: ["ARM64"], + cpuManufacturers: ["Intel"], + burstableSupport: "Excluded", + excludedVMSizes: ["Standard_A1"], + }, + additionalLocationsProfile: { + locationProfiles: [ + { + location: "v", + virtualMachineProfileOverride: { + osProfile: { + computerNamePrefix: "tec", + adminUsername: "xdgnnqymtamdyqxy", + adminPassword: "", + customData: "whcielwnerogvbxnbia", + windowsConfiguration: { + provisionVMAgent: true, + enableAutomaticUpdates: true, + timeZone: "ktf", + additionalUnattendContent: [ + { + passName: "OobeSystem", + componentName: "Microsoft-Windows-Shell-Setup", + settingName: "AutoLogon", + content: "xcigofrcurxdwx", + }, + ], + patchSettings: { + patchMode: "Manual", + enableHotpatching: true, + assessmentMode: "ImageDefault", + automaticByPlatformSettings: { + rebootSetting: "Unknown", + bypassPlatformSafetyChecksOnUserSchedule: true, + }, + }, + winRM: { + listeners: [ + { + protocol: "Http", + certificateUrl: "https://microsoft.com/apzd", + }, + ], + }, + enableVMAgentPlatformUpdates: true, + }, + linuxConfiguration: { + disablePasswordAuthentication: true, + ssh: { + publicKeys: [ + { + path: "ebeglujkldnntlpmazrg", + keyData: "vmgnwtwjcodavmu", + }, + ], + }, + provisionVMAgent: true, + patchSettings: { + patchMode: "ImageDefault", + assessmentMode: "ImageDefault", + automaticByPlatformSettings: { + rebootSetting: "Unknown", + bypassPlatformSafetyChecksOnUserSchedule: true, + }, + }, + enableVMAgentPlatformUpdates: true, + }, + secrets: [ + { + sourceVault: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", + }, + vaultCertificates: [ + { + certificateUrl: "https://microsoft.com/a", + certificateStore: "yycyfwpymjtwzza", + }, + ], + }, + ], + allowExtensionOperations: true, + requireGuestProvisionSignal: true, + }, + storageProfile: { + imageReference: { + publisher: "mqxgwbiyjzmxavhbkd", + offer: "isxgumkarlkomp", + sku: "eojmppqcrnpmxirtp", + version: "wvpcqefgtmqdgltiuz", + sharedGalleryImageId: "kmkgihoxwlawuuhcinfirktdwkmx", + communityGalleryImageId: "vlqe", + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}/versions/{versionName}", + }, + osDisk: { + name: "dt", + caching: "None", + writeAcceleratorEnabled: true, + createOption: "FromImage", + diffDiskSettings: { option: "Local", placement: "CacheDisk" }, + diskSizeGB: 9, + osType: "Windows", + image: { uri: "https://microsoft.com/a" }, + vhdContainers: ["kdagj"], + managedDisk: { + storageAccountType: "Standard_LRS", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + securityProfile: { + securityEncryptionType: "VMGuestStateOnly", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + }, + }, + deleteOption: "Delete", + }, + dataDisks: [ + { + name: "mhljivkyryuomrapmmxx", + lun: 6, + caching: "None", + writeAcceleratorEnabled: true, + createOption: "FromImage", + diskSizeGB: 9, + managedDisk: { + storageAccountType: "Standard_LRS", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + securityProfile: { + securityEncryptionType: "VMGuestStateOnly", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + }, + }, + diskIopsReadWrite: 24, + diskMBpsReadWrite: 4, + deleteOption: "Delete", + }, + ], + diskControllerType: "SCSI", + }, + networkProfile: { + healthProbe: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}", + }, + networkInterfaceConfigurations: [ + { + name: "gpunpcdsdphgspvgwwbnk", + properties: { + primary: true, + enableAcceleratedNetworking: true, + disableTcpStateTracking: true, + enableFpga: true, + networkSecurityGroup: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}", + }, + dnsSettings: { dnsServers: ["sjpmlu"] }, + ipConfigurations: [ + { + name: "fweiphgkyhbcsbfjmxzczkpg", + properties: { + subnet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}", + }, + primary: true, + publicIPAddressConfiguration: { + name: "dvnoamqjyshquvtmf", + properties: { + idleTimeoutInMinutes: 1, + dnsSettings: { + domainNameLabel: "ayofnb", + domainNameLabelScope: "TenantReuse", + }, + ipTags: [ + { + ipTagType: "zqpznczmc", + tag: "ugnfzikniqjisffrbvryavenhmtd", + }, + ], + publicIPPrefix: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}", + }, + publicIPAddressVersion: "IPv4", + deleteOption: "Delete", + }, + sku: { name: "Basic", tier: "Regional" }, + }, + privateIPAddressVersion: "IPv4", + applicationGatewayBackendAddressPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/backendAddressPools/{backendAddressPoolName}", + }, + ], + applicationSecurityGroups: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationSecurityGroups/{applicationSecurityGroupName}", + }, + ], + loadBalancerBackendAddressPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/backendAddressPools/{backendAddressPoolName}", + }, + ], + loadBalancerInboundNatPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/inboundNatPools/{inboundNatPoolName}", + }, + ], + }, + }, + ], + enableIPForwarding: true, + deleteOption: "Delete", + auxiliaryMode: "None", + auxiliarySku: "None", + }, + }, + ], + networkApiVersion: "2020-11-01", + }, + securityProfile: { + uefiSettings: { secureBootEnabled: true, vTpmEnabled: true }, + encryptionAtHost: true, + securityType: "TrustedLaunch", + encryptionIdentity: { + userAssignedIdentityResourceId: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{userAssignedIdentityName}", + }, + proxyAgentSettings: { + enabled: true, + mode: "Audit", + keyIncarnationId: 6, + }, + }, + diagnosticsProfile: { + bootDiagnostics: { + enabled: true, + storageUri: "https://microsoft.com/a", + }, + }, + extensionProfile: { + extensions: [ + { + name: "oredyuufsd", + properties: { + forceUpdateTag: "muglieujh", + publisher: "ccbiyfuveemaaopgxbjpm", + type: "yorumzkbfpxnrdwgczwwaeaxmda", + typeHandlerVersion: "nlnqbmgzwubbc", + autoUpgradeMinorVersion: true, + enableAutomaticUpgrade: true, + settings: {}, + protectedSettings: {}, + provisionAfterExtensions: ["xuefrutmgzsxrpjjayvy"], + suppressFailures: true, + protectedSettingsFromKeyVault: { + secretUrl: "https://microsoft.com/a", + sourceVault: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", + }, + }, + }, + }, + ], + extensionsTimeBudget: "trluxrynunvdnukztblhbnsubr", + }, + licenseType: "ginsqshzwimjteiyfxhnjxfrcaat", + scheduledEventsProfile: { + terminateNotificationProfile: { + notBeforeTimeout: "plbazenobaeueixatewbey", + enable: true, + }, + osImageNotificationProfile: { + notBeforeTimeout: "ednjvcedpjmczw", + enable: true, + }, + }, + userData: "zekdr", + capacityReservation: { + capacityReservationGroup: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}", + }, + }, + applicationProfile: { + galleryApplications: [ + { + tags: "eomzidad", + order: 22, + packageReferenceId: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{applicationName}/versions/{versionName}", + configurationReference: "zdqfcpvt", + treatFailureAsDeploymentFailure: true, + enableAutomaticUpgrade: true, + }, + ], + }, + hardwareProfile: { + vmSizeProperties: { vCPUsAvailable: 8, vCPUsPerCore: 17 }, + }, + serviceArtifactReference: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactsName}/vmArtifactsProfiles/{vmArtifactsProfileName}", + }, + securityPostureReference: { + id: "/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest", + excludeExtensions: ["ragwgzswxzzz"], + isOverridable: true, + }, + }, + }, + ], + }, + mode: "Managed", + capacityType: "VM", + zoneAllocationPolicy: { distributionStrategy: "BestEffortSingleZone" }, + }, + plan: { + name: "jwgrcrnrtfoxn", + publisher: "iozjbiqqckqm", + product: "cgopbyvdyqikahwyxfpzwaqk", + promotionCode: "naglezezplcaruqogtxnuizslqnnbr", + version: "wa", + }, + }); + console.log(result); +} + +async function main() { + await fleetsUpdate(); +} + +main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v1/javascript/operationsListSample.js b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/operationsListSample.js similarity index 82% rename from sdk/computefleet/arm-computefleet/samples/v1/javascript/operationsListSample.js rename to sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/operationsListSample.js index f1beeb87f55b..0ae22a7ea655 100644 --- a/sdk/computefleet/arm-computefleet/samples/v1/javascript/operationsListSample.js +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/operationsListSample.js @@ -8,14 +8,14 @@ const { DefaultAzureCredential } = require("@azure/identity"); * This sample demonstrates how to list the operations for the provider * * @summary list the operations for the provider - * x-ms-original-file: 2024-11-01/Operations_List.json + * x-ms-original-file: 2025-07-01-preview/Operations_List.json */ async function operationsList() { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-00000000000"; const client = new AzureFleetClient(credential, subscriptionId); const resArray = new Array(); - for await (let item of client.operations.list()) { + for await (const item of client.operations.list()) { resArray.push(item); } @@ -23,7 +23,7 @@ async function operationsList() { } async function main() { - operationsList(); + await operationsList(); } main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v1/javascript/package.json b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/package.json similarity index 82% rename from sdk/computefleet/arm-computefleet/samples/v1/javascript/package.json rename to sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/package.json index 37c9c219af1d..1d2962f42294 100644 --- a/sdk/computefleet/arm-computefleet/samples/v1/javascript/package.json +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/package.json @@ -1,8 +1,8 @@ { - "name": "@azure-samples/arm-computefleet-js", + "name": "@azure-samples/arm-computefleet-js-beta", "private": true, "version": "1.0.0", - "description": "@azure/arm-computefleet client library samples for JavaScript", + "description": "@azure/arm-computefleet client library samples for JavaScript (Beta)", "engines": { "node": ">=20.0.0" }, @@ -26,8 +26,8 @@ }, "homepage": "https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/computefleet/arm-computefleet", "dependencies": { - "@azure/arm-computefleet": "latest", + "@azure/arm-computefleet": "next", "dotenv": "latest", - "@azure/identity": "^4.2.1" + "@azure/identity": "^4.9.0" } } diff --git a/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/sample.env b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/sample.env new file mode 100644 index 000000000000..508439fc7d62 --- /dev/null +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/javascript/sample.env @@ -0,0 +1 @@ +# Feel free to add your own environment variables. \ No newline at end of file diff --git a/sdk/computefleet/arm-computefleet/samples/v1/typescript/README.md b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/README.md similarity index 63% rename from sdk/computefleet/arm-computefleet/samples/v1/typescript/README.md rename to sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/README.md index ca73d98c7040..be55a191a96c 100644 --- a/sdk/computefleet/arm-computefleet/samples/v1/typescript/README.md +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/README.md @@ -1,17 +1,19 @@ -# @azure/arm-computefleet client library samples for TypeScript +# @azure/arm-computefleet client library samples for TypeScript (Beta) These sample programs show how to use the TypeScript client libraries for @azure/arm-computefleet in some common scenarios. -| **File Name** | **Description** | -| ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -| [fleetsCreateOrUpdateSample.ts][fleetscreateorupdatesample] | create a Fleet x-ms-original-file: 2024-11-01/Fleets_CreateOrUpdate.json | -| [fleetsDeleteSample.ts][fleetsdeletesample] | delete a Fleet x-ms-original-file: 2024-11-01/Fleets_Delete.json | -| [fleetsGetSample.ts][fleetsgetsample] | get a Fleet x-ms-original-file: 2024-11-01/Fleets_Get.json | -| [fleetsListByResourceGroupSample.ts][fleetslistbyresourcegroupsample] | list Fleet resources by resource group x-ms-original-file: 2024-11-01/Fleets_ListByResourceGroup.json | -| [fleetsListBySubscriptionSample.ts][fleetslistbysubscriptionsample] | list Fleet resources by subscription ID x-ms-original-file: 2024-11-01/Fleets_ListBySubscription.json | -| [fleetsListVirtualMachineScaleSetsSample.ts][fleetslistvirtualmachinescalesetssample] | list VirtualMachineScaleSet resources by Fleet x-ms-original-file: 2024-11-01/Fleets_ListVirtualMachineScaleSets.json | -| [fleetsUpdateSample.ts][fleetsupdatesample] | update a Fleet x-ms-original-file: 2024-11-01/Fleets_Update.json | -| [operationsListSample.ts][operationslistsample] | list the operations for the provider x-ms-original-file: 2024-11-01/Operations_List.json | +| **File Name** | **Description** | +| ------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| [fleetsCancelSample.ts][fleetscancelsample] | cancels an instance Fleet creation that is in progress. x-ms-original-file: 2025-07-01-preview/Fleets_Cancel.json | +| [fleetsCreateOrUpdateSample.ts][fleetscreateorupdatesample] | create a Fleet x-ms-original-file: 2025-07-01-preview/Fleets_CreateOrUpdate.json | +| [fleetsDeleteSample.ts][fleetsdeletesample] | delete a Fleet x-ms-original-file: 2025-07-01-preview/Fleets_Delete.json | +| [fleetsGetSample.ts][fleetsgetsample] | get a Fleet x-ms-original-file: 2025-07-01-preview/Fleets_Get.json | +| [fleetsListByResourceGroupSample.ts][fleetslistbyresourcegroupsample] | list Fleet resources by resource group x-ms-original-file: 2025-07-01-preview/Fleets_ListByResourceGroup.json | +| [fleetsListBySubscriptionSample.ts][fleetslistbysubscriptionsample] | list Fleet resources by subscription ID x-ms-original-file: 2025-07-01-preview/Fleets_ListBySubscription.json | +| [fleetsListVirtualMachineScaleSetsSample.ts][fleetslistvirtualmachinescalesetssample] | list VirtualMachineScaleSet resources by Fleet x-ms-original-file: 2025-07-01-preview/Fleets_ListVirtualMachineScaleSets.json | +| [fleetsListVirtualMachinesSample.ts][fleetslistvirtualmachinessample] | list VirtualMachine resources of an instance Fleet. x-ms-original-file: 2025-07-01-preview/Fleets_ListVirtualMachines.json | +| [fleetsUpdateSample.ts][fleetsupdatesample] | update a Fleet x-ms-original-file: 2025-07-01-preview/Fleets_Update.json | +| [operationsListSample.ts][operationslistsample] | list the operations for the provider x-ms-original-file: 2025-07-01-preview/Operations_List.json | ## Prerequisites @@ -50,27 +52,29 @@ npm run build 4. Run whichever samples you like (note that some samples may require additional setup, see the table above): ```bash -node dist/fleetsCreateOrUpdateSample.js +node dist/fleetsCancelSample.js ``` Alternatively, run a single sample with the correct environment variables set (setting up the `.env` file is not required if you do this), for example (cross-platform): ```bash -npx dev-tool run vendored cross-env node dist/fleetsCreateOrUpdateSample.js +npx dev-tool run vendored cross-env node dist/fleetsCancelSample.js ``` ## Next Steps Take a look at our [API Documentation][apiref] for more information about the APIs that are available in the clients. -[fleetscreateorupdatesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsCreateOrUpdateSample.ts -[fleetsdeletesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsDeleteSample.ts -[fleetsgetsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsGetSample.ts -[fleetslistbyresourcegroupsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsListByResourceGroupSample.ts -[fleetslistbysubscriptionsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsListBySubscriptionSample.ts -[fleetslistvirtualmachinescalesetssample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsListVirtualMachineScaleSetsSample.ts -[fleetsupdatesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsUpdateSample.ts -[operationslistsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/operationsListSample.ts +[fleetscancelsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsCancelSample.ts +[fleetscreateorupdatesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsCreateOrUpdateSample.ts +[fleetsdeletesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsDeleteSample.ts +[fleetsgetsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsGetSample.ts +[fleetslistbyresourcegroupsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsListByResourceGroupSample.ts +[fleetslistbysubscriptionsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsListBySubscriptionSample.ts +[fleetslistvirtualmachinescalesetssample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsListVirtualMachineScaleSetsSample.ts +[fleetslistvirtualmachinessample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsListVirtualMachinesSample.ts +[fleetsupdatesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsUpdateSample.ts +[operationslistsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/operationsListSample.ts [apiref]: https://learn.microsoft.com/javascript/api/@azure/arm-computefleet?view=azure-node-preview [freesub]: https://azure.microsoft.com/free/ [package]: https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/computefleet/arm-computefleet/README.md diff --git a/sdk/computefleet/arm-computefleet/samples/v1/typescript/package.json b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/package.json similarity index 85% rename from sdk/computefleet/arm-computefleet/samples/v1/typescript/package.json rename to sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/package.json index dd596bce79f4..8a850c9e6152 100644 --- a/sdk/computefleet/arm-computefleet/samples/v1/typescript/package.json +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/package.json @@ -1,8 +1,8 @@ { - "name": "@azure-samples/arm-computefleet-ts", + "name": "@azure-samples/arm-computefleet-ts-beta", "private": true, "version": "1.0.0", - "description": "@azure/arm-computefleet client library samples for TypeScript", + "description": "@azure/arm-computefleet client library samples for TypeScript (Beta)", "engines": { "node": ">=20.0.0" }, @@ -30,9 +30,9 @@ }, "homepage": "https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/computefleet/arm-computefleet", "dependencies": { - "@azure/arm-computefleet": "latest", + "@azure/arm-computefleet": "next", "dotenv": "latest", - "@azure/identity": "^4.2.1" + "@azure/identity": "^4.9.0" }, "devDependencies": { "@types/node": "^20.0.0", diff --git a/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/sample.env b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/sample.env new file mode 100644 index 000000000000..508439fc7d62 --- /dev/null +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/sample.env @@ -0,0 +1 @@ +# Feel free to add your own environment variables. \ No newline at end of file diff --git a/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsCancelSample.ts b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsCancelSample.ts new file mode 100644 index 000000000000..3f0296202f29 --- /dev/null +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsCancelSample.ts @@ -0,0 +1,24 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { AzureFleetClient } from "@azure/arm-computefleet"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to cancels an instance Fleet creation that is in progress. + * + * @summary cancels an instance Fleet creation that is in progress. + * x-ms-original-file: 2025-07-01-preview/Fleets_Cancel.json + */ +async function fleetsCancel(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "3453D930-6DDF-4466-B3B3-E1AEE9BD448C"; + const client = new AzureFleetClient(credential, subscriptionId); + await client.fleets.cancel("rgazurefleet", "myFleet"); +} + +async function main(): Promise { + await fleetsCancel(); +} + +main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsCreateOrUpdateSample.ts b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsCreateOrUpdateSample.ts new file mode 100644 index 000000000000..ae4369080fe2 --- /dev/null +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsCreateOrUpdateSample.ts @@ -0,0 +1,698 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { AzureFleetClient } from "@azure/arm-computefleet"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to create a Fleet + * + * @summary create a Fleet + * x-ms-original-file: 2025-07-01-preview/Fleets_CreateOrUpdate.json + */ +async function fleetsCreateOrUpdate(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "1DC2F28C-A625-4B0E-9748-9885A3C9E9EB"; + const client = new AzureFleetClient(credential, subscriptionId); + const result = await client.fleets.createOrUpdate("rgazurefleet", "myFleet", { + properties: { + spotPriorityProfile: { + capacity: 20, + minCapacity: 10, + maxPricePerVM: 0.00865, + evictionPolicy: "Delete", + allocationStrategy: "PriceCapacityOptimized", + maintain: true, + }, + regularPriorityProfile: { + capacity: 20, + minCapacity: 10, + allocationStrategy: "Prioritized", + }, + vmSizesProfile: [ + { name: "Standard_D1_v2", rank: 0 }, + { name: "Standard_D2_v2", rank: 1 }, + ], + computeProfile: { + baseVirtualMachineProfile: { + osProfile: { + computerNamePrefix: "o", + adminUsername: "nrgzqciiaaxjrqldbmjbqkyhntp", + adminPassword: "adfbrdxpv", + customData: "xjjib", + windowsConfiguration: { + provisionVMAgent: true, + enableAutomaticUpdates: true, + timeZone: "hlyjiqcfksgrpjrct", + additionalUnattendContent: [ + { + passName: "OobeSystem", + componentName: "Microsoft-Windows-Shell-Setup", + settingName: "AutoLogon", + content: "bubmqbxjkj", + }, + ], + patchSettings: { + patchMode: "Manual", + enableHotpatching: true, + assessmentMode: "ImageDefault", + automaticByPlatformSettings: { + rebootSetting: "Unknown", + bypassPlatformSafetyChecksOnUserSchedule: true, + }, + }, + winRM: { + listeners: [ + { + protocol: "Https", + certificateUrl: "https://myVaultName.vault.azure.net/secrets/myCertName", + }, + ], + }, + enableVMAgentPlatformUpdates: true, + }, + linuxConfiguration: { + disablePasswordAuthentication: true, + ssh: { + publicKeys: [{ path: "kmqz", keyData: "kivgsubusvpprwqaqpjcmhsv" }], + }, + provisionVMAgent: true, + patchSettings: { + patchMode: "ImageDefault", + assessmentMode: "ImageDefault", + automaticByPlatformSettings: { + rebootSetting: "Unknown", + bypassPlatformSafetyChecksOnUserSchedule: true, + }, + }, + enableVMAgentPlatformUpdates: true, + }, + secrets: [ + { + sourceVault: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", + }, + vaultCertificates: [ + { + certificateUrl: "https://myVaultName.vault.azure.net/secrets/myCertName", + certificateStore: "nlxrwavpzhueffxsshlun", + }, + ], + }, + ], + allowExtensionOperations: true, + requireGuestProvisionSignal: true, + }, + storageProfile: { + imageReference: { + publisher: "mqxgwbiyjzmxavhbkd", + offer: "isxgumkarlkomp", + sku: "eojmppqcrnpmxirtp", + version: "wvpcqefgtmqdgltiuz", + sharedGalleryImageId: "kmkgihoxwlawuuhcinfirktdwkmx", + communityGalleryImageId: "vlqe", + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}/versions/{versionName}", + }, + osDisk: { + name: "wfttw", + caching: "None", + writeAcceleratorEnabled: true, + createOption: "FromImage", + diffDiskSettings: { option: "Local", placement: "CacheDisk" }, + diskSizeGB: 14, + osType: "Windows", + image: { + uri: "https://myStorageAccountName.blob.core.windows.net/myContainerName/myVhdName.vhd", + }, + vhdContainers: ["tkzcwddtinkfpnfklatw"], + managedDisk: { + storageAccountType: "Standard_LRS", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + securityProfile: { + securityEncryptionType: "VMGuestStateOnly", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + }, + }, + deleteOption: "Delete", + }, + dataDisks: [ + { + name: "eogiykmdmeikswxmigjws", + lun: 14, + caching: "None", + writeAcceleratorEnabled: true, + createOption: "FromImage", + diskSizeGB: 6, + managedDisk: { + storageAccountType: "Standard_LRS", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + securityProfile: { + securityEncryptionType: "VMGuestStateOnly", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + }, + }, + diskIopsReadWrite: 27, + diskMBpsReadWrite: 2, + deleteOption: "Delete", + }, + ], + diskControllerType: "uzb", + }, + networkProfile: { + healthProbe: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}", + }, + networkInterfaceConfigurations: [ + { + name: "i", + properties: { + primary: true, + enableAcceleratedNetworking: true, + disableTcpStateTracking: true, + enableFpga: true, + networkSecurityGroup: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}", + }, + dnsSettings: { dnsServers: ["nxmmfolhclsesu"] }, + ipConfigurations: [ + { + name: "oezqhkidfhyywlfzwuotilrpbqnjg", + properties: { + subnet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}", + }, + primary: true, + publicIPAddressConfiguration: { + name: "fvpqf", + properties: { + idleTimeoutInMinutes: 9, + dnsSettings: { + domainNameLabel: "ukrddzvmorpmfsczjwtbvp", + domainNameLabelScope: "TenantReuse", + }, + ipTags: [ + { + ipTagType: "sddgsoemnzgqizale", + tag: "wufmhrjsakbiaetyara", + }, + ], + publicIPPrefix: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}", + }, + publicIPAddressVersion: "IPv4", + deleteOption: "Delete", + }, + sku: { name: "Basic", tier: "Regional" }, + }, + privateIPAddressVersion: "IPv4", + applicationGatewayBackendAddressPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/backendAddressPools/{backendAddressPoolName}", + }, + ], + applicationSecurityGroups: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationSecurityGroups/{applicationSecurityGroupName}", + }, + ], + loadBalancerBackendAddressPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/backendAddressPools/{backendAddressPoolName}", + }, + ], + loadBalancerInboundNatPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/inboundNatPools/{inboundNatPoolName}", + }, + ], + }, + }, + ], + enableIPForwarding: true, + deleteOption: "Delete", + auxiliaryMode: "None", + auxiliarySku: "None", + }, + }, + ], + networkApiVersion: "2020-11-01", + }, + securityProfile: { + uefiSettings: { secureBootEnabled: true, vTpmEnabled: true }, + encryptionAtHost: true, + securityType: "TrustedLaunch", + encryptionIdentity: { + userAssignedIdentityResourceId: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{userAssignedIdentityName}", + }, + proxyAgentSettings: { + enabled: true, + mode: "Audit", + keyIncarnationId: 20, + }, + }, + diagnosticsProfile: { + bootDiagnostics: { + enabled: true, + storageUri: "http://myStorageAccountName.blob.core.windows.net", + }, + }, + extensionProfile: { + extensions: [ + { + name: "bndxuxx", + properties: { + forceUpdateTag: "yhgxw", + publisher: "kpxtirxjfprhs", + type: "pgjilctjjwaa", + typeHandlerVersion: "zevivcoilxmbwlrihhhibq", + autoUpgradeMinorVersion: true, + enableAutomaticUpgrade: true, + settings: {}, + protectedSettings: {}, + provisionAfterExtensions: ["nftzosroolbcwmpupujzqwqe"], + suppressFailures: true, + protectedSettingsFromKeyVault: { + secretUrl: "https://myvaultName.vault.azure.net/secrets/secret/mySecretName", + sourceVault: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", + }, + }, + }, + }, + ], + extensionsTimeBudget: "mbhjahtdygwgyszdwjtvlvtgchdwil", + }, + licenseType: "v", + scheduledEventsProfile: { + terminateNotificationProfile: { + notBeforeTimeout: "iljppmmw", + enable: true, + }, + osImageNotificationProfile: { + notBeforeTimeout: "olbpadmevekyczfokodtfprxti", + enable: true, + }, + }, + userData: "s", + capacityReservation: { + capacityReservationGroup: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}", + }, + }, + applicationProfile: { + galleryApplications: [ + { + tags: "eyrqjbib", + order: 5, + packageReferenceId: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{applicationName}/versions/{versionName}", + configurationReference: "ulztmiavpojpbpbddgnuuiimxcpau", + treatFailureAsDeploymentFailure: true, + enableAutomaticUpgrade: true, + }, + ], + }, + hardwareProfile: { + vmSizeProperties: { vCPUsAvailable: 16, vCPUsPerCore: 23 }, + }, + serviceArtifactReference: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactsName}/vmArtifactsProfiles/{vmArtifactsProfileName}", + }, + securityPostureReference: { + id: "/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest", + excludeExtensions: ["{securityPostureVMExtensionName}"], + isOverridable: true, + }, + }, + computeApiVersion: "2023-07-01", + platformFaultDomainCount: 1, + additionalVirtualMachineCapabilities: { + ultraSSDEnabled: true, + hibernationEnabled: true, + }, + }, + mode: "Instance", + capacityType: "VCpu", + zoneAllocationPolicy: { + distributionStrategy: "Prioritized", + zonePreferences: [ + { zone: "1", rank: 0 }, + { zone: "2", rank: 1 }, + ], + }, + vmAttributes: { + vCpuCount: { min: 2, max: 4 }, + memoryInGiB: { min: 2, max: 4 }, + memoryInGiBPerVCpu: { min: 2, max: 4 }, + localStorageSupport: "Excluded", + localStorageInGiB: { min: 2, max: 4 }, + localStorageDiskTypes: ["HDD"], + dataDiskCount: { min: 2, max: 4 }, + networkInterfaceCount: { min: 2, max: 4 }, + networkBandwidthInMbps: { min: 2, max: 4 }, + rdmaSupport: "Excluded", + rdmaNetworkInterfaceCount: { min: 2, max: 4 }, + acceleratorSupport: "Excluded", + acceleratorManufacturers: ["AMD"], + acceleratorTypes: ["GPU"], + acceleratorCount: { min: 2, max: 4 }, + vmCategories: ["GpuAccelerated"], + architectureTypes: ["ARM64"], + cpuManufacturers: ["Intel"], + burstableSupport: "Excluded", + excludedVMSizes: ["Standard_A1"], + }, + additionalLocationsProfile: { + locationProfiles: [ + { + location: "ekbzgzhs", + virtualMachineProfileOverride: { + osProfile: { + computerNamePrefix: "xoxwfnjjuqibzxldgxu", + adminUsername: "wwjyuhblwecni", + adminPassword: "", + customData: "gvyvbgcgutteiivwjn", + windowsConfiguration: { + provisionVMAgent: true, + enableAutomaticUpdates: true, + timeZone: "oqpoladmchkkugpxocrynztkok", + additionalUnattendContent: [ + { + passName: "OobeSystem", + componentName: "Microsoft-Windows-Shell-Setup", + settingName: "AutoLogon", + content: "ynkrgbreqtuxgftjgeuvozzypzx", + }, + ], + patchSettings: { + patchMode: "Manual", + enableHotpatching: true, + assessmentMode: "ImageDefault", + automaticByPlatformSettings: { + rebootSetting: "Unknown", + bypassPlatformSafetyChecksOnUserSchedule: true, + }, + }, + winRM: { + listeners: [ + { + protocol: "Http", + certificateUrl: "https://microsoft.com/a", + }, + ], + }, + enableVMAgentPlatformUpdates: true, + }, + linuxConfiguration: { + disablePasswordAuthentication: true, + ssh: { + publicKeys: [{ path: "bci", keyData: "meokrrrddgnyxyhg" }], + }, + provisionVMAgent: true, + patchSettings: { + patchMode: "ImageDefault", + assessmentMode: "ImageDefault", + automaticByPlatformSettings: { + rebootSetting: "Unknown", + bypassPlatformSafetyChecksOnUserSchedule: true, + }, + }, + enableVMAgentPlatformUpdates: true, + }, + secrets: [ + { + sourceVault: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", + }, + vaultCertificates: [ + { + certificateUrl: "https://microsoft.com/a", + certificateStore: "hdts", + }, + ], + }, + ], + allowExtensionOperations: true, + requireGuestProvisionSignal: true, + }, + storageProfile: { + imageReference: { + publisher: "mqxgwbiyjzmxavhbkd", + offer: "isxgumkarlkomp", + sku: "eojmppqcrnpmxirtp", + version: "wvpcqefgtmqdgltiuz", + sharedGalleryImageId: "kmkgihoxwlawuuhcinfirktdwkmx", + communityGalleryImageId: "vlqe", + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}/versions/{versionName}", + }, + osDisk: { + name: "xhwnqpqigoymwwetvhjuuhiu", + caching: "None", + writeAcceleratorEnabled: true, + createOption: "FromImage", + diffDiskSettings: { option: "Local", placement: "CacheDisk" }, + diskSizeGB: 21, + osType: "Windows", + image: { uri: "https://microsoft.com/a" }, + vhdContainers: ["mgyqnavpb"], + managedDisk: { + storageAccountType: "Standard_LRS", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + securityProfile: { + securityEncryptionType: "VMGuestStateOnly", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + }, + }, + deleteOption: "Delete", + }, + dataDisks: [ + { + name: "nqblcowgig", + lun: 14, + caching: "None", + writeAcceleratorEnabled: true, + createOption: "FromImage", + diskSizeGB: 11, + managedDisk: { + storageAccountType: "Standard_LRS", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + securityProfile: { + securityEncryptionType: "VMGuestStateOnly", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + }, + }, + diskIopsReadWrite: 5, + diskMBpsReadWrite: 4, + deleteOption: "Delete", + }, + ], + diskControllerType: "SCSI", + }, + networkProfile: { + healthProbe: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}", + }, + networkInterfaceConfigurations: [ + { + name: "uyemquurltujhbjkhm", + properties: { + primary: true, + enableAcceleratedNetworking: true, + disableTcpStateTracking: true, + enableFpga: true, + networkSecurityGroup: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}", + }, + dnsSettings: { dnsServers: ["ajcsckebabrus"] }, + ipConfigurations: [ + { + name: "xpwuwsvkuml", + properties: { + subnet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}", + }, + primary: true, + publicIPAddressConfiguration: { + name: "wbpdlbxflssopphq", + properties: { + idleTimeoutInMinutes: 9, + dnsSettings: { + domainNameLabel: "uwjtwqgwalsctypszcbnxo", + domainNameLabelScope: "TenantReuse", + }, + ipTags: [ + { + ipTagType: "hxkbmbisknggtfdqoaqagjhipdkd", + tag: "vzxhyyrzieaocbxyxieivj", + }, + ], + publicIPPrefix: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}", + }, + publicIPAddressVersion: "IPv4", + deleteOption: "Delete", + }, + sku: { name: "Basic", tier: "Regional" }, + }, + privateIPAddressVersion: "IPv4", + applicationGatewayBackendAddressPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/backendAddressPools/{backendAddressPoolName}", + }, + ], + applicationSecurityGroups: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationSecurityGroups/{applicationSecurityGroupName}", + }, + ], + loadBalancerBackendAddressPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/backendAddressPools/{backendAddressPoolName}", + }, + ], + loadBalancerInboundNatPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/inboundNatPools/{inboundNatPoolName}", + }, + ], + }, + }, + ], + enableIPForwarding: true, + deleteOption: "Delete", + auxiliaryMode: "None", + auxiliarySku: "None", + }, + }, + ], + networkApiVersion: "2020-11-01", + }, + securityProfile: { + uefiSettings: { secureBootEnabled: true, vTpmEnabled: true }, + encryptionAtHost: true, + securityType: "TrustedLaunch", + encryptionIdentity: { + userAssignedIdentityResourceId: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{userAssignedIdentityName}", + }, + proxyAgentSettings: { + enabled: true, + mode: "Audit", + keyIncarnationId: 22, + }, + }, + diagnosticsProfile: { + bootDiagnostics: { + enabled: true, + storageUri: "https://microsoft.com/a", + }, + }, + extensionProfile: { + extensions: [ + { + name: "dockglmmvl", + properties: { + forceUpdateTag: "wzyqlpszoiewqbhlnzckfshdtpwkbd", + publisher: "iikgjziralgrfsrxrlrdigqyfhuqg", + type: "xzhgosms", + typeHandlerVersion: "mfzdzdwucagkogmxoosyjpej", + autoUpgradeMinorVersion: true, + enableAutomaticUpgrade: true, + settings: {}, + protectedSettings: {}, + provisionAfterExtensions: ["rqrycujrpdodllirebkfg"], + suppressFailures: true, + protectedSettingsFromKeyVault: { + secretUrl: "https://microsoft.com/ahygahgb", + sourceVault: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", + }, + }, + }, + }, + ], + extensionsTimeBudget: "srxtwxrc", + }, + licenseType: "hilutelnuqxtpdznq", + scheduledEventsProfile: { + terminateNotificationProfile: { + notBeforeTimeout: "jgycfvgxpzvgsdylbcspkrxwhgxkyd", + enable: true, + }, + osImageNotificationProfile: { + notBeforeTimeout: "nbgfbvisxveyywfyjgcfb", + enable: true, + }, + }, + userData: "ezhyl", + capacityReservation: { + capacityReservationGroup: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}", + }, + }, + applicationProfile: { + galleryApplications: [ + { + tags: "fronuehbtzhxaoijmdmjzwaswgevh", + order: 19, + packageReferenceId: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{applicationName}/versions/{versionName}", + configurationReference: "gqxsvizquzglpsgqaundtyh", + treatFailureAsDeploymentFailure: true, + enableAutomaticUpgrade: true, + }, + ], + }, + hardwareProfile: { + vmSizeProperties: { vCPUsAvailable: 1, vCPUsPerCore: 4 }, + }, + serviceArtifactReference: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactsName}/vmArtifactsProfiles/{vmArtifactsProfileName}", + }, + securityPostureReference: { + id: "/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest", + excludeExtensions: ["zagiokiwvg"], + isOverridable: true, + }, + }, + }, + ], + }, + }, + zones: ["1", "2"], + identity: { type: "UserAssigned", userAssignedIdentities: {} }, + tags: {}, + location: "westus", + plan: { + name: "jwgrcrnrtfoxn", + publisher: "iozjbiqqckqm", + product: "cgopbyvdyqikahwyxfpzwaqk", + promotionCode: "naglezezplcaruqogtxnuizslqnnbr", + version: "wa", + }, + }); + console.log(result); +} + +async function main(): Promise { + await fleetsCreateOrUpdate(); +} + +main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsDeleteSample.ts b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsDeleteSample.ts similarity index 88% rename from sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsDeleteSample.ts rename to sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsDeleteSample.ts index 7ee6bbad9747..4f7b2b2cb570 100644 --- a/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsDeleteSample.ts +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsDeleteSample.ts @@ -8,7 +8,7 @@ import { DefaultAzureCredential } from "@azure/identity"; * This sample demonstrates how to delete a Fleet * * @summary delete a Fleet - * x-ms-original-file: 2024-11-01/Fleets_Delete.json + * x-ms-original-file: 2025-07-01-preview/Fleets_Delete.json */ async function fleetsDelete(): Promise { const credential = new DefaultAzureCredential(); @@ -18,7 +18,7 @@ async function fleetsDelete(): Promise { } async function main(): Promise { - fleetsDelete(); + await fleetsDelete(); } main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsGetSample.ts b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsGetSample.ts similarity index 80% rename from sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsGetSample.ts rename to sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsGetSample.ts index a5229ff75689..e653f66460df 100644 --- a/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsGetSample.ts +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsGetSample.ts @@ -8,18 +8,18 @@ import { DefaultAzureCredential } from "@azure/identity"; * This sample demonstrates how to get a Fleet * * @summary get a Fleet - * x-ms-original-file: 2024-11-01/Fleets_Get.json + * x-ms-original-file: 2025-07-01-preview/Fleets_Get.json */ async function fleetsGet(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "1DC2F28C-A625-4B0E-9748-9885A3C9E9EB"; const client = new AzureFleetClient(credential, subscriptionId); - const result = await client.fleets.get("rgazurefleet", "testFleet"); + const result = await client.fleets.get("rgazurefleet", "myFleet"); console.log(result); } async function main(): Promise { - fleetsGet(); + await fleetsGet(); } main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsListByResourceGroupSample.ts b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsListByResourceGroupSample.ts similarity index 79% rename from sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsListByResourceGroupSample.ts rename to sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsListByResourceGroupSample.ts index ad5c7280c270..4baee3a8b7a0 100644 --- a/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsListByResourceGroupSample.ts +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsListByResourceGroupSample.ts @@ -8,14 +8,14 @@ import { DefaultAzureCredential } from "@azure/identity"; * This sample demonstrates how to list Fleet resources by resource group * * @summary list Fleet resources by resource group - * x-ms-original-file: 2024-11-01/Fleets_ListByResourceGroup.json + * x-ms-original-file: 2025-07-01-preview/Fleets_ListByResourceGroup.json */ async function fleetsListByResourceGroup(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "1DC2F28C-A625-4B0E-9748-9885A3C9E9EB"; const client = new AzureFleetClient(credential, subscriptionId); const resArray = new Array(); - for await (let item of client.fleets.listByResourceGroup("rgazurefleet")) { + for await (const item of client.fleets.listByResourceGroup("rgazurefleet")) { resArray.push(item); } @@ -23,7 +23,7 @@ async function fleetsListByResourceGroup(): Promise { } async function main(): Promise { - fleetsListByResourceGroup(); + await fleetsListByResourceGroup(); } main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsListBySubscriptionSample.ts b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsListBySubscriptionSample.ts similarity index 80% rename from sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsListBySubscriptionSample.ts rename to sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsListBySubscriptionSample.ts index 391fbf8ffc68..7fc9d255d255 100644 --- a/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsListBySubscriptionSample.ts +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsListBySubscriptionSample.ts @@ -8,14 +8,14 @@ import { DefaultAzureCredential } from "@azure/identity"; * This sample demonstrates how to list Fleet resources by subscription ID * * @summary list Fleet resources by subscription ID - * x-ms-original-file: 2024-11-01/Fleets_ListBySubscription.json + * x-ms-original-file: 2025-07-01-preview/Fleets_ListBySubscription.json */ async function fleetsListBySubscription(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "1DC2F28C-A625-4B0E-9748-9885A3C9E9EB"; const client = new AzureFleetClient(credential, subscriptionId); const resArray = new Array(); - for await (let item of client.fleets.listBySubscription()) { + for await (const item of client.fleets.listBySubscription()) { resArray.push(item); } @@ -23,7 +23,7 @@ async function fleetsListBySubscription(): Promise { } async function main(): Promise { - fleetsListBySubscription(); + await fleetsListBySubscription(); } main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsListVirtualMachineScaleSetsSample.ts b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsListVirtualMachineScaleSetsSample.ts similarity index 77% rename from sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsListVirtualMachineScaleSetsSample.ts rename to sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsListVirtualMachineScaleSetsSample.ts index f681e9125ed2..5a23fd78f236 100644 --- a/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/fleetsListVirtualMachineScaleSetsSample.ts +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsListVirtualMachineScaleSetsSample.ts @@ -8,17 +8,14 @@ import { DefaultAzureCredential } from "@azure/identity"; * This sample demonstrates how to list VirtualMachineScaleSet resources by Fleet * * @summary list VirtualMachineScaleSet resources by Fleet - * x-ms-original-file: 2024-11-01/Fleets_ListVirtualMachineScaleSets.json + * x-ms-original-file: 2025-07-01-preview/Fleets_ListVirtualMachineScaleSets.json */ async function fleetsListVirtualMachineScaleSets(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "1DC2F28C-A625-4B0E-9748-9885A3C9E9EB"; const client = new AzureFleetClient(credential, subscriptionId); const resArray = new Array(); - for await (let item of client.fleets.listVirtualMachineScaleSets( - "rgazurefleet", - "myFleet", - )) { + for await (const item of client.fleets.listVirtualMachineScaleSets("rgazurefleet", "myFleet")) { resArray.push(item); } @@ -26,7 +23,7 @@ async function fleetsListVirtualMachineScaleSets(): Promise { } async function main(): Promise { - fleetsListVirtualMachineScaleSets(); + await fleetsListVirtualMachineScaleSets(); } main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsListVirtualMachinesSample.ts b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsListVirtualMachinesSample.ts new file mode 100644 index 000000000000..5d4d1aa6dc4b --- /dev/null +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsListVirtualMachinesSample.ts @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { AzureFleetClient } from "@azure/arm-computefleet"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to list VirtualMachine resources of an instance Fleet. + * + * @summary list VirtualMachine resources of an instance Fleet. + * x-ms-original-file: 2025-07-01-preview/Fleets_ListVirtualMachines.json + */ +async function fleetsListVirtualMachinesMaximumSet(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "3453D930-6DDF-4466-B3B3-E1AEE9BD448C"; + const client = new AzureFleetClient(credential, subscriptionId); + const resArray = new Array(); + for await (const item of client.fleets.listVirtualMachines("rgazurefleet", "myFleet", { + filter: "xzcepyottghqa", + skiptoken: "hydepbmwuypaprlphcdecsz", + })) { + resArray.push(item); + } + + console.log(resArray); +} + +async function main(): Promise { + await fleetsListVirtualMachinesMaximumSet(); +} + +main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsUpdateSample.ts b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsUpdateSample.ts new file mode 100644 index 000000000000..31b3cf6fb333 --- /dev/null +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/fleetsUpdateSample.ts @@ -0,0 +1,695 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { AzureFleetClient } from "@azure/arm-computefleet"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to update a Fleet + * + * @summary update a Fleet + * x-ms-original-file: 2025-07-01-preview/Fleets_Update.json + */ +async function fleetsUpdate(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "1DC2F28C-A625-4B0E-9748-9885A3C9E9EB"; + const client = new AzureFleetClient(credential, subscriptionId); + const result = await client.fleets.update("rgazurefleet", "myFleet", { + identity: { type: "UserAssigned", userAssignedIdentities: {} }, + tags: {}, + properties: { + spotPriorityProfile: { + capacity: 20, + minCapacity: 10, + maxPricePerVM: 0.00865, + evictionPolicy: "Delete", + allocationStrategy: "PriceCapacityOptimized", + maintain: true, + }, + regularPriorityProfile: { + capacity: 20, + minCapacity: 10, + allocationStrategy: "Prioritized", + }, + vmSizesProfile: [ + { name: "Standard_D1_v2", rank: 0 }, + { name: "Standard_D2_v2", rank: 1 }, + ], + computeProfile: { + baseVirtualMachineProfile: { + osProfile: { + computerNamePrefix: "o", + adminUsername: "nrgzqciiaaxjrqldbmjbqkyhntp", + adminPassword: "adfbrdxpv", + customData: "xjjib", + windowsConfiguration: { + provisionVMAgent: true, + enableAutomaticUpdates: true, + timeZone: "hlyjiqcfksgrpjrct", + additionalUnattendContent: [ + { + passName: "OobeSystem", + componentName: "Microsoft-Windows-Shell-Setup", + settingName: "AutoLogon", + content: "bubmqbxjkj", + }, + ], + patchSettings: { + patchMode: "Manual", + enableHotpatching: true, + assessmentMode: "ImageDefault", + automaticByPlatformSettings: { + rebootSetting: "Unknown", + bypassPlatformSafetyChecksOnUserSchedule: true, + }, + }, + winRM: { + listeners: [ + { + protocol: "Http", + certificateUrl: "https://myVaultName.vault.azure.net/secrets/myCertName", + }, + ], + }, + enableVMAgentPlatformUpdates: true, + }, + linuxConfiguration: { + disablePasswordAuthentication: true, + ssh: { + publicKeys: [{ path: "kmqz", keyData: "kivgsubusvpprwqaqpjcmhsv" }], + }, + provisionVMAgent: true, + patchSettings: { + patchMode: "ImageDefault", + assessmentMode: "ImageDefault", + automaticByPlatformSettings: { + rebootSetting: "Unknown", + bypassPlatformSafetyChecksOnUserSchedule: true, + }, + }, + enableVMAgentPlatformUpdates: true, + }, + secrets: [ + { + sourceVault: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", + }, + vaultCertificates: [ + { + certificateUrl: "https://myVaultName.vault.azure.net/secrets/myCertName", + certificateStore: "nlxrwavpzhueffxsshlun", + }, + ], + }, + ], + allowExtensionOperations: true, + requireGuestProvisionSignal: true, + }, + storageProfile: { + imageReference: { + publisher: "mqxgwbiyjzmxavhbkd", + offer: "isxgumkarlkomp", + sku: "eojmppqcrnpmxirtp", + version: "wvpcqefgtmqdgltiuz", + sharedGalleryImageId: "kmkgihoxwlawuuhcinfirktdwkmx", + communityGalleryImageId: "vlqe", + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}/versions/{versionName}", + }, + osDisk: { + name: "wfttw", + caching: "None", + writeAcceleratorEnabled: true, + createOption: "FromImage", + diffDiskSettings: { option: "Local", placement: "CacheDisk" }, + diskSizeGB: 14, + osType: "Windows", + image: { + uri: "https://myStorageAccountName.blob.core.windows.net/myContainerName/myVhdName.vhd", + }, + vhdContainers: ["tkzcwddtinkfpnfklatw"], + managedDisk: { + storageAccountType: "Standard_LRS", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + securityProfile: { + securityEncryptionType: "VMGuestStateOnly", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + }, + }, + deleteOption: "Delete", + }, + dataDisks: [ + { + name: "eogiykmdmeikswxmigjws", + lun: 14, + caching: "None", + writeAcceleratorEnabled: true, + createOption: "FromImage", + diskSizeGB: 6, + managedDisk: { + storageAccountType: "Standard_LRS", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + securityProfile: { + securityEncryptionType: "VMGuestStateOnly", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + }, + }, + diskIopsReadWrite: 27, + diskMBpsReadWrite: 2, + deleteOption: "Delete", + }, + ], + diskControllerType: "uzb", + }, + networkProfile: { + healthProbe: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}", + }, + networkInterfaceConfigurations: [ + { + name: "i", + properties: { + primary: true, + enableAcceleratedNetworking: true, + disableTcpStateTracking: true, + enableFpga: true, + networkSecurityGroup: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}", + }, + dnsSettings: { dnsServers: ["nxmmfolhclsesu"] }, + ipConfigurations: [ + { + name: "oezqhkidfhyywlfzwuotilrpbqnjg", + properties: { + subnet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}", + }, + primary: true, + publicIPAddressConfiguration: { + name: "fvpqf", + properties: { + idleTimeoutInMinutes: 9, + dnsSettings: { + domainNameLabel: "ukrddzvmorpmfsczjwtbvp", + domainNameLabelScope: "TenantReuse", + }, + ipTags: [ + { + ipTagType: "sddgsoemnzgqizale", + tag: "wufmhrjsakbiaetyara", + }, + ], + publicIPPrefix: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}", + }, + publicIPAddressVersion: "IPv4", + deleteOption: "Delete", + }, + sku: { name: "Basic", tier: "Regional" }, + }, + privateIPAddressVersion: "IPv4", + applicationGatewayBackendAddressPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/backendAddressPools/{backendAddressPoolName}", + }, + ], + applicationSecurityGroups: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationSecurityGroups/{applicationSecurityGroupName}", + }, + ], + loadBalancerBackendAddressPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/backendAddressPools/{backendAddressPoolName}", + }, + ], + loadBalancerInboundNatPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/inboundNatPools/{inboundNatPoolName}", + }, + ], + }, + }, + ], + enableIPForwarding: true, + deleteOption: "Delete", + auxiliaryMode: "None", + auxiliarySku: "None", + }, + }, + ], + networkApiVersion: "2020-11-01", + }, + securityProfile: { + uefiSettings: { secureBootEnabled: true, vTpmEnabled: true }, + encryptionAtHost: true, + securityType: "TrustedLaunch", + encryptionIdentity: { + userAssignedIdentityResourceId: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{userAssignedIdentityName}", + }, + proxyAgentSettings: { + enabled: true, + mode: "Audit", + keyIncarnationId: 20, + }, + }, + diagnosticsProfile: { + bootDiagnostics: { + enabled: true, + storageUri: "http://myStorageAccountName.blob.core.windows.net", + }, + }, + extensionProfile: { + extensions: [ + { + name: "bndxuxx", + properties: { + forceUpdateTag: "yhgxw", + publisher: "kpxtirxjfprhs", + type: "pgjilctjjwaa", + typeHandlerVersion: "zevivcoilxmbwlrihhhibq", + autoUpgradeMinorVersion: true, + enableAutomaticUpgrade: true, + settings: {}, + protectedSettings: {}, + provisionAfterExtensions: ["nftzosroolbcwmpupujzqwqe"], + suppressFailures: true, + protectedSettingsFromKeyVault: { + secretUrl: "https://myVaultName.vault.azure.net/secrets/secret/mySecretName", + sourceVault: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", + }, + }, + }, + }, + ], + extensionsTimeBudget: "mbhjahtdygwgyszdwjtvlvtgchdwil", + }, + licenseType: "v", + scheduledEventsProfile: { + terminateNotificationProfile: { + notBeforeTimeout: "iljppmmw", + enable: true, + }, + osImageNotificationProfile: { + notBeforeTimeout: "olbpadmevekyczfokodtfprxti", + enable: true, + }, + }, + userData: "s", + capacityReservation: { + capacityReservationGroup: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}", + }, + }, + applicationProfile: { + galleryApplications: [ + { + tags: "eyrqjbib", + order: 5, + packageReferenceId: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{applicationName}/versions/{versionName}", + configurationReference: "ulztmiavpojpbpbddgnuuiimxcpau", + treatFailureAsDeploymentFailure: true, + enableAutomaticUpgrade: true, + }, + ], + }, + hardwareProfile: { + vmSizeProperties: { vCPUsAvailable: 16, vCPUsPerCore: 23 }, + }, + serviceArtifactReference: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactsName}/vmArtifactsProfiles/{vmArtifactsProfileName}", + }, + securityPostureReference: { + id: "/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest", + excludeExtensions: ["{securityPostureVMExtensionName}"], + isOverridable: true, + }, + }, + computeApiVersion: "2023-07-01", + platformFaultDomainCount: 1, + additionalVirtualMachineCapabilities: { + ultraSSDEnabled: true, + hibernationEnabled: true, + }, + }, + vmAttributes: { + vCpuCount: { min: 2, max: 4 }, + memoryInGiB: { min: 2, max: 4 }, + memoryInGiBPerVCpu: { min: 2, max: 4 }, + localStorageSupport: "Excluded", + localStorageInGiB: { min: 2, max: 4 }, + localStorageDiskTypes: ["HDD"], + dataDiskCount: { min: 2, max: 4 }, + networkInterfaceCount: { min: 2, max: 4 }, + networkBandwidthInMbps: { min: 2, max: 4 }, + rdmaSupport: "Excluded", + rdmaNetworkInterfaceCount: { min: 2, max: 4 }, + acceleratorSupport: "Excluded", + acceleratorManufacturers: ["AMD"], + acceleratorTypes: ["GPU"], + acceleratorCount: { min: 2, max: 4 }, + vmCategories: ["GeneralPurpose"], + architectureTypes: ["ARM64"], + cpuManufacturers: ["Intel"], + burstableSupport: "Excluded", + excludedVMSizes: ["Standard_A1"], + }, + additionalLocationsProfile: { + locationProfiles: [ + { + location: "v", + virtualMachineProfileOverride: { + osProfile: { + computerNamePrefix: "tec", + adminUsername: "xdgnnqymtamdyqxy", + adminPassword: "", + customData: "whcielwnerogvbxnbia", + windowsConfiguration: { + provisionVMAgent: true, + enableAutomaticUpdates: true, + timeZone: "ktf", + additionalUnattendContent: [ + { + passName: "OobeSystem", + componentName: "Microsoft-Windows-Shell-Setup", + settingName: "AutoLogon", + content: "xcigofrcurxdwx", + }, + ], + patchSettings: { + patchMode: "Manual", + enableHotpatching: true, + assessmentMode: "ImageDefault", + automaticByPlatformSettings: { + rebootSetting: "Unknown", + bypassPlatformSafetyChecksOnUserSchedule: true, + }, + }, + winRM: { + listeners: [ + { + protocol: "Http", + certificateUrl: "https://microsoft.com/apzd", + }, + ], + }, + enableVMAgentPlatformUpdates: true, + }, + linuxConfiguration: { + disablePasswordAuthentication: true, + ssh: { + publicKeys: [ + { + path: "ebeglujkldnntlpmazrg", + keyData: "vmgnwtwjcodavmu", + }, + ], + }, + provisionVMAgent: true, + patchSettings: { + patchMode: "ImageDefault", + assessmentMode: "ImageDefault", + automaticByPlatformSettings: { + rebootSetting: "Unknown", + bypassPlatformSafetyChecksOnUserSchedule: true, + }, + }, + enableVMAgentPlatformUpdates: true, + }, + secrets: [ + { + sourceVault: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", + }, + vaultCertificates: [ + { + certificateUrl: "https://microsoft.com/a", + certificateStore: "yycyfwpymjtwzza", + }, + ], + }, + ], + allowExtensionOperations: true, + requireGuestProvisionSignal: true, + }, + storageProfile: { + imageReference: { + publisher: "mqxgwbiyjzmxavhbkd", + offer: "isxgumkarlkomp", + sku: "eojmppqcrnpmxirtp", + version: "wvpcqefgtmqdgltiuz", + sharedGalleryImageId: "kmkgihoxwlawuuhcinfirktdwkmx", + communityGalleryImageId: "vlqe", + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}/versions/{versionName}", + }, + osDisk: { + name: "dt", + caching: "None", + writeAcceleratorEnabled: true, + createOption: "FromImage", + diffDiskSettings: { option: "Local", placement: "CacheDisk" }, + diskSizeGB: 9, + osType: "Windows", + image: { uri: "https://microsoft.com/a" }, + vhdContainers: ["kdagj"], + managedDisk: { + storageAccountType: "Standard_LRS", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + securityProfile: { + securityEncryptionType: "VMGuestStateOnly", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + }, + }, + deleteOption: "Delete", + }, + dataDisks: [ + { + name: "mhljivkyryuomrapmmxx", + lun: 6, + caching: "None", + writeAcceleratorEnabled: true, + createOption: "FromImage", + diskSizeGB: 9, + managedDisk: { + storageAccountType: "Standard_LRS", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + securityProfile: { + securityEncryptionType: "VMGuestStateOnly", + diskEncryptionSet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}", + }, + }, + }, + diskIopsReadWrite: 24, + diskMBpsReadWrite: 4, + deleteOption: "Delete", + }, + ], + diskControllerType: "SCSI", + }, + networkProfile: { + healthProbe: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}", + }, + networkInterfaceConfigurations: [ + { + name: "gpunpcdsdphgspvgwwbnk", + properties: { + primary: true, + enableAcceleratedNetworking: true, + disableTcpStateTracking: true, + enableFpga: true, + networkSecurityGroup: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}", + }, + dnsSettings: { dnsServers: ["sjpmlu"] }, + ipConfigurations: [ + { + name: "fweiphgkyhbcsbfjmxzczkpg", + properties: { + subnet: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}", + }, + primary: true, + publicIPAddressConfiguration: { + name: "dvnoamqjyshquvtmf", + properties: { + idleTimeoutInMinutes: 1, + dnsSettings: { + domainNameLabel: "ayofnb", + domainNameLabelScope: "TenantReuse", + }, + ipTags: [ + { + ipTagType: "zqpznczmc", + tag: "ugnfzikniqjisffrbvryavenhmtd", + }, + ], + publicIPPrefix: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}", + }, + publicIPAddressVersion: "IPv4", + deleteOption: "Delete", + }, + sku: { name: "Basic", tier: "Regional" }, + }, + privateIPAddressVersion: "IPv4", + applicationGatewayBackendAddressPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/backendAddressPools/{backendAddressPoolName}", + }, + ], + applicationSecurityGroups: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationSecurityGroups/{applicationSecurityGroupName}", + }, + ], + loadBalancerBackendAddressPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/backendAddressPools/{backendAddressPoolName}", + }, + ], + loadBalancerInboundNatPools: [ + { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/inboundNatPools/{inboundNatPoolName}", + }, + ], + }, + }, + ], + enableIPForwarding: true, + deleteOption: "Delete", + auxiliaryMode: "None", + auxiliarySku: "None", + }, + }, + ], + networkApiVersion: "2020-11-01", + }, + securityProfile: { + uefiSettings: { secureBootEnabled: true, vTpmEnabled: true }, + encryptionAtHost: true, + securityType: "TrustedLaunch", + encryptionIdentity: { + userAssignedIdentityResourceId: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{userAssignedIdentityName}", + }, + proxyAgentSettings: { + enabled: true, + mode: "Audit", + keyIncarnationId: 6, + }, + }, + diagnosticsProfile: { + bootDiagnostics: { + enabled: true, + storageUri: "https://microsoft.com/a", + }, + }, + extensionProfile: { + extensions: [ + { + name: "oredyuufsd", + properties: { + forceUpdateTag: "muglieujh", + publisher: "ccbiyfuveemaaopgxbjpm", + type: "yorumzkbfpxnrdwgczwwaeaxmda", + typeHandlerVersion: "nlnqbmgzwubbc", + autoUpgradeMinorVersion: true, + enableAutomaticUpgrade: true, + settings: {}, + protectedSettings: {}, + provisionAfterExtensions: ["xuefrutmgzsxrpjjayvy"], + suppressFailures: true, + protectedSettingsFromKeyVault: { + secretUrl: "https://microsoft.com/a", + sourceVault: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", + }, + }, + }, + }, + ], + extensionsTimeBudget: "trluxrynunvdnukztblhbnsubr", + }, + licenseType: "ginsqshzwimjteiyfxhnjxfrcaat", + scheduledEventsProfile: { + terminateNotificationProfile: { + notBeforeTimeout: "plbazenobaeueixatewbey", + enable: true, + }, + osImageNotificationProfile: { + notBeforeTimeout: "ednjvcedpjmczw", + enable: true, + }, + }, + userData: "zekdr", + capacityReservation: { + capacityReservationGroup: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}", + }, + }, + applicationProfile: { + galleryApplications: [ + { + tags: "eomzidad", + order: 22, + packageReferenceId: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{applicationName}/versions/{versionName}", + configurationReference: "zdqfcpvt", + treatFailureAsDeploymentFailure: true, + enableAutomaticUpgrade: true, + }, + ], + }, + hardwareProfile: { + vmSizeProperties: { vCPUsAvailable: 8, vCPUsPerCore: 17 }, + }, + serviceArtifactReference: { + id: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactsName}/vmArtifactsProfiles/{vmArtifactsProfileName}", + }, + securityPostureReference: { + id: "/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest", + excludeExtensions: ["ragwgzswxzzz"], + isOverridable: true, + }, + }, + }, + ], + }, + mode: "Managed", + capacityType: "VM", + zoneAllocationPolicy: { distributionStrategy: "BestEffortSingleZone" }, + }, + plan: { + name: "jwgrcrnrtfoxn", + publisher: "iozjbiqqckqm", + product: "cgopbyvdyqikahwyxfpzwaqk", + promotionCode: "naglezezplcaruqogtxnuizslqnnbr", + version: "wa", + }, + }); + console.log(result); +} + +async function main(): Promise { + await fleetsUpdate(); +} + +main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/operationsListSample.ts b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/operationsListSample.ts similarity index 83% rename from sdk/computefleet/arm-computefleet/samples/v1/typescript/src/operationsListSample.ts rename to sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/operationsListSample.ts index 969e93467213..35f61787f3fd 100644 --- a/sdk/computefleet/arm-computefleet/samples/v1/typescript/src/operationsListSample.ts +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/src/operationsListSample.ts @@ -8,14 +8,14 @@ import { DefaultAzureCredential } from "@azure/identity"; * This sample demonstrates how to list the operations for the provider * * @summary list the operations for the provider - * x-ms-original-file: 2024-11-01/Operations_List.json + * x-ms-original-file: 2025-07-01-preview/Operations_List.json */ async function operationsList(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-00000000000"; const client = new AzureFleetClient(credential, subscriptionId); const resArray = new Array(); - for await (let item of client.operations.list()) { + for await (const item of client.operations.list()) { resArray.push(item); } @@ -23,7 +23,7 @@ async function operationsList(): Promise { } async function main(): Promise { - operationsList(); + await operationsList(); } main().catch(console.error); diff --git a/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/tsconfig.json b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/tsconfig.json new file mode 100644 index 000000000000..400db87cf648 --- /dev/null +++ b/sdk/computefleet/arm-computefleet/samples/v2-beta/typescript/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "ES2023", + "module": "commonjs", + "lib": [], + "importHelpers": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "moduleResolution": "node10", + "esModuleInterop": true, + "outDir": "./dist", + "resolveJsonModule": true + }, + "include": [ + "./src" + ] +} diff --git a/sdk/computefleet/arm-computefleet/src/api/azureFleetContext.ts b/sdk/computefleet/arm-computefleet/src/api/azureFleetContext.ts index 89318b87b149..b3ed40276418 100644 --- a/sdk/computefleet/arm-computefleet/src/api/azureFleetContext.ts +++ b/sdk/computefleet/arm-computefleet/src/api/azureFleetContext.ts @@ -2,25 +2,37 @@ // Licensed under the MIT License. import { logger } from "../logger.js"; +import { KnownVersions } from "../models/models.js"; +import { AzureSupportedClouds, getArmEndpoint } from "../static-helpers/cloudSettingHelpers.js"; import { Client, ClientOptions, getClient } from "@azure-rest/core-client"; import { TokenCredential } from "@azure/core-auth"; -export interface AzureFleetContext extends Client {} +export interface AzureFleetContext extends Client { + /** The API version to use for this operation. */ + /** Known values of {@link KnownVersions} that the service accepts. */ + apiVersion: string; + /** The ID of the target subscription. The value must be an UUID. */ + subscriptionId: string; +} /** Optional parameters for the client. */ export interface AzureFleetClientOptionalParams extends ClientOptions { /** The API version to use for this operation. */ + /** Known values of {@link KnownVersions} that the service accepts. */ apiVersion?: string; + /** Specifies the Azure cloud environment for the client. */ + cloudSetting?: AzureSupportedClouds; } export function createAzureFleet( credential: TokenCredential, + subscriptionId: string, options: AzureFleetClientOptionalParams = {}, ): AzureFleetContext { - const endpointUrl = options.endpoint ?? options.baseUrl ?? `https://management.azure.com`; - + const endpointUrl = + options.endpoint ?? getArmEndpoint(options.cloudSetting) ?? "https://management.azure.com"; const prefixFromOptions = options?.userAgentOptions?.userAgentPrefix; - const userAgentInfo = `azsdk-js-arm-computefleet/1.0.1`; + const userAgentInfo = `azsdk-js-arm-computefleet/1.0.0-beta.1`; const userAgentPrefix = prefixFromOptions ? `${prefixFromOptions} azsdk-js-api ${userAgentInfo}` : `azsdk-js-api ${userAgentInfo}`; @@ -34,7 +46,7 @@ export function createAzureFleet( }; const clientContext = getClient(endpointUrl, credential, updatedOptions); clientContext.pipeline.removePolicy({ name: "ApiVersionPolicy" }); - const apiVersion = options.apiVersion ?? "2024-11-01"; + const apiVersion = options.apiVersion ?? "2025-07-01-preview"; clientContext.pipeline.addPolicy({ name: "ClientApiVersionPolicy", sendRequest: (req, next) => { @@ -50,5 +62,5 @@ export function createAzureFleet( return next(req); }, }); - return clientContext; + return { ...clientContext, apiVersion, subscriptionId } as AzureFleetContext; } diff --git a/sdk/computefleet/arm-computefleet/src/api/fleets/index.ts b/sdk/computefleet/arm-computefleet/src/api/fleets/index.ts index 46e4df1ab7e7..5dbfaa331545 100644 --- a/sdk/computefleet/arm-computefleet/src/api/fleets/index.ts +++ b/sdk/computefleet/arm-computefleet/src/api/fleets/index.ts @@ -1,363 +1,25 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { - AzureFleetContext as Client, - FleetsCreateOrUpdateOptionalParams, - FleetsDeleteOptionalParams, - FleetsGetOptionalParams, - FleetsListByResourceGroupOptionalParams, - FleetsListBySubscriptionOptionalParams, +export { + cancel, + listVirtualMachines, + listVirtualMachineScaleSets, + listBySubscription, + listByResourceGroup, + $delete, + update, + createOrUpdate, + get, +} from "./operations.js"; +export { + FleetsCancelOptionalParams, + FleetsListVirtualMachinesOptionalParams, FleetsListVirtualMachineScaleSetsOptionalParams, + FleetsListBySubscriptionOptionalParams, + FleetsListByResourceGroupOptionalParams, + FleetsDeleteOptionalParams, FleetsUpdateOptionalParams, -} from "../index.js"; -import { - Fleet, - fleetSerializer, - fleetDeserializer, - FleetUpdate, - fleetUpdateSerializer, - _FleetListResult, - _fleetListResultDeserializer, - _VirtualMachineScaleSetListResult, - _virtualMachineScaleSetListResultDeserializer, - VirtualMachineScaleSet, -} from "../../models/models.js"; -import { getLongRunningPoller } from "../../static-helpers/pollingHelpers.js"; -import { - PagedAsyncIterableIterator, - buildPagedAsyncIterator, -} from "../../static-helpers/pagingHelpers.js"; -import { - StreamableMethod, - PathUncheckedResponse, - createRestError, - operationOptionsToRequestParameters, -} from "@azure-rest/core-client"; -import { PollerLike, OperationState } from "@azure/core-lro"; - -export function _fleetsGetSend( - context: Client, - subscriptionId: string, - resourceGroupName: string, - fleetName: string, - options: FleetsGetOptionalParams = { requestOptions: {} }, -): StreamableMethod { - return context - .path( - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureFleet/fleets/{fleetName}", - subscriptionId, - resourceGroupName, - fleetName, - ) - .get({ ...operationOptionsToRequestParameters(options) }); -} - -export async function _fleetsGetDeserialize(result: PathUncheckedResponse): Promise { - const expectedStatuses = ["200"]; - if (!expectedStatuses.includes(result.status)) { - throw createRestError(result); - } - - return fleetDeserializer(result.body); -} - -/** Get a Fleet */ -export async function fleetsGet( - context: Client, - subscriptionId: string, - resourceGroupName: string, - fleetName: string, - options: FleetsGetOptionalParams = { requestOptions: {} }, -): Promise { - const result = await _fleetsGetSend( - context, - subscriptionId, - resourceGroupName, - fleetName, - options, - ); - return _fleetsGetDeserialize(result); -} - -export function _fleetsCreateOrUpdateSend( - context: Client, - subscriptionId: string, - resourceGroupName: string, - fleetName: string, - resource: Fleet, - options: FleetsCreateOrUpdateOptionalParams = { requestOptions: {} }, -): StreamableMethod { - return context - .path( - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureFleet/fleets/{fleetName}", - subscriptionId, - resourceGroupName, - fleetName, - ) - .put({ - ...operationOptionsToRequestParameters(options), - body: fleetSerializer(resource), - }); -} - -export async function _fleetsCreateOrUpdateDeserialize( - result: PathUncheckedResponse, -): Promise { - const expectedStatuses = ["200", "201"]; - if (!expectedStatuses.includes(result.status)) { - throw createRestError(result); - } - - return fleetDeserializer(result.body); -} - -/** Create a Fleet */ -export function fleetsCreateOrUpdate( - context: Client, - subscriptionId: string, - resourceGroupName: string, - fleetName: string, - resource: Fleet, - options: FleetsCreateOrUpdateOptionalParams = { requestOptions: {} }, -): PollerLike, Fleet> { - return getLongRunningPoller(context, _fleetsCreateOrUpdateDeserialize, ["200", "201"], { - updateIntervalInMs: options?.updateIntervalInMs, - abortSignal: options?.abortSignal, - getInitialResponse: () => - _fleetsCreateOrUpdateSend( - context, - subscriptionId, - resourceGroupName, - fleetName, - resource, - options, - ), - resourceLocationConfig: "azure-async-operation", - }) as PollerLike, Fleet>; -} - -export function _fleetsUpdateSend( - context: Client, - subscriptionId: string, - resourceGroupName: string, - fleetName: string, - properties: FleetUpdate, - options: FleetsUpdateOptionalParams = { requestOptions: {} }, -): StreamableMethod { - return context - .path( - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureFleet/fleets/{fleetName}", - subscriptionId, - resourceGroupName, - fleetName, - ) - .patch({ - ...operationOptionsToRequestParameters(options), - body: fleetUpdateSerializer(properties), - }); -} - -export async function _fleetsUpdateDeserialize(result: PathUncheckedResponse): Promise { - const expectedStatuses = ["200", "202"]; - if (!expectedStatuses.includes(result.status)) { - throw createRestError(result); - } - - return fleetDeserializer(result.body); -} - -/** Update a Fleet */ -export function fleetsUpdate( - context: Client, - subscriptionId: string, - resourceGroupName: string, - fleetName: string, - properties: FleetUpdate, - options: FleetsUpdateOptionalParams = { requestOptions: {} }, -): PollerLike, Fleet> { - return getLongRunningPoller(context, _fleetsUpdateDeserialize, ["200", "202"], { - updateIntervalInMs: options?.updateIntervalInMs, - abortSignal: options?.abortSignal, - getInitialResponse: () => - _fleetsUpdateSend(context, subscriptionId, resourceGroupName, fleetName, properties, options), - resourceLocationConfig: "location", - }) as PollerLike, Fleet>; -} - -export function _fleetsDeleteSend( - context: Client, - subscriptionId: string, - resourceGroupName: string, - fleetName: string, - options: FleetsDeleteOptionalParams = { requestOptions: {} }, -): StreamableMethod { - return context - .path( - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureFleet/fleets/{fleetName}", - subscriptionId, - resourceGroupName, - fleetName, - ) - .delete({ ...operationOptionsToRequestParameters(options) }); -} - -export async function _fleetsDeleteDeserialize(result: PathUncheckedResponse): Promise { - const expectedStatuses = ["202", "204", "200"]; - if (!expectedStatuses.includes(result.status)) { - throw createRestError(result); - } - - return; -} - -/** Delete a Fleet */ -export function fleetsDelete( - context: Client, - subscriptionId: string, - resourceGroupName: string, - fleetName: string, - options: FleetsDeleteOptionalParams = { requestOptions: {} }, -): PollerLike, void> { - return getLongRunningPoller(context, _fleetsDeleteDeserialize, ["202", "204", "200"], { - updateIntervalInMs: options?.updateIntervalInMs, - abortSignal: options?.abortSignal, - getInitialResponse: () => - _fleetsDeleteSend(context, subscriptionId, resourceGroupName, fleetName, options), - resourceLocationConfig: "location", - }) as PollerLike, void>; -} - -export function _fleetsListByResourceGroupSend( - context: Client, - subscriptionId: string, - resourceGroupName: string, - options: FleetsListByResourceGroupOptionalParams = { requestOptions: {} }, -): StreamableMethod { - return context - .path( - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureFleet/fleets", - subscriptionId, - resourceGroupName, - ) - .get({ ...operationOptionsToRequestParameters(options) }); -} - -export async function _fleetsListByResourceGroupDeserialize( - result: PathUncheckedResponse, -): Promise<_FleetListResult> { - const expectedStatuses = ["200"]; - if (!expectedStatuses.includes(result.status)) { - throw createRestError(result); - } - - return _fleetListResultDeserializer(result.body); -} - -/** List Fleet resources by resource group */ -export function fleetsListByResourceGroup( - context: Client, - subscriptionId: string, - resourceGroupName: string, - options: FleetsListByResourceGroupOptionalParams = { requestOptions: {} }, -): PagedAsyncIterableIterator { - return buildPagedAsyncIterator( - context, - () => _fleetsListByResourceGroupSend(context, subscriptionId, resourceGroupName, options), - _fleetsListByResourceGroupDeserialize, - ["200"], - { itemName: "value", nextLinkName: "nextLink" }, - ); -} - -export function _fleetsListBySubscriptionSend( - context: Client, - subscriptionId: string, - options: FleetsListBySubscriptionOptionalParams = { requestOptions: {} }, -): StreamableMethod { - return context - .path("/subscriptions/{subscriptionId}/providers/Microsoft.AzureFleet/fleets", subscriptionId) - .get({ ...operationOptionsToRequestParameters(options) }); -} - -export async function _fleetsListBySubscriptionDeserialize( - result: PathUncheckedResponse, -): Promise<_FleetListResult> { - const expectedStatuses = ["200"]; - if (!expectedStatuses.includes(result.status)) { - throw createRestError(result); - } - - return _fleetListResultDeserializer(result.body); -} - -/** List Fleet resources by subscription ID */ -export function fleetsListBySubscription( - context: Client, - subscriptionId: string, - options: FleetsListBySubscriptionOptionalParams = { requestOptions: {} }, -): PagedAsyncIterableIterator { - return buildPagedAsyncIterator( - context, - () => _fleetsListBySubscriptionSend(context, subscriptionId, options), - _fleetsListBySubscriptionDeserialize, - ["200"], - { itemName: "value", nextLinkName: "nextLink" }, - ); -} - -export function _fleetsListVirtualMachineScaleSetsSend( - context: Client, - subscriptionId: string, - resourceGroupName: string, - name: string, - options: FleetsListVirtualMachineScaleSetsOptionalParams = { - requestOptions: {}, - }, -): StreamableMethod { - return context - .path( - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureFleet/fleets/{name}/virtualMachineScaleSets", - subscriptionId, - resourceGroupName, - name, - ) - .get({ ...operationOptionsToRequestParameters(options) }); -} - -export async function _fleetsListVirtualMachineScaleSetsDeserialize( - result: PathUncheckedResponse, -): Promise<_VirtualMachineScaleSetListResult> { - const expectedStatuses = ["200"]; - if (!expectedStatuses.includes(result.status)) { - throw createRestError(result); - } - - return _virtualMachineScaleSetListResultDeserializer(result.body); -} - -/** List VirtualMachineScaleSet resources by Fleet */ -export function fleetsListVirtualMachineScaleSets( - context: Client, - subscriptionId: string, - resourceGroupName: string, - name: string, - options: FleetsListVirtualMachineScaleSetsOptionalParams = { - requestOptions: {}, - }, -): PagedAsyncIterableIterator { - return buildPagedAsyncIterator( - context, - () => - _fleetsListVirtualMachineScaleSetsSend( - context, - subscriptionId, - resourceGroupName, - name, - options, - ), - _fleetsListVirtualMachineScaleSetsDeserialize, - ["200"], - { itemName: "value", nextLinkName: "nextLink" }, - ); -} + FleetsCreateOrUpdateOptionalParams, + FleetsGetOptionalParams, +} from "./options.js"; diff --git a/sdk/computefleet/arm-computefleet/src/api/fleets/operations.ts b/sdk/computefleet/arm-computefleet/src/api/fleets/operations.ts new file mode 100644 index 000000000000..745bf10045d0 --- /dev/null +++ b/sdk/computefleet/arm-computefleet/src/api/fleets/operations.ts @@ -0,0 +1,529 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { AzureFleetContext as Client } from "../index.js"; +import { + errorResponseDeserializer, + Fleet, + fleetSerializer, + fleetDeserializer, + FleetUpdate, + fleetUpdateSerializer, + _FleetListResult, + _fleetListResultDeserializer, + _VirtualMachineScaleSetListResult, + _virtualMachineScaleSetListResultDeserializer, + VirtualMachineScaleSet, + _VirtualMachineListResult, + _virtualMachineListResultDeserializer, + VirtualMachine, +} from "../../models/models.js"; +import { + PagedAsyncIterableIterator, + buildPagedAsyncIterator, +} from "../../static-helpers/pagingHelpers.js"; +import { getLongRunningPoller } from "../../static-helpers/pollingHelpers.js"; +import { expandUrlTemplate } from "../../static-helpers/urlTemplate.js"; +import { + FleetsCancelOptionalParams, + FleetsListVirtualMachinesOptionalParams, + FleetsListVirtualMachineScaleSetsOptionalParams, + FleetsListBySubscriptionOptionalParams, + FleetsListByResourceGroupOptionalParams, + FleetsDeleteOptionalParams, + FleetsUpdateOptionalParams, + FleetsCreateOrUpdateOptionalParams, + FleetsGetOptionalParams, +} from "./options.js"; +import { + StreamableMethod, + PathUncheckedResponse, + createRestError, + operationOptionsToRequestParameters, +} from "@azure-rest/core-client"; +import { PollerLike, OperationState } from "@azure/core-lro"; + +export function _cancelSend( + context: Client, + resourceGroupName: string, + fleetName: string, + options: FleetsCancelOptionalParams = { requestOptions: {} }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureFleet/fleets/{fleetName}/cancel{?api%2Dversion}", + { + subscriptionId: context.subscriptionId, + resourceGroupName: resourceGroupName, + fleetName: fleetName, + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).post({ ...operationOptionsToRequestParameters(options) }); +} + +export async function _cancelDeserialize(result: PathUncheckedResponse): Promise { + const expectedStatuses = ["202", "200"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return; +} + +/** Cancels an instance Fleet creation that is in progress. */ +export function cancel( + context: Client, + resourceGroupName: string, + fleetName: string, + options: FleetsCancelOptionalParams = { requestOptions: {} }, +): PollerLike, void> { + return getLongRunningPoller(context, _cancelDeserialize, ["202", "200"], { + updateIntervalInMs: options?.updateIntervalInMs, + abortSignal: options?.abortSignal, + getInitialResponse: () => _cancelSend(context, resourceGroupName, fleetName, options), + resourceLocationConfig: "location", + }) as PollerLike, void>; +} + +export function _listVirtualMachinesSend( + context: Client, + resourceGroupName: string, + name: string, + options: FleetsListVirtualMachinesOptionalParams = { requestOptions: {} }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureFleet/fleets/{name}/virtualMachines{?api%2Dversion,%24filter,%24skiptoken}", + { + subscriptionId: context.subscriptionId, + resourceGroupName: resourceGroupName, + name: name, + "api%2Dversion": context.apiVersion, + "%24filter": options?.filter, + "%24skiptoken": options?.skiptoken, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).get({ + ...operationOptionsToRequestParameters(options), + headers: { + accept: "application/json", + ...options.requestOptions?.headers, + }, + }); +} + +export async function _listVirtualMachinesDeserialize( + result: PathUncheckedResponse, +): Promise<_VirtualMachineListResult> { + const expectedStatuses = ["200"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return _virtualMachineListResultDeserializer(result.body); +} + +/** List VirtualMachine resources of an instance Fleet. */ +export function listVirtualMachines( + context: Client, + resourceGroupName: string, + name: string, + options: FleetsListVirtualMachinesOptionalParams = { requestOptions: {} }, +): PagedAsyncIterableIterator { + return buildPagedAsyncIterator( + context, + () => _listVirtualMachinesSend(context, resourceGroupName, name, options), + _listVirtualMachinesDeserialize, + ["200"], + { itemName: "value", nextLinkName: "nextLink" }, + ); +} + +export function _listVirtualMachineScaleSetsSend( + context: Client, + resourceGroupName: string, + name: string, + options: FleetsListVirtualMachineScaleSetsOptionalParams = { + requestOptions: {}, + }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureFleet/fleets/{name}/virtualMachineScaleSets{?api%2Dversion}", + { + subscriptionId: context.subscriptionId, + resourceGroupName: resourceGroupName, + name: name, + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).get({ + ...operationOptionsToRequestParameters(options), + headers: { + accept: "application/json", + ...options.requestOptions?.headers, + }, + }); +} + +export async function _listVirtualMachineScaleSetsDeserialize( + result: PathUncheckedResponse, +): Promise<_VirtualMachineScaleSetListResult> { + const expectedStatuses = ["200"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return _virtualMachineScaleSetListResultDeserializer(result.body); +} + +/** List VirtualMachineScaleSet resources by Fleet */ +export function listVirtualMachineScaleSets( + context: Client, + resourceGroupName: string, + name: string, + options: FleetsListVirtualMachineScaleSetsOptionalParams = { + requestOptions: {}, + }, +): PagedAsyncIterableIterator { + return buildPagedAsyncIterator( + context, + () => _listVirtualMachineScaleSetsSend(context, resourceGroupName, name, options), + _listVirtualMachineScaleSetsDeserialize, + ["200"], + { itemName: "value", nextLinkName: "nextLink" }, + ); +} + +export function _listBySubscriptionSend( + context: Client, + options: FleetsListBySubscriptionOptionalParams = { requestOptions: {} }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureFleet/fleets{?api%2Dversion}", + { + subscriptionId: context.subscriptionId, + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).get({ + ...operationOptionsToRequestParameters(options), + headers: { + accept: "application/json", + ...options.requestOptions?.headers, + }, + }); +} + +export async function _listBySubscriptionDeserialize( + result: PathUncheckedResponse, +): Promise<_FleetListResult> { + const expectedStatuses = ["200"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return _fleetListResultDeserializer(result.body); +} + +/** List Fleet resources by subscription ID */ +export function listBySubscription( + context: Client, + options: FleetsListBySubscriptionOptionalParams = { requestOptions: {} }, +): PagedAsyncIterableIterator { + return buildPagedAsyncIterator( + context, + () => _listBySubscriptionSend(context, options), + _listBySubscriptionDeserialize, + ["200"], + { itemName: "value", nextLinkName: "nextLink" }, + ); +} + +export function _listByResourceGroupSend( + context: Client, + resourceGroupName: string, + options: FleetsListByResourceGroupOptionalParams = { requestOptions: {} }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureFleet/fleets{?api%2Dversion}", + { + subscriptionId: context.subscriptionId, + resourceGroupName: resourceGroupName, + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).get({ + ...operationOptionsToRequestParameters(options), + headers: { + accept: "application/json", + ...options.requestOptions?.headers, + }, + }); +} + +export async function _listByResourceGroupDeserialize( + result: PathUncheckedResponse, +): Promise<_FleetListResult> { + const expectedStatuses = ["200"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return _fleetListResultDeserializer(result.body); +} + +/** List Fleet resources by resource group */ +export function listByResourceGroup( + context: Client, + resourceGroupName: string, + options: FleetsListByResourceGroupOptionalParams = { requestOptions: {} }, +): PagedAsyncIterableIterator { + return buildPagedAsyncIterator( + context, + () => _listByResourceGroupSend(context, resourceGroupName, options), + _listByResourceGroupDeserialize, + ["200"], + { itemName: "value", nextLinkName: "nextLink" }, + ); +} + +export function _$deleteSend( + context: Client, + resourceGroupName: string, + fleetName: string, + options: FleetsDeleteOptionalParams = { requestOptions: {} }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureFleet/fleets/{fleetName}{?api%2Dversion}", + { + subscriptionId: context.subscriptionId, + resourceGroupName: resourceGroupName, + fleetName: fleetName, + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).delete({ ...operationOptionsToRequestParameters(options) }); +} + +export async function _$deleteDeserialize(result: PathUncheckedResponse): Promise { + const expectedStatuses = ["202", "204", "200"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return; +} + +/** Delete a Fleet */ +/** + * @fixme delete is a reserved word that cannot be used as an operation name. + * Please add @clientName("clientName") or @clientName("", "javascript") + * to the operation to override the generated name. + */ +export function $delete( + context: Client, + resourceGroupName: string, + fleetName: string, + options: FleetsDeleteOptionalParams = { requestOptions: {} }, +): PollerLike, void> { + return getLongRunningPoller(context, _$deleteDeserialize, ["202", "204", "200"], { + updateIntervalInMs: options?.updateIntervalInMs, + abortSignal: options?.abortSignal, + getInitialResponse: () => _$deleteSend(context, resourceGroupName, fleetName, options), + resourceLocationConfig: "location", + }) as PollerLike, void>; +} + +export function _updateSend( + context: Client, + resourceGroupName: string, + fleetName: string, + properties: FleetUpdate, + options: FleetsUpdateOptionalParams = { requestOptions: {} }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureFleet/fleets/{fleetName}{?api%2Dversion}", + { + subscriptionId: context.subscriptionId, + resourceGroupName: resourceGroupName, + fleetName: fleetName, + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).patch({ + ...operationOptionsToRequestParameters(options), + contentType: "application/json", + headers: { + accept: "application/json", + ...options.requestOptions?.headers, + }, + body: fleetUpdateSerializer(properties), + }); +} + +export async function _updateDeserialize(result: PathUncheckedResponse): Promise { + const expectedStatuses = ["200", "202"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return fleetDeserializer(result.body); +} + +/** Update a Fleet */ +export function update( + context: Client, + resourceGroupName: string, + fleetName: string, + properties: FleetUpdate, + options: FleetsUpdateOptionalParams = { requestOptions: {} }, +): PollerLike, Fleet> { + return getLongRunningPoller(context, _updateDeserialize, ["200", "202"], { + updateIntervalInMs: options?.updateIntervalInMs, + abortSignal: options?.abortSignal, + getInitialResponse: () => + _updateSend(context, resourceGroupName, fleetName, properties, options), + resourceLocationConfig: "location", + }) as PollerLike, Fleet>; +} + +export function _createOrUpdateSend( + context: Client, + resourceGroupName: string, + fleetName: string, + resource: Fleet, + options: FleetsCreateOrUpdateOptionalParams = { requestOptions: {} }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureFleet/fleets/{fleetName}{?api%2Dversion}", + { + subscriptionId: context.subscriptionId, + resourceGroupName: resourceGroupName, + fleetName: fleetName, + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).put({ + ...operationOptionsToRequestParameters(options), + contentType: "application/json", + headers: { + accept: "application/json", + ...options.requestOptions?.headers, + }, + body: fleetSerializer(resource), + }); +} + +export async function _createOrUpdateDeserialize(result: PathUncheckedResponse): Promise { + const expectedStatuses = ["200", "201", "202"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return fleetDeserializer(result.body); +} + +/** Create a Fleet */ +export function createOrUpdate( + context: Client, + resourceGroupName: string, + fleetName: string, + resource: Fleet, + options: FleetsCreateOrUpdateOptionalParams = { requestOptions: {} }, +): PollerLike, Fleet> { + return getLongRunningPoller(context, _createOrUpdateDeserialize, ["200", "201", "202"], { + updateIntervalInMs: options?.updateIntervalInMs, + abortSignal: options?.abortSignal, + getInitialResponse: () => + _createOrUpdateSend(context, resourceGroupName, fleetName, resource, options), + resourceLocationConfig: "azure-async-operation", + }) as PollerLike, Fleet>; +} + +export function _getSend( + context: Client, + resourceGroupName: string, + fleetName: string, + options: FleetsGetOptionalParams = { requestOptions: {} }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureFleet/fleets/{fleetName}{?api%2Dversion}", + { + subscriptionId: context.subscriptionId, + resourceGroupName: resourceGroupName, + fleetName: fleetName, + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).get({ + ...operationOptionsToRequestParameters(options), + headers: { + accept: "application/json", + ...options.requestOptions?.headers, + }, + }); +} + +export async function _getDeserialize(result: PathUncheckedResponse): Promise { + const expectedStatuses = ["200"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return fleetDeserializer(result.body); +} + +/** Get a Fleet */ +export async function get( + context: Client, + resourceGroupName: string, + fleetName: string, + options: FleetsGetOptionalParams = { requestOptions: {} }, +): Promise { + const result = await _getSend(context, resourceGroupName, fleetName, options); + return _getDeserialize(result); +} diff --git a/sdk/computefleet/arm-computefleet/src/api/options.ts b/sdk/computefleet/arm-computefleet/src/api/fleets/options.ts similarity index 70% rename from sdk/computefleet/arm-computefleet/src/api/options.ts rename to sdk/computefleet/arm-computefleet/src/api/fleets/options.ts index c05380ef26d4..e91d70d02fe8 100644 --- a/sdk/computefleet/arm-computefleet/src/api/options.ts +++ b/sdk/computefleet/arm-computefleet/src/api/fleets/options.ts @@ -4,13 +4,30 @@ import { OperationOptions } from "@azure-rest/core-client"; /** Optional parameters. */ -export interface OperationsListOptionalParams extends OperationOptions {} +export interface FleetsCancelOptionalParams extends OperationOptions { + /** Delay to wait until next poll, in milliseconds. */ + updateIntervalInMs?: number; +} /** Optional parameters. */ -export interface FleetsGetOptionalParams extends OperationOptions {} +export interface FleetsListVirtualMachinesOptionalParams extends OperationOptions { + /** Filter expression to filter the virtual machines. */ + filter?: string; + /** Skip token for pagination. Uses the token from a previous response to fetch the next page of results. */ + skiptoken?: string; +} /** Optional parameters. */ -export interface FleetsCreateOrUpdateOptionalParams extends OperationOptions { +export interface FleetsListVirtualMachineScaleSetsOptionalParams extends OperationOptions {} + +/** Optional parameters. */ +export interface FleetsListBySubscriptionOptionalParams extends OperationOptions {} + +/** Optional parameters. */ +export interface FleetsListByResourceGroupOptionalParams extends OperationOptions {} + +/** Optional parameters. */ +export interface FleetsDeleteOptionalParams extends OperationOptions { /** Delay to wait until next poll, in milliseconds. */ updateIntervalInMs?: number; } @@ -22,16 +39,10 @@ export interface FleetsUpdateOptionalParams extends OperationOptions { } /** Optional parameters. */ -export interface FleetsDeleteOptionalParams extends OperationOptions { +export interface FleetsCreateOrUpdateOptionalParams extends OperationOptions { /** Delay to wait until next poll, in milliseconds. */ updateIntervalInMs?: number; } /** Optional parameters. */ -export interface FleetsListByResourceGroupOptionalParams extends OperationOptions {} - -/** Optional parameters. */ -export interface FleetsListBySubscriptionOptionalParams extends OperationOptions {} - -/** Optional parameters. */ -export interface FleetsListVirtualMachineScaleSetsOptionalParams extends OperationOptions {} +export interface FleetsGetOptionalParams extends OperationOptions {} diff --git a/sdk/computefleet/arm-computefleet/src/api/index.ts b/sdk/computefleet/arm-computefleet/src/api/index.ts index d6f24d981c53..23cdc63a2fce 100644 --- a/sdk/computefleet/arm-computefleet/src/api/index.ts +++ b/sdk/computefleet/arm-computefleet/src/api/index.ts @@ -6,23 +6,3 @@ export { AzureFleetContext, AzureFleetClientOptionalParams, } from "./azureFleetContext.js"; -export { - OperationsListOptionalParams, - FleetsGetOptionalParams, - FleetsCreateOrUpdateOptionalParams, - FleetsUpdateOptionalParams, - FleetsDeleteOptionalParams, - FleetsListByResourceGroupOptionalParams, - FleetsListBySubscriptionOptionalParams, - FleetsListVirtualMachineScaleSetsOptionalParams, -} from "./options.js"; -export { - fleetsGet, - fleetsCreateOrUpdate, - fleetsUpdate, - fleetsDelete, - fleetsListByResourceGroup, - fleetsListBySubscription, - fleetsListVirtualMachineScaleSets, -} from "./fleets/index.js"; -export { operationsList } from "./operations/index.js"; diff --git a/sdk/computefleet/arm-computefleet/src/api/operations/index.ts b/sdk/computefleet/arm-computefleet/src/api/operations/index.ts index 5d8898a5339f..24a804d14fcf 100644 --- a/sdk/computefleet/arm-computefleet/src/api/operations/index.ts +++ b/sdk/computefleet/arm-computefleet/src/api/operations/index.ts @@ -1,53 +1,5 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { AzureFleetContext as Client, OperationsListOptionalParams } from "../index.js"; -import { - _OperationListResult, - _operationListResultDeserializer, - Operation, -} from "../../models/models.js"; -import { - PagedAsyncIterableIterator, - buildPagedAsyncIterator, -} from "../../static-helpers/pagingHelpers.js"; -import { - StreamableMethod, - PathUncheckedResponse, - createRestError, - operationOptionsToRequestParameters, -} from "@azure-rest/core-client"; - -export function _operationsListSend( - context: Client, - options: OperationsListOptionalParams = { requestOptions: {} }, -): StreamableMethod { - return context - .path("/providers/Microsoft.AzureFleet/operations") - .get({ ...operationOptionsToRequestParameters(options) }); -} - -export async function _operationsListDeserialize( - result: PathUncheckedResponse, -): Promise<_OperationListResult> { - const expectedStatuses = ["200"]; - if (!expectedStatuses.includes(result.status)) { - throw createRestError(result); - } - - return _operationListResultDeserializer(result.body); -} - -/** List the operations for the provider */ -export function operationsList( - context: Client, - options: OperationsListOptionalParams = { requestOptions: {} }, -): PagedAsyncIterableIterator { - return buildPagedAsyncIterator( - context, - () => _operationsListSend(context, options), - _operationsListDeserialize, - ["200"], - { itemName: "value", nextLinkName: "nextLink" }, - ); -} +export { list } from "./operations.js"; +export { OperationsListOptionalParams } from "./options.js"; diff --git a/sdk/computefleet/arm-computefleet/src/api/operations/operations.ts b/sdk/computefleet/arm-computefleet/src/api/operations/operations.ts new file mode 100644 index 000000000000..9020a7f642df --- /dev/null +++ b/sdk/computefleet/arm-computefleet/src/api/operations/operations.ts @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { AzureFleetContext as Client } from "../index.js"; +import { + _OperationListResult, + _operationListResultDeserializer, + Operation, + errorResponseDeserializer, +} from "../../models/models.js"; +import { + PagedAsyncIterableIterator, + buildPagedAsyncIterator, +} from "../../static-helpers/pagingHelpers.js"; +import { expandUrlTemplate } from "../../static-helpers/urlTemplate.js"; +import { OperationsListOptionalParams } from "./options.js"; +import { + StreamableMethod, + PathUncheckedResponse, + createRestError, + operationOptionsToRequestParameters, +} from "@azure-rest/core-client"; + +export function _listSend( + context: Client, + options: OperationsListOptionalParams = { requestOptions: {} }, +): StreamableMethod { + const path = expandUrlTemplate( + "/providers/Microsoft.AzureFleet/operations{?api%2Dversion}", + { + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).get({ + ...operationOptionsToRequestParameters(options), + headers: { + accept: "application/json", + ...options.requestOptions?.headers, + }, + }); +} + +export async function _listDeserialize( + result: PathUncheckedResponse, +): Promise<_OperationListResult> { + const expectedStatuses = ["200"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return _operationListResultDeserializer(result.body); +} + +/** List the operations for the provider */ +export function list( + context: Client, + options: OperationsListOptionalParams = { requestOptions: {} }, +): PagedAsyncIterableIterator { + return buildPagedAsyncIterator( + context, + () => _listSend(context, options), + _listDeserialize, + ["200"], + { itemName: "value", nextLinkName: "nextLink" }, + ); +} diff --git a/sdk/computefleet/arm-computefleet/src/api/operations/options.ts b/sdk/computefleet/arm-computefleet/src/api/operations/options.ts new file mode 100644 index 000000000000..c461016ad1c5 --- /dev/null +++ b/sdk/computefleet/arm-computefleet/src/api/operations/options.ts @@ -0,0 +1,7 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { OperationOptions } from "@azure-rest/core-client"; + +/** Optional parameters. */ +export interface OperationsListOptionalParams extends OperationOptions {} diff --git a/sdk/computefleet/arm-computefleet/src/azureFleetClient.ts b/sdk/computefleet/arm-computefleet/src/azureFleetClient.ts index 0f32eb1c7d1c..6847a487a053 100644 --- a/sdk/computefleet/arm-computefleet/src/azureFleetClient.ts +++ b/sdk/computefleet/arm-computefleet/src/azureFleetClient.ts @@ -1,15 +1,15 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { getOperationsOperations, OperationsOperations } from "./classic/operations/index.js"; -import { getFleetsOperations, FleetsOperations } from "./classic/fleets/index.js"; import { createAzureFleet, AzureFleetContext, AzureFleetClientOptionalParams, } from "./api/index.js"; -import { Pipeline } from "@azure/core-rest-pipeline"; +import { FleetsOperations, _getFleetsOperations } from "./classic/fleets/index.js"; +import { OperationsOperations, _getOperationsOperations } from "./classic/operations/index.js"; import { TokenCredential } from "@azure/core-auth"; +import { Pipeline } from "@azure/core-rest-pipeline"; export { AzureFleetClientOptionalParams } from "./api/azureFleetContext.js"; @@ -26,18 +26,18 @@ export class AzureFleetClient { const prefixFromOptions = options?.userAgentOptions?.userAgentPrefix; const userAgentPrefix = prefixFromOptions ? `${prefixFromOptions} azsdk-js-client` - : "azsdk-js-client"; - this._client = createAzureFleet(credential, { + : `azsdk-js-client`; + this._client = createAzureFleet(credential, subscriptionId, { ...options, userAgentOptions: { userAgentPrefix }, }); this.pipeline = this._client.pipeline; - this.operations = getOperationsOperations(this._client); - this.fleets = getFleetsOperations(this._client, subscriptionId); + this.fleets = _getFleetsOperations(this._client); + this.operations = _getOperationsOperations(this._client); } - /** The operation groups for Operations */ - public readonly operations: OperationsOperations; - /** The operation groups for Fleets */ + /** The operation groups for fleets */ public readonly fleets: FleetsOperations; + /** The operation groups for operations */ + public readonly operations: OperationsOperations; } diff --git a/sdk/computefleet/arm-computefleet/src/classic/fleets/index.ts b/sdk/computefleet/arm-computefleet/src/classic/fleets/index.ts index 5a53a58fe900..58438eb0d738 100644 --- a/sdk/computefleet/arm-computefleet/src/classic/fleets/index.ts +++ b/sdk/computefleet/arm-computefleet/src/classic/fleets/index.ts @@ -3,42 +3,71 @@ import { AzureFleetContext } from "../../api/azureFleetContext.js"; import { - fleetsGet, - fleetsCreateOrUpdate, - fleetsUpdate, - fleetsDelete, - fleetsListByResourceGroup, - fleetsListBySubscription, - fleetsListVirtualMachineScaleSets, -} from "../../api/fleets/index.js"; + cancel, + listVirtualMachines, + listVirtualMachineScaleSets, + listBySubscription, + listByResourceGroup, + $delete, + update, + createOrUpdate, + get, +} from "../../api/fleets/operations.js"; import { - FleetsGetOptionalParams, - FleetsCreateOrUpdateOptionalParams, - FleetsUpdateOptionalParams, - FleetsDeleteOptionalParams, - FleetsListByResourceGroupOptionalParams, - FleetsListBySubscriptionOptionalParams, + FleetsCancelOptionalParams, + FleetsListVirtualMachinesOptionalParams, FleetsListVirtualMachineScaleSetsOptionalParams, -} from "../../api/options.js"; -import { Fleet, FleetUpdate, VirtualMachineScaleSet } from "../../models/models.js"; + FleetsListBySubscriptionOptionalParams, + FleetsListByResourceGroupOptionalParams, + FleetsDeleteOptionalParams, + FleetsUpdateOptionalParams, + FleetsCreateOrUpdateOptionalParams, + FleetsGetOptionalParams, +} from "../../api/fleets/options.js"; +import { Fleet, FleetUpdate, VirtualMachineScaleSet, VirtualMachine } from "../../models/models.js"; import { PagedAsyncIterableIterator } from "../../static-helpers/pagingHelpers.js"; import { PollerLike, OperationState } from "@azure/core-lro"; /** Interface representing a Fleets operations. */ export interface FleetsOperations { - /** Get a Fleet */ - get: ( + /** Cancels an instance Fleet creation that is in progress. */ + cancel: ( resourceGroupName: string, fleetName: string, - options?: FleetsGetOptionalParams, - ) => Promise; - /** Create a Fleet */ - createOrUpdate: ( + options?: FleetsCancelOptionalParams, + ) => PollerLike, void>; + /** List VirtualMachine resources of an instance Fleet. */ + listVirtualMachines: ( + resourceGroupName: string, + name: string, + options?: FleetsListVirtualMachinesOptionalParams, + ) => PagedAsyncIterableIterator; + /** List VirtualMachineScaleSet resources by Fleet */ + listVirtualMachineScaleSets: ( + resourceGroupName: string, + name: string, + options?: FleetsListVirtualMachineScaleSetsOptionalParams, + ) => PagedAsyncIterableIterator; + /** List Fleet resources by subscription ID */ + listBySubscription: ( + options?: FleetsListBySubscriptionOptionalParams, + ) => PagedAsyncIterableIterator; + /** List Fleet resources by resource group */ + listByResourceGroup: ( + resourceGroupName: string, + options?: FleetsListByResourceGroupOptionalParams, + ) => PagedAsyncIterableIterator; + /** Delete a Fleet */ + /** + * @fixme delete is a reserved word that cannot be used as an operation name. + * Please add @clientName("clientName") or @clientName("", "javascript") + * to the operation to override the generated name. + */ + delete: ( resourceGroupName: string, fleetName: string, - resource: Fleet, - options?: FleetsCreateOrUpdateOptionalParams, - ) => PollerLike, Fleet>; + options?: FleetsDeleteOptionalParams, + ) => PollerLike, void>; /** Update a Fleet */ update: ( resourceGroupName: string, @@ -46,75 +75,62 @@ export interface FleetsOperations { properties: FleetUpdate, options?: FleetsUpdateOptionalParams, ) => PollerLike, Fleet>; - /** Delete a Fleet */ - delete: ( + /** Create a Fleet */ + createOrUpdate: ( resourceGroupName: string, fleetName: string, - options?: FleetsDeleteOptionalParams, - ) => PollerLike, void>; - /** List Fleet resources by resource group */ - listByResourceGroup: ( - resourceGroupName: string, - options?: FleetsListByResourceGroupOptionalParams, - ) => PagedAsyncIterableIterator; - /** List Fleet resources by subscription ID */ - listBySubscription: ( - options?: FleetsListBySubscriptionOptionalParams, - ) => PagedAsyncIterableIterator; - /** List VirtualMachineScaleSet resources by Fleet */ - listVirtualMachineScaleSets: ( + resource: Fleet, + options?: FleetsCreateOrUpdateOptionalParams, + ) => PollerLike, Fleet>; + /** Get a Fleet */ + get: ( resourceGroupName: string, - name: string, - options?: FleetsListVirtualMachineScaleSetsOptionalParams, - ) => PagedAsyncIterableIterator; + fleetName: string, + options?: FleetsGetOptionalParams, + ) => Promise; } -export function getFleets(context: AzureFleetContext, subscriptionId: string) { +function _getFleets(context: AzureFleetContext) { return { - get: (resourceGroupName: string, fleetName: string, options?: FleetsGetOptionalParams) => - fleetsGet(context, subscriptionId, resourceGroupName, fleetName, options), - createOrUpdate: ( + cancel: (resourceGroupName: string, fleetName: string, options?: FleetsCancelOptionalParams) => + cancel(context, resourceGroupName, fleetName, options), + listVirtualMachines: ( resourceGroupName: string, - fleetName: string, - resource: Fleet, - options?: FleetsCreateOrUpdateOptionalParams, - ) => - fleetsCreateOrUpdate( - context, - subscriptionId, - resourceGroupName, - fleetName, - resource, - options, - ), + name: string, + options?: FleetsListVirtualMachinesOptionalParams, + ) => listVirtualMachines(context, resourceGroupName, name, options), + listVirtualMachineScaleSets: ( + resourceGroupName: string, + name: string, + options?: FleetsListVirtualMachineScaleSetsOptionalParams, + ) => listVirtualMachineScaleSets(context, resourceGroupName, name, options), + listBySubscription: (options?: FleetsListBySubscriptionOptionalParams) => + listBySubscription(context, options), + listByResourceGroup: ( + resourceGroupName: string, + options?: FleetsListByResourceGroupOptionalParams, + ) => listByResourceGroup(context, resourceGroupName, options), + delete: (resourceGroupName: string, fleetName: string, options?: FleetsDeleteOptionalParams) => + $delete(context, resourceGroupName, fleetName, options), update: ( resourceGroupName: string, fleetName: string, properties: FleetUpdate, options?: FleetsUpdateOptionalParams, - ) => fleetsUpdate(context, subscriptionId, resourceGroupName, fleetName, properties, options), - delete: (resourceGroupName: string, fleetName: string, options?: FleetsDeleteOptionalParams) => - fleetsDelete(context, subscriptionId, resourceGroupName, fleetName, options), - listByResourceGroup: ( - resourceGroupName: string, - options?: FleetsListByResourceGroupOptionalParams, - ) => fleetsListByResourceGroup(context, subscriptionId, resourceGroupName, options), - listBySubscription: (options?: FleetsListBySubscriptionOptionalParams) => - fleetsListBySubscription(context, subscriptionId, options), - listVirtualMachineScaleSets: ( + ) => update(context, resourceGroupName, fleetName, properties, options), + createOrUpdate: ( resourceGroupName: string, - name: string, - options?: FleetsListVirtualMachineScaleSetsOptionalParams, - ) => - fleetsListVirtualMachineScaleSets(context, subscriptionId, resourceGroupName, name, options), + fleetName: string, + resource: Fleet, + options?: FleetsCreateOrUpdateOptionalParams, + ) => createOrUpdate(context, resourceGroupName, fleetName, resource, options), + get: (resourceGroupName: string, fleetName: string, options?: FleetsGetOptionalParams) => + get(context, resourceGroupName, fleetName, options), }; } -export function getFleetsOperations( - context: AzureFleetContext, - subscriptionId: string, -): FleetsOperations { +export function _getFleetsOperations(context: AzureFleetContext): FleetsOperations { return { - ...getFleets(context, subscriptionId), + ..._getFleets(context), }; } diff --git a/sdk/computefleet/arm-computefleet/src/classic/operations/index.ts b/sdk/computefleet/arm-computefleet/src/classic/operations/index.ts index e389622d750f..2739c34fe74e 100644 --- a/sdk/computefleet/arm-computefleet/src/classic/operations/index.ts +++ b/sdk/computefleet/arm-computefleet/src/classic/operations/index.ts @@ -2,8 +2,8 @@ // Licensed under the MIT License. import { AzureFleetContext } from "../../api/azureFleetContext.js"; -import { operationsList } from "../../api/operations/index.js"; -import { OperationsListOptionalParams } from "../../api/options.js"; +import { list } from "../../api/operations/operations.js"; +import { OperationsListOptionalParams } from "../../api/operations/options.js"; import { Operation } from "../../models/models.js"; import { PagedAsyncIterableIterator } from "../../static-helpers/pagingHelpers.js"; @@ -13,14 +13,14 @@ export interface OperationsOperations { list: (options?: OperationsListOptionalParams) => PagedAsyncIterableIterator; } -export function getOperations(context: AzureFleetContext) { +function _getOperations(context: AzureFleetContext) { return { - list: (options?: OperationsListOptionalParams) => operationsList(context, options), + list: (options?: OperationsListOptionalParams) => list(context, options), }; } -export function getOperationsOperations(context: AzureFleetContext): OperationsOperations { +export function _getOperationsOperations(context: AzureFleetContext): OperationsOperations { return { - ...getOperations(context), + ..._getOperations(context), }; } diff --git a/sdk/computefleet/arm-computefleet/src/helpers/serializerHelpers.ts b/sdk/computefleet/arm-computefleet/src/helpers/serializerHelpers.ts deleted file mode 100644 index 7518a16c2ee9..000000000000 --- a/sdk/computefleet/arm-computefleet/src/helpers/serializerHelpers.ts +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -export function serializeRecord( - item: Record, -): Record; -export function serializeRecord( - item: Record, - serializer: (item: T) => R, -): Record; -export function serializeRecord( - item: Record, - serializer?: (item: T) => R, -): Record { - return Object.keys(item).reduce( - (acc, key) => { - if (isSupportedRecordType(item[key])) { - acc[key] = item[key] as any; - } else if (serializer) { - const value = item[key]; - if (value !== undefined) { - acc[key] = serializer(value); - } - } else { - console.warn(`Don't know how to serialize ${item[key]}`); - acc[key] = item[key] as any; - } - return acc; - }, - {} as Record, - ); -} - -function isSupportedRecordType(t: any) { - return ["number", "string", "boolean", "null"].includes(typeof t) || t instanceof Date; -} diff --git a/sdk/computefleet/arm-computefleet/src/index.ts b/sdk/computefleet/arm-computefleet/src/index.ts index 1082b521132e..f0bfe69d1ae1 100644 --- a/sdk/computefleet/arm-computefleet/src/index.ts +++ b/sdk/computefleet/arm-computefleet/src/index.ts @@ -1,6 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. +import { AzureClouds, AzureSupportedClouds } from "./static-helpers/cloudSettingHelpers.js"; import { PageSettings, ContinuablePage, @@ -10,10 +11,19 @@ import { export { AzureFleetClient } from "./azureFleetClient.js"; export { restorePoller, RestorePollerOptions } from "./restorePollerHelpers.js"; export { + Operation, + OperationDisplay, + KnownOrigin, + Origin, + KnownActionType, + ActionType, + ErrorResponse, + ErrorDetail, + ErrorAdditionalInfo, Fleet, FleetProperties, - ProvisioningState, KnownProvisioningState, + ProvisioningState, SpotPriorityProfile, KnownEvictionPolicy, EvictionPolicy, @@ -155,6 +165,14 @@ export { SecurityPostureReference, ComputeProfile, AdditionalCapabilities, + KnownFleetMode, + FleetMode, + KnownCapacityType, + CapacityType, + ZoneAllocationPolicy, + KnownZoneDistributionStrategy, + ZoneDistributionStrategy, + ZonePreference, ManagedServiceIdentity, KnownManagedServiceIdentityType, ManagedServiceIdentityType, @@ -172,23 +190,24 @@ export { ApiError, ApiErrorBase, InnerError, - Operation, - OperationDisplay, - KnownOrigin, - Origin, - KnownActionType, - ActionType, + VirtualMachine, + KnownVMOperationStatus, + VMOperationStatus, + KnownVersions, } from "./models/index.js"; +export { AzureFleetClientOptionalParams } from "./api/index.js"; export { - AzureFleetClientOptionalParams, - OperationsListOptionalParams, - FleetsGetOptionalParams, - FleetsCreateOrUpdateOptionalParams, - FleetsUpdateOptionalParams, - FleetsDeleteOptionalParams, - FleetsListByResourceGroupOptionalParams, - FleetsListBySubscriptionOptionalParams, + FleetsCancelOptionalParams, + FleetsListVirtualMachinesOptionalParams, FleetsListVirtualMachineScaleSetsOptionalParams, -} from "./api/index.js"; + FleetsListBySubscriptionOptionalParams, + FleetsListByResourceGroupOptionalParams, + FleetsDeleteOptionalParams, + FleetsUpdateOptionalParams, + FleetsCreateOrUpdateOptionalParams, + FleetsGetOptionalParams, +} from "./api/fleets/index.js"; +export { OperationsListOptionalParams } from "./api/operations/index.js"; export { FleetsOperations, OperationsOperations } from "./classic/index.js"; export { PageSettings, ContinuablePage, PagedAsyncIterableIterator }; +export { AzureClouds, AzureSupportedClouds }; diff --git a/sdk/computefleet/arm-computefleet/src/models/index.ts b/sdk/computefleet/arm-computefleet/src/models/index.ts index c8ccf3517a93..c6eec649d7ac 100644 --- a/sdk/computefleet/arm-computefleet/src/models/index.ts +++ b/sdk/computefleet/arm-computefleet/src/models/index.ts @@ -2,6 +2,15 @@ // Licensed under the MIT License. export { + Operation, + OperationDisplay, + KnownOrigin, + Origin, + KnownActionType, + ActionType, + ErrorResponse, + ErrorDetail, + ErrorAdditionalInfo, Fleet, FleetProperties, KnownProvisioningState, @@ -147,6 +156,14 @@ export { SecurityPostureReference, ComputeProfile, AdditionalCapabilities, + KnownFleetMode, + FleetMode, + KnownCapacityType, + CapacityType, + ZoneAllocationPolicy, + KnownZoneDistributionStrategy, + ZoneDistributionStrategy, + ZonePreference, ManagedServiceIdentity, KnownManagedServiceIdentityType, ManagedServiceIdentityType, @@ -164,10 +181,8 @@ export { ApiError, ApiErrorBase, InnerError, - Operation, - OperationDisplay, - KnownOrigin, - Origin, - KnownActionType, - ActionType, + VirtualMachine, + KnownVMOperationStatus, + VMOperationStatus, + KnownVersions, } from "./models.js"; diff --git a/sdk/computefleet/arm-computefleet/src/models/models.ts b/sdk/computefleet/arm-computefleet/src/models/models.ts index bcd705ee2a4c..3a110423d27a 100644 --- a/sdk/computefleet/arm-computefleet/src/models/models.ts +++ b/sdk/computefleet/arm-computefleet/src/models/models.ts @@ -1,6 +1,173 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. +/** A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results. */ +export interface _OperationListResult { + /** The Operation items on this page */ + value: Operation[]; + /** The link to the next page of items */ + nextLink?: string; +} + +export function _operationListResultDeserializer(item: any): _OperationListResult { + return { + value: operationArrayDeserializer(item["value"]), + nextLink: item["nextLink"], + }; +} + +export function operationArrayDeserializer(result: Array): any[] { + return result.map((item) => { + return operationDeserializer(item); + }); +} + +/** Details of a REST API operation, returned from the Resource Provider Operations API */ +export interface Operation { + /** The name of the operation, as per Resource-Based Access Control (RBAC). Examples: "Microsoft.Compute/virtualMachines/write", "Microsoft.Compute/virtualMachines/capture/action" */ + readonly name?: string; + /** Whether the operation applies to data-plane. This is "true" for data-plane operations and "false" for Azure Resource Manager/control-plane operations. */ + readonly isDataAction?: boolean; + /** Localized display information for this particular operation. */ + display?: OperationDisplay; + /** The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" */ + readonly origin?: Origin; + /** Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. */ + readonly actionType?: ActionType; +} + +export function operationDeserializer(item: any): Operation { + return { + name: item["name"], + isDataAction: item["isDataAction"], + display: !item["display"] ? item["display"] : operationDisplayDeserializer(item["display"]), + origin: item["origin"], + actionType: item["actionType"], + }; +} + +/** Localized display information for and operation. */ +export interface OperationDisplay { + /** The localized friendly form of the resource provider name, e.g. "Microsoft Monitoring Insights" or "Microsoft Compute". */ + readonly provider?: string; + /** The localized friendly name of the resource type related to this operation. E.g. "Virtual Machines" or "Job Schedule Collections". */ + readonly resource?: string; + /** The concise, localized friendly name for the operation; suitable for dropdowns. E.g. "Create or Update Virtual Machine", "Restart Virtual Machine". */ + readonly operation?: string; + /** The short, localized friendly description of the operation; suitable for tool tips and detailed views. */ + readonly description?: string; +} + +export function operationDisplayDeserializer(item: any): OperationDisplay { + return { + provider: item["provider"], + resource: item["resource"], + operation: item["operation"], + description: item["description"], + }; +} + +/** The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" */ +export enum KnownOrigin { + /** Indicates the operation is initiated by a user. */ + User = "user", + /** Indicates the operation is initiated by a system. */ + System = "system", + /** Indicates the operation is initiated by a user or system. */ + UserSystem = "user,system", +} + +/** + * The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" \ + * {@link KnownOrigin} can be used interchangeably with Origin, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **user**: Indicates the operation is initiated by a user. \ + * **system**: Indicates the operation is initiated by a system. \ + * **user,system**: Indicates the operation is initiated by a user or system. + */ +export type Origin = string; + +/** Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. */ +export enum KnownActionType { + /** Actions are for internal-only APIs. */ + Internal = "Internal", +} + +/** + * Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. \ + * {@link KnownActionType} can be used interchangeably with ActionType, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **Internal**: Actions are for internal-only APIs. + */ +export type ActionType = string; + +/** Common error response for all Azure Resource Manager APIs to return error details for failed operations. */ +export interface ErrorResponse { + /** The error object. */ + error?: ErrorDetail; +} + +export function errorResponseDeserializer(item: any): ErrorResponse { + return { + error: !item["error"] ? item["error"] : errorDetailDeserializer(item["error"]), + }; +} + +/** The error detail. */ +export interface ErrorDetail { + /** The error code. */ + readonly code?: string; + /** The error message. */ + readonly message?: string; + /** The error target. */ + readonly target?: string; + /** The error details. */ + readonly details?: ErrorDetail[]; + /** The error additional info. */ + readonly additionalInfo?: ErrorAdditionalInfo[]; +} + +export function errorDetailDeserializer(item: any): ErrorDetail { + return { + code: item["code"], + message: item["message"], + target: item["target"], + details: !item["details"] ? item["details"] : errorDetailArrayDeserializer(item["details"]), + additionalInfo: !item["additionalInfo"] + ? item["additionalInfo"] + : errorAdditionalInfoArrayDeserializer(item["additionalInfo"]), + }; +} + +export function errorDetailArrayDeserializer(result: Array): any[] { + return result.map((item) => { + return errorDetailDeserializer(item); + }); +} + +export function errorAdditionalInfoArrayDeserializer(result: Array): any[] { + return result.map((item) => { + return errorAdditionalInfoDeserializer(item); + }); +} + +/** The resource management error additional info. */ +export interface ErrorAdditionalInfo { + /** The additional info type. */ + readonly type?: string; + /** The additional info. */ + readonly info?: any; +} + +export function errorAdditionalInfoDeserializer(item: any): ErrorAdditionalInfo { + return { + type: item["type"], + info: item["info"], + }; +} + /** An Compute Fleet resource */ export interface Fleet extends TrackedResource { /** The resource-specific properties for this resource. */ @@ -77,6 +244,16 @@ export interface FleetProperties { readonly timeCreated?: Date; /** Specifies the ID which uniquely identifies a Compute Fleet. */ readonly uniqueId?: string; + /** Mode of the Fleet. */ + mode?: FleetMode; + /** + * Specifies capacity type for Fleet Regular and Spot priority profiles. + * capacityType is an immutable property. Once set during Fleet creation, it cannot be updated. + * Specifying different capacity type for Fleet Regular and Spot priority profiles is not allowed. + */ + capacityType?: CapacityType; + /** Zone Allocation Policy for Fleet. */ + zoneAllocationPolicy?: ZoneAllocationPolicy; } export function fleetPropertiesSerializer(item: FleetProperties): any { @@ -90,19 +267,22 @@ export function fleetPropertiesSerializer(item: FleetProperties): any { vmSizesProfile: vmSizeProfileArraySerializer(item["vmSizesProfile"]), vmAttributes: !item["vmAttributes"] ? item["vmAttributes"] - : vMAttributesSerializer(item["vmAttributes"]), + : vmAttributesSerializer(item["vmAttributes"]), additionalLocationsProfile: !item["additionalLocationsProfile"] ? item["additionalLocationsProfile"] : additionalLocationsProfileSerializer(item["additionalLocationsProfile"]), computeProfile: computeProfileSerializer(item["computeProfile"]), + mode: item["mode"], + capacityType: item["capacityType"], + zoneAllocationPolicy: !item["zoneAllocationPolicy"] + ? item["zoneAllocationPolicy"] + : zoneAllocationPolicySerializer(item["zoneAllocationPolicy"]), }; } export function fleetPropertiesDeserializer(item: any): FleetProperties { return { - provisioningState: !item["provisioningState"] - ? item["provisioningState"] - : provisioningStateDeserializer(item["provisioningState"]), + provisioningState: item["provisioningState"], spotPriorityProfile: !item["spotPriorityProfile"] ? item["spotPriorityProfile"] : spotPriorityProfileDeserializer(item["spotPriorityProfile"]), @@ -112,58 +292,54 @@ export function fleetPropertiesDeserializer(item: any): FleetProperties { vmSizesProfile: vmSizeProfileArrayDeserializer(item["vmSizesProfile"]), vmAttributes: !item["vmAttributes"] ? item["vmAttributes"] - : vMAttributesDeserializer(item["vmAttributes"]), + : vmAttributesDeserializer(item["vmAttributes"]), additionalLocationsProfile: !item["additionalLocationsProfile"] ? item["additionalLocationsProfile"] : additionalLocationsProfileDeserializer(item["additionalLocationsProfile"]), computeProfile: computeProfileDeserializer(item["computeProfile"]), timeCreated: !item["timeCreated"] ? item["timeCreated"] : new Date(item["timeCreated"]), uniqueId: item["uniqueId"], + mode: item["mode"], + capacityType: item["capacityType"], + zoneAllocationPolicy: !item["zoneAllocationPolicy"] + ? item["zoneAllocationPolicy"] + : zoneAllocationPolicyDeserializer(item["zoneAllocationPolicy"]), }; } -/** Known values of {@link ProvisioningState} that the service accepts. */ +/** The status of the current operation. */ export enum KnownProvisioningState { - /** Succeeded */ + /** Resource has been created. */ Succeeded = "Succeeded", - /** Failed */ + /** Resource creation failed. */ Failed = "Failed", - /** Canceled */ + /** Resource creation was canceled. */ Canceled = "Canceled", - /** Creating */ + /** Initial creation in progress. */ Creating = "Creating", - /** Updating */ + /** Update in progress. */ Updating = "Updating", - /** Deleting */ + /** Deletion in progress. */ Deleting = "Deleting", - /** Migrating */ + /** Resource is being migrated from one subscription or resource group to another. */ Migrating = "Migrating", } /** - * The provisioning state of a resource type. \ - * {@link KnownProvisioningState} can be used interchangeably with ResourceProvisioningState, + * The status of the current operation. \ + * {@link KnownProvisioningState} can be used interchangeably with ProvisioningState, * this enum contains the known values that the service supports. * ### Known values supported by the service - * **Succeeded** \ - * **Failed** \ - * **Canceled** \ - * **Creating** \ - * **Updating** \ - * **Deleting** \ - * **Migrating** + * **Succeeded**: Resource has been created. \ + * **Failed**: Resource creation failed. \ + * **Canceled**: Resource creation was canceled. \ + * **Creating**: Initial creation in progress. \ + * **Updating**: Update in progress. \ + * **Deleting**: Deletion in progress. \ + * **Migrating**: Resource is being migrated from one subscription or resource group to another. */ - export type ProvisioningState = string; -export function provisioningStateSerializer(item: ProvisioningState): any { - return item; -} - -export function provisioningStateDeserializer(item: any): ProvisioningState { - return item; -} - /** Configuration Options for Spot instances in Compute Fleet. */ export interface SpotPriorityProfile { /** Total capacity to achieve. It is currently in terms of number of VMs. */ @@ -290,6 +466,18 @@ export enum KnownRegularPriorityAllocationStrategy { */ export type RegularPriorityAllocationStrategy = string; +export function vmSizeProfileArraySerializer(result: Array): any[] { + return result.map((item) => { + return vmSizeProfileSerializer(item); + }); +} + +export function vmSizeProfileArrayDeserializer(result: Array): any[] { + return result.map((item) => { + return vmSizeProfileDeserializer(item); + }); +} + /** Specifications about a VM Size. This will also contain the corresponding rank and weight in future. */ export interface VmSizeProfile { /** The Sku name (e.g. 'Standard_DS1_v2') */ @@ -312,18 +500,6 @@ export function vmSizeProfileDeserializer(item: any): VmSizeProfile { }; } -export function vmSizeProfileArraySerializer(result: Array): any[] { - return result.map((item) => { - return vmSizeProfileSerializer(item); - }); -} - -export function vmSizeProfileArrayDeserializer(result: Array): any[] { - return result.map((item) => { - return vmSizeProfileDeserializer(item); - }); -} - /** VMAttributes that will be used to filter VMSizes which will be used to build Fleet. */ export interface VMAttributes { /** The range of vCpuCount specified from Min to Max. Must be specified if VMAttributes are specified, either Min or Max is required if specified. */ @@ -396,17 +572,17 @@ export interface VMAttributes { excludedVMSizes?: string[]; } -export function vMAttributesSerializer(item: VMAttributes): any { +export function vmAttributesSerializer(item: VMAttributes): any { return { - vCpuCount: vMAttributeMinMaxIntegerSerializer(item["vCpuCount"]), - memoryInGiB: vMAttributeMinMaxDoubleSerializer(item["memoryInGiB"]), + vCpuCount: vmAttributeMinMaxIntegerSerializer(item["vCpuCount"]), + memoryInGiB: vmAttributeMinMaxDoubleSerializer(item["memoryInGiB"]), memoryInGiBPerVCpu: !item["memoryInGiBPerVCpu"] ? item["memoryInGiBPerVCpu"] - : vMAttributeMinMaxDoubleSerializer(item["memoryInGiBPerVCpu"]), + : vmAttributeMinMaxDoubleSerializer(item["memoryInGiBPerVCpu"]), localStorageSupport: item["localStorageSupport"], localStorageInGiB: !item["localStorageInGiB"] ? item["localStorageInGiB"] - : vMAttributeMinMaxDoubleSerializer(item["localStorageInGiB"]), + : vmAttributeMinMaxDoubleSerializer(item["localStorageInGiB"]), localStorageDiskTypes: !item["localStorageDiskTypes"] ? item["localStorageDiskTypes"] : item["localStorageDiskTypes"].map((p: any) => { @@ -414,17 +590,17 @@ export function vMAttributesSerializer(item: VMAttributes): any { }), dataDiskCount: !item["dataDiskCount"] ? item["dataDiskCount"] - : vMAttributeMinMaxIntegerSerializer(item["dataDiskCount"]), + : vmAttributeMinMaxIntegerSerializer(item["dataDiskCount"]), networkInterfaceCount: !item["networkInterfaceCount"] ? item["networkInterfaceCount"] - : vMAttributeMinMaxIntegerSerializer(item["networkInterfaceCount"]), + : vmAttributeMinMaxIntegerSerializer(item["networkInterfaceCount"]), networkBandwidthInMbps: !item["networkBandwidthInMbps"] ? item["networkBandwidthInMbps"] - : vMAttributeMinMaxDoubleSerializer(item["networkBandwidthInMbps"]), + : vmAttributeMinMaxDoubleSerializer(item["networkBandwidthInMbps"]), rdmaSupport: item["rdmaSupport"], rdmaNetworkInterfaceCount: !item["rdmaNetworkInterfaceCount"] ? item["rdmaNetworkInterfaceCount"] - : vMAttributeMinMaxIntegerSerializer(item["rdmaNetworkInterfaceCount"]), + : vmAttributeMinMaxIntegerSerializer(item["rdmaNetworkInterfaceCount"]), acceleratorSupport: item["acceleratorSupport"], acceleratorManufacturers: !item["acceleratorManufacturers"] ? item["acceleratorManufacturers"] @@ -438,7 +614,7 @@ export function vMAttributesSerializer(item: VMAttributes): any { }), acceleratorCount: !item["acceleratorCount"] ? item["acceleratorCount"] - : vMAttributeMinMaxIntegerSerializer(item["acceleratorCount"]), + : vmAttributeMinMaxIntegerSerializer(item["acceleratorCount"]), vmCategories: !item["vmCategories"] ? item["vmCategories"] : item["vmCategories"].map((p: any) => { @@ -463,17 +639,17 @@ export function vMAttributesSerializer(item: VMAttributes): any { }; } -export function vMAttributesDeserializer(item: any): VMAttributes { +export function vmAttributesDeserializer(item: any): VMAttributes { return { - vCpuCount: vMAttributeMinMaxIntegerDeserializer(item["vCpuCount"]), - memoryInGiB: vMAttributeMinMaxDoubleDeserializer(item["memoryInGiB"]), + vCpuCount: vmAttributeMinMaxIntegerDeserializer(item["vCpuCount"]), + memoryInGiB: vmAttributeMinMaxDoubleDeserializer(item["memoryInGiB"]), memoryInGiBPerVCpu: !item["memoryInGiBPerVCpu"] ? item["memoryInGiBPerVCpu"] - : vMAttributeMinMaxDoubleDeserializer(item["memoryInGiBPerVCpu"]), + : vmAttributeMinMaxDoubleDeserializer(item["memoryInGiBPerVCpu"]), localStorageSupport: item["localStorageSupport"], localStorageInGiB: !item["localStorageInGiB"] ? item["localStorageInGiB"] - : vMAttributeMinMaxDoubleDeserializer(item["localStorageInGiB"]), + : vmAttributeMinMaxDoubleDeserializer(item["localStorageInGiB"]), localStorageDiskTypes: !item["localStorageDiskTypes"] ? item["localStorageDiskTypes"] : item["localStorageDiskTypes"].map((p: any) => { @@ -481,17 +657,17 @@ export function vMAttributesDeserializer(item: any): VMAttributes { }), dataDiskCount: !item["dataDiskCount"] ? item["dataDiskCount"] - : vMAttributeMinMaxIntegerDeserializer(item["dataDiskCount"]), + : vmAttributeMinMaxIntegerDeserializer(item["dataDiskCount"]), networkInterfaceCount: !item["networkInterfaceCount"] ? item["networkInterfaceCount"] - : vMAttributeMinMaxIntegerDeserializer(item["networkInterfaceCount"]), + : vmAttributeMinMaxIntegerDeserializer(item["networkInterfaceCount"]), networkBandwidthInMbps: !item["networkBandwidthInMbps"] ? item["networkBandwidthInMbps"] - : vMAttributeMinMaxDoubleDeserializer(item["networkBandwidthInMbps"]), + : vmAttributeMinMaxDoubleDeserializer(item["networkBandwidthInMbps"]), rdmaSupport: item["rdmaSupport"], rdmaNetworkInterfaceCount: !item["rdmaNetworkInterfaceCount"] ? item["rdmaNetworkInterfaceCount"] - : vMAttributeMinMaxIntegerDeserializer(item["rdmaNetworkInterfaceCount"]), + : vmAttributeMinMaxIntegerDeserializer(item["rdmaNetworkInterfaceCount"]), acceleratorSupport: item["acceleratorSupport"], acceleratorManufacturers: !item["acceleratorManufacturers"] ? item["acceleratorManufacturers"] @@ -505,7 +681,7 @@ export function vMAttributesDeserializer(item: any): VMAttributes { }), acceleratorCount: !item["acceleratorCount"] ? item["acceleratorCount"] - : vMAttributeMinMaxIntegerDeserializer(item["acceleratorCount"]), + : vmAttributeMinMaxIntegerDeserializer(item["acceleratorCount"]), vmCategories: !item["vmCategories"] ? item["vmCategories"] : item["vmCategories"].map((p: any) => { @@ -538,11 +714,11 @@ export interface VMAttributeMinMaxInteger { max?: number; } -export function vMAttributeMinMaxIntegerSerializer(item: VMAttributeMinMaxInteger): any { +export function vmAttributeMinMaxIntegerSerializer(item: VMAttributeMinMaxInteger): any { return { min: item["min"], max: item["max"] }; } -export function vMAttributeMinMaxIntegerDeserializer(item: any): VMAttributeMinMaxInteger { +export function vmAttributeMinMaxIntegerDeserializer(item: any): VMAttributeMinMaxInteger { return { min: item["min"], max: item["max"], @@ -557,11 +733,11 @@ export interface VMAttributeMinMaxDouble { max?: number; } -export function vMAttributeMinMaxDoubleSerializer(item: VMAttributeMinMaxDouble): any { +export function vmAttributeMinMaxDoubleSerializer(item: VMAttributeMinMaxDouble): any { return { min: item["min"], max: item["max"] }; } -export function vMAttributeMinMaxDoubleDeserializer(item: any): VMAttributeMinMaxDouble { +export function vmAttributeMinMaxDoubleDeserializer(item: any): VMAttributeMinMaxDouble { return { min: item["min"], max: item["max"], @@ -633,7 +809,7 @@ export enum KnownAcceleratorType { /** GPU Accelerator */ GPU = "GPU", /** FPGA Accelerator */ - FPGA = "FPGA", + Fpga = "FPGA", } /** @@ -761,6 +937,18 @@ export function additionalLocationsProfileDeserializer(item: any): AdditionalLoc }; } +export function locationProfileArraySerializer(result: Array): any[] { + return result.map((item) => { + return locationProfileSerializer(item); + }); +} + +export function locationProfileArrayDeserializer(result: Array): any[] { + return result.map((item) => { + return locationProfileDeserializer(item); + }); +} + /** Represents the profile for a single additional location in the Fleet. The location and the virtualMachineProfileOverride (optional). */ export interface LocationProfile { /** The ARM location name of the additional region. If LocationProfile is specified, then location is required. */ @@ -823,9 +1011,9 @@ export interface BaseVirtualMachineProfile { * Server operating system are:

RHEL_BYOS (for RHEL)

SLES_BYOS * (for SUSE)

For more information, see [Azure Hybrid Use Benefit for * Windows - * Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing) + * Server](https://learn.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing) *

[Azure Hybrid Use Benefit for Linux - * Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux) + * Server](https://learn.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux) *

Minimum api-version: 2015-06-15 */ licenseType?: string; @@ -985,10 +1173,10 @@ export interface VirtualMachineScaleSetOSProfile { * "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", * "Password22", "iloveyou!"

For resetting the password, see [How to * reset the Remote Desktop service or its login password in a Windows - * VM](https://docs.microsoft.com/troubleshoot/azure/virtual-machines/reset-rdp) + * VM](https://learn.microsoft.com/troubleshoot/azure/virtual-machines/reset-rdp) *

For resetting root password, see [Manage users, SSH, and check or * repair disks on Azure Linux VMs using the VMAccess - * Extension](https://docs.microsoft.com/troubleshoot/azure/virtual-machines/troubleshoot-ssh-connection) + * Extension](https://learn.microsoft.com/troubleshoot/azure/virtual-machines/troubleshoot-ssh-connection) */ adminPassword?: string; /** @@ -996,7 +1184,7 @@ export interface VirtualMachineScaleSetOSProfile { * is decoded to a binary array that is saved as a file on the Virtual Machine. * The maximum length of the binary array is 65535 bytes. For using cloud-init for * your VM, see [Using cloud-init to customize a Linux VM during - * creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init) + * creation](https://learn.microsoft.com/azure/virtual-machines/linux/using-cloud-init) */ customData?: string; /** Specifies Windows operating system settings on the virtual machine. */ @@ -1004,16 +1192,16 @@ export interface VirtualMachineScaleSetOSProfile { /** * Specifies the Linux operating system settings on the virtual machine. For a * list of supported Linux distributions, see [Linux on Azure-Endorsed - * Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). + * Distributions](https://learn.microsoft.com/azure/virtual-machines/linux/endorsed-distros). */ linuxConfiguration?: LinuxConfiguration; /** * Specifies set of certificates that should be installed onto the virtual * machines in the scale set. To install certificates on a virtual machine it is * recommended to use the [Azure Key Vault virtual machine extension for - * Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) + * Linux](https://learn.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) * or the [Azure Key Vault virtual machine extension for - * Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). + * Windows](https://learn.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). */ secrets?: VaultSecretGroup[]; /** @@ -1086,9 +1274,9 @@ export interface WindowsConfiguration { /** * Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". * Possible values can be - * [TimeZoneInfo.Id](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id) + * [TimeZoneInfo.Id](https://learn.microsoft.com/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id) * value from time zones returned by - * [TimeZoneInfo.GetSystemTimeZones](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.getsystemtimezones). + * [TimeZoneInfo.GetSystemTimeZones](https://learn.microsoft.com/dotnet/api/system.timezoneinfo.getsystemtimezones). */ timeZone?: string; /** @@ -1142,6 +1330,22 @@ export function windowsConfigurationDeserializer(item: any): WindowsConfiguratio }; } +export function additionalUnattendContentArraySerializer( + result: Array, +): any[] { + return result.map((item) => { + return additionalUnattendContentSerializer(item); + }); +} + +export function additionalUnattendContentArrayDeserializer( + result: Array, +): any[] { + return result.map((item) => { + return additionalUnattendContentDeserializer(item); + }); +} + /** * Specifies additional XML formatted information that can be included in the * Unattend.xml file, which is used by Windows Setup. Contents are defined by @@ -1208,22 +1412,6 @@ export enum KnownSettingNames { */ export type SettingNames = string; -export function additionalUnattendContentArraySerializer( - result: Array, -): any[] { - return result.map((item) => { - return additionalUnattendContentSerializer(item); - }); -} - -export function additionalUnattendContentArrayDeserializer( - result: Array, -): any[] { - return result.map((item) => { - return additionalUnattendContentDeserializer(item); - }); -} - /** Specifies settings related to VM Guest Patching on Windows. */ export interface PatchSettings { /** @@ -1426,6 +1614,18 @@ export function winRMConfigurationDeserializer(item: any): WinRMConfiguration { }; } +export function winRMListenerArraySerializer(result: Array): any[] { + return result.map((item) => { + return winRMListenerSerializer(item); + }); +} + +export function winRMListenerArrayDeserializer(result: Array): any[] { + return result.map((item) => { + return winRMListenerDeserializer(item); + }); +} + /** Describes Protocol and thumbprint of Windows Remote Management listener */ export interface WinRMListener { /** @@ -1437,16 +1637,16 @@ export interface WinRMListener { * This is the URL of a certificate that has been uploaded to Key Vault as a * secret. For adding a secret to the Key Vault, see [Add a key or secret to the * key - * vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). + * vault](https://learn.microsoft.com/azure/key-vault/key-vault-get-started/#add). * In this case, your certificate needs to be the Base64 encoding of the following * JSON Object which is encoded in UTF-8:

{
* "data":"",
"dataType":"pfx",
* "password":""
}
To install certificates on a virtual * machine it is recommended to use the [Azure Key Vault virtual machine extension * for - * Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) + * Linux](https://learn.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) * or the [Azure Key Vault virtual machine extension for - * Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). + * Windows](https://learn.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). */ certificateUrl?: string; } @@ -1484,22 +1684,10 @@ export enum KnownProtocolTypes { */ export type ProtocolTypes = string; -export function winRMListenerArraySerializer(result: Array): any[] { - return result.map((item) => { - return winRMListenerSerializer(item); - }); -} - -export function winRMListenerArrayDeserializer(result: Array): any[] { - return result.map((item) => { - return winRMListenerDeserializer(item); - }); -} - /** * Specifies the Linux operating system settings on the virtual machine. For a * list of supported Linux distributions, see [Linux on Azure-Endorsed - * Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). + * Distributions](https://learn.microsoft.com/azure/virtual-machines/linux/endorsed-distros). */ export interface LinuxConfiguration { /** Specifies whether password authentication should be disabled. */ @@ -1568,6 +1756,18 @@ export function sshConfigurationDeserializer(item: any): SshConfiguration { }; } +export function sshPublicKeyArraySerializer(result: Array): any[] { + return result.map((item) => { + return sshPublicKeySerializer(item); + }); +} + +export function sshPublicKeyArrayDeserializer(result: Array): any[] { + return result.map((item) => { + return sshPublicKeyDeserializer(item); + }); +} + /** * Contains information about SSH certificate public key and the path on the Linux * VM where the public key is placed. @@ -1583,7 +1783,7 @@ export interface SshPublicKey { * SSH public key certificate used to authenticate with the VM through ssh. The * key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, * see [Create SSH keys on Linux and Mac for Linux VMs in - * Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed). + * Azure]https://learn.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed). */ keyData?: string; } @@ -1599,18 +1799,6 @@ export function sshPublicKeyDeserializer(item: any): SshPublicKey { }; } -export function sshPublicKeyArraySerializer(result: Array): any[] { - return result.map((item) => { - return sshPublicKeySerializer(item); - }); -} - -export function sshPublicKeyArrayDeserializer(result: Array): any[] { - return result.map((item) => { - return sshPublicKeyDeserializer(item); - }); -} - /** Specifies settings related to VM Guest Patching on Linux. */ export interface LinuxPatchSettings { /** @@ -1771,6 +1959,18 @@ export enum KnownLinuxVMGuestPatchAutomaticByPlatformRebootSetting { */ export type LinuxVMGuestPatchAutomaticByPlatformRebootSetting = string; +export function vaultSecretGroupArraySerializer(result: Array): any[] { + return result.map((item) => { + return vaultSecretGroupSerializer(item); + }); +} + +export function vaultSecretGroupArrayDeserializer(result: Array): any[] { + return result.map((item) => { + return vaultSecretGroupDeserializer(item); + }); +} + /** Describes a set of certificates which are all in the same Key Vault. */ export interface VaultSecretGroup { /** @@ -1820,6 +2020,18 @@ export function subResourceDeserializer(item: any): SubResource { }; } +export function vaultCertificateArraySerializer(result: Array): any[] { + return result.map((item) => { + return vaultCertificateSerializer(item); + }); +} + +export function vaultCertificateArrayDeserializer(result: Array): any[] { + return result.map((item) => { + return vaultCertificateDeserializer(item); + }); +} + /** * Describes a single certificate reference in a Key Vault, and where the * certificate should reside on the VM. @@ -1829,16 +2041,16 @@ export interface VaultCertificate { * This is the URL of a certificate that has been uploaded to Key Vault as a * secret. For adding a secret to the Key Vault, see [Add a key or secret to the * key - * vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). + * vault](https://learn.microsoft.com/azure/key-vault/key-vault-get-started/#add). * In this case, your certificate needs to be It is the Base64 encoding of the * following JSON Object which is encoded in UTF-8:

{
* "data":"",
"dataType":"pfx",
* "password":""
}
To install certificates on a virtual * machine it is recommended to use the [Azure Key Vault virtual machine extension * for - * Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) + * Linux](https://learn.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) * or the [Azure Key Vault virtual machine extension for - * Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). + * Windows](https://learn.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). */ certificateUrl?: string; /** @@ -1867,30 +2079,6 @@ export function vaultCertificateDeserializer(item: any): VaultCertificate { }; } -export function vaultCertificateArraySerializer(result: Array): any[] { - return result.map((item) => { - return vaultCertificateSerializer(item); - }); -} - -export function vaultCertificateArrayDeserializer(result: Array): any[] { - return result.map((item) => { - return vaultCertificateDeserializer(item); - }); -} - -export function vaultSecretGroupArraySerializer(result: Array): any[] { - return result.map((item) => { - return vaultSecretGroupSerializer(item); - }); -} - -export function vaultSecretGroupArrayDeserializer(result: Array): any[] { - return result.map((item) => { - return vaultSecretGroupDeserializer(item); - }); -} - /** Describes a virtual machine scale set storage profile. */ export interface VirtualMachineScaleSetStorageProfile { /** @@ -1904,14 +2092,14 @@ export interface VirtualMachineScaleSetStorageProfile { * Specifies information about the operating system disk used by the virtual * machines in the scale set. For more information about disks, see [About disks * and VHDs for Azure virtual - * machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). + * machines](https://learn.microsoft.com/azure/virtual-machines/managed-disks-overview). */ osDisk?: VirtualMachineScaleSetOSDisk; /** * Specifies the parameters that are used to add data disks to the virtual * machines in the scale set. For more information about disks, see [About disks * and VHDs for Azure virtual - * machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). + * machines](https://learn.microsoft.com/azure/virtual-machines/managed-disks-overview). */ dataDisks?: VirtualMachineScaleSetDataDisk[]; /** Specifies the disk controller type configured for the virtual machines in the scale set. Minimum api-version: 2022-08-01 */ @@ -2204,8 +2392,8 @@ export interface DiffDiskSettings { * values are: **CacheDisk,** **ResourceDisk.** The defaulting behavior is: * **CacheDisk** if one is configured for the VM size otherwise **ResourceDisk** * is used. Refer to the VM size documentation for Windows VM at - * https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at - * https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM + * https://learn.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at + * https://learn.microsoft.com/azure/virtual-machines/linux/sizes to check which VM * sizes exposes a cache disk. */ placement?: DiffDiskPlacement; @@ -2243,9 +2431,9 @@ export type DiffDiskOptions = string; * resource disk space for Ephemeral OS disk provisioning. For more information on * Ephemeral OS disk size requirements, please refer Ephemeral OS disk size * requirements for Windows VM at - * https://docs.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements + * https://learn.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements * and Linux VM at - * https://docs.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements + * https://learn.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements * Minimum api-version for NvmeDisk: 2024-03-01. */ export enum KnownDiffDiskPlacement { @@ -2263,9 +2451,9 @@ export enum KnownDiffDiskPlacement { * resource disk space for Ephemeral OS disk provisioning. For more information on * Ephemeral OS disk size requirements, please refer Ephemeral OS disk size * requirements for Windows VM at - * https://docs.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements + * https://learn.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements * and Linux VM at - * https://docs.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements + * https://learn.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements * Minimum api-version for NvmeDisk: 2024-03-01. \ * {@link KnownDiffDiskPlacement} can be used interchangeably with DiffDiskPlacement, * this enum contains the known values that the service supports. @@ -2342,7 +2530,7 @@ export function virtualMachineScaleSetManagedDiskParametersSerializer( : diskEncryptionSetParametersSerializer(item["diskEncryptionSet"]), securityProfile: !item["securityProfile"] ? item["securityProfile"] - : vMDiskSecurityProfileSerializer(item["securityProfile"]), + : vmDiskSecurityProfileSerializer(item["securityProfile"]), }; } @@ -2356,7 +2544,7 @@ export function virtualMachineScaleSetManagedDiskParametersDeserializer( : diskEncryptionSetParametersDeserializer(item["diskEncryptionSet"]), securityProfile: !item["securityProfile"] ? item["securityProfile"] - : vMDiskSecurityProfileDeserializer(item["securityProfile"]), + : vmDiskSecurityProfileDeserializer(item["securityProfile"]), }; } @@ -2369,9 +2557,9 @@ export function virtualMachineScaleSetManagedDiskParametersDeserializer( * zone redundant storage. StandardSSD_ZRS uses Standard SSD zone redundant * storage. For more information regarding disks supported for Windows Virtual * Machines, refer to - * https://docs.microsoft.com/azure/virtual-machines/windows/disks-types and, for + * https://learn.microsoft.com/azure/virtual-machines/windows/disks-types and, for * Linux Virtual Machines, refer to - * https://docs.microsoft.com/azure/virtual-machines/linux/disks-types + * https://learn.microsoft.com/azure/virtual-machines/linux/disks-types */ export enum KnownStorageAccountTypes { /** Standard_LRS option. */ @@ -2399,9 +2587,9 @@ export enum KnownStorageAccountTypes { * zone redundant storage. StandardSSD_ZRS uses Standard SSD zone redundant * storage. For more information regarding disks supported for Windows Virtual * Machines, refer to - * https://docs.microsoft.com/azure/virtual-machines/windows/disks-types and, for + * https://learn.microsoft.com/azure/virtual-machines/windows/disks-types and, for * Linux Virtual Machines, refer to - * https://docs.microsoft.com/azure/virtual-machines/linux/disks-types \ + * https://learn.microsoft.com/azure/virtual-machines/linux/disks-types \ * {@link KnownStorageAccountTypes} can be used interchangeably with StorageAccountTypes, * this enum contains the known values that the service supports. * ### Known values supported by the service @@ -2457,7 +2645,7 @@ export interface VMDiskSecurityProfile { diskEncryptionSet?: DiskEncryptionSetParameters; } -export function vMDiskSecurityProfileSerializer(item: VMDiskSecurityProfile): any { +export function vmDiskSecurityProfileSerializer(item: VMDiskSecurityProfile): any { return { securityEncryptionType: item["securityEncryptionType"], diskEncryptionSet: !item["diskEncryptionSet"] @@ -2466,7 +2654,7 @@ export function vMDiskSecurityProfileSerializer(item: VMDiskSecurityProfile): an }; } -export function vMDiskSecurityProfileDeserializer(item: any): VMDiskSecurityProfile { +export function vmDiskSecurityProfileDeserializer(item: any): VMDiskSecurityProfile { return { securityEncryptionType: item["securityEncryptionType"], diskEncryptionSet: !item["diskEncryptionSet"] @@ -2540,6 +2728,22 @@ export enum KnownDiskDeleteOptionTypes { */ export type DiskDeleteOptionTypes = string; +export function virtualMachineScaleSetDataDiskArraySerializer( + result: Array, +): any[] { + return result.map((item) => { + return virtualMachineScaleSetDataDiskSerializer(item); + }); +} + +export function virtualMachineScaleSetDataDiskArrayDeserializer( + result: Array, +): any[] { + return result.map((item) => { + return virtualMachineScaleSetDataDiskDeserializer(item); + }); +} + /** Describes a virtual machine scale set data disk. */ export interface VirtualMachineScaleSetDataDisk { /** The disk name. */ @@ -2574,7 +2778,7 @@ export interface VirtualMachineScaleSetDataDisk { * StorageAccountType is UltraSSD_LRS. If not specified, a default value would be * assigned based on diskSizeGB. */ - diskIOPSReadWrite?: number; + diskIopsReadWrite?: number; /** * Specifies the bandwidth in MB per second for the managed disk. Should be used * only when StorageAccountType is UltraSSD_LRS. If not specified, a default value @@ -2605,7 +2809,7 @@ export function virtualMachineScaleSetDataDiskSerializer( managedDisk: !item["managedDisk"] ? item["managedDisk"] : virtualMachineScaleSetManagedDiskParametersSerializer(item["managedDisk"]), - diskIOPSReadWrite: item["diskIOPSReadWrite"], + diskIOPSReadWrite: item["diskIopsReadWrite"], diskMBpsReadWrite: item["diskMBpsReadWrite"], deleteOption: item["deleteOption"], }; @@ -2624,42 +2828,26 @@ export function virtualMachineScaleSetDataDiskDeserializer( managedDisk: !item["managedDisk"] ? item["managedDisk"] : virtualMachineScaleSetManagedDiskParametersDeserializer(item["managedDisk"]), - diskIOPSReadWrite: item["diskIOPSReadWrite"], + diskIopsReadWrite: item["diskIOPSReadWrite"], diskMBpsReadWrite: item["diskMBpsReadWrite"], deleteOption: item["deleteOption"], }; } -export function virtualMachineScaleSetDataDiskArraySerializer( - result: Array, -): any[] { - return result.map((item) => { - return virtualMachineScaleSetDataDiskSerializer(item); - }); -} - -export function virtualMachineScaleSetDataDiskArrayDeserializer( - result: Array, -): any[] { - return result.map((item) => { - return virtualMachineScaleSetDataDiskDeserializer(item); - }); -} - /** * Specifies the disk controller type configured for the VM and * VirtualMachineScaleSet. This property is only supported for virtual machines * whose operating system disk and VM sku supports Generation 2 - * (https://docs.microsoft.com/en-us/azure/virtual-machines/generation-2), please + * (https://learn.microsoft.com/en-us/azure/virtual-machines/generation-2), please * check the HyperVGenerations capability returned as part of VM sku capabilities * in the response of Microsoft.Compute SKUs api for the region contains V2 - * (https://docs.microsoft.com/rest/api/compute/resourceskus/list). For more + * (https://learn.microsoft.com/rest/api/compute/resourceskus/list). For more * information about Disk Controller Types supported please refer to * https://aka.ms/azure-diskcontrollertypes. */ export enum KnownDiskControllerTypes { /** SCSI disk type */ - SCSI = "SCSI", + Scsi = "SCSI", /** NVMe disk type */ NVMe = "NVMe", } @@ -2668,10 +2856,10 @@ export enum KnownDiskControllerTypes { * Specifies the disk controller type configured for the VM and * VirtualMachineScaleSet. This property is only supported for virtual machines * whose operating system disk and VM sku supports Generation 2 - * (https://docs.microsoft.com/en-us/azure/virtual-machines/generation-2), please + * (https://learn.microsoft.com/en-us/azure/virtual-machines/generation-2), please * check the HyperVGenerations capability returned as part of VM sku capabilities * in the response of Microsoft.Compute SKUs api for the region contains V2 - * (https://docs.microsoft.com/rest/api/compute/resourceskus/list). For more + * (https://learn.microsoft.com/rest/api/compute/resourceskus/list). For more * information about Disk Controller Types supported please refer to * https://aka.ms/azure-diskcontrollertypes. \ * {@link KnownDiskControllerTypes} can be used interchangeably with DiskControllerTypes, @@ -2751,6 +2939,22 @@ export function apiEntityReferenceDeserializer(item: any): ApiEntityReference { }; } +export function virtualMachineScaleSetNetworkConfigurationArraySerializer( + result: Array, +): any[] { + return result.map((item) => { + return virtualMachineScaleSetNetworkConfigurationSerializer(item); + }); +} + +export function virtualMachineScaleSetNetworkConfigurationArrayDeserializer( + result: Array, +): any[] { + return result.map((item) => { + return virtualMachineScaleSetNetworkConfigurationDeserializer(item); + }); +} + /** Describes a virtual machine scale set network profile's network configurations. */ export interface VirtualMachineScaleSetNetworkConfiguration { /** The network configuration name. */ @@ -2894,6 +3098,22 @@ export function virtualMachineScaleSetNetworkConfigurationDnsSettingsDeserialize }; } +export function virtualMachineScaleSetIPConfigurationArraySerializer( + result: Array, +): any[] { + return result.map((item) => { + return virtualMachineScaleSetIPConfigurationSerializer(item); + }); +} + +export function virtualMachineScaleSetIPConfigurationArrayDeserializer( + result: Array, +): any[] { + return result.map((item) => { + return virtualMachineScaleSetIPConfigurationDeserializer(item); + }); +} + /** Describes a virtual machine scale set network profile's IP configuration. */ export interface VirtualMachineScaleSetIPConfiguration { /** The IP configuration name. */ @@ -3201,6 +3421,22 @@ export enum KnownDomainNameLabelScopeTypes { */ export type DomainNameLabelScopeTypes = string; +export function virtualMachineScaleSetIpTagArraySerializer( + result: Array, +): any[] { + return result.map((item) => { + return virtualMachineScaleSetIpTagSerializer(item); + }); +} + +export function virtualMachineScaleSetIpTagArrayDeserializer( + result: Array, +): any[] { + return result.map((item) => { + return virtualMachineScaleSetIpTagDeserializer(item); + }); +} + /** Contains the IP tag associated with the public IP address. */ export interface VirtualMachineScaleSetIpTag { /** IP tag type. Example: FirstPartyUsage. */ @@ -3220,22 +3456,6 @@ export function virtualMachineScaleSetIpTagDeserializer(item: any): VirtualMachi }; } -export function virtualMachineScaleSetIpTagArraySerializer( - result: Array, -): any[] { - return result.map((item) => { - return virtualMachineScaleSetIpTagSerializer(item); - }); -} - -export function virtualMachineScaleSetIpTagArrayDeserializer( - result: Array, -): any[] { - return result.map((item) => { - return virtualMachineScaleSetIpTagDeserializer(item); - }); -} - /** * Available from Api-Version 2017-03-30 onwards, it represents whether the * specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible @@ -3348,22 +3568,6 @@ export function subResourceArrayDeserializer(result: Array): any[] }); } -export function virtualMachineScaleSetIPConfigurationArraySerializer( - result: Array, -): any[] { - return result.map((item) => { - return virtualMachineScaleSetIPConfigurationSerializer(item); - }); -} - -export function virtualMachineScaleSetIPConfigurationArrayDeserializer( - result: Array, -): any[] { - return result.map((item) => { - return virtualMachineScaleSetIPConfigurationDeserializer(item); - }); -} - /** * Specifies whether the Auxiliary mode is enabled for the Network Interface * resource. @@ -3420,22 +3624,6 @@ export enum KnownNetworkInterfaceAuxiliarySku { */ export type NetworkInterfaceAuxiliarySku = string; -export function virtualMachineScaleSetNetworkConfigurationArraySerializer( - result: Array, -): any[] { - return result.map((item) => { - return virtualMachineScaleSetNetworkConfigurationSerializer(item); - }); -} - -export function virtualMachineScaleSetNetworkConfigurationArrayDeserializer( - result: Array, -): any[] { - return result.map((item) => { - return virtualMachineScaleSetNetworkConfigurationDeserializer(item); - }); -} - /** * specifies the Microsoft.Network API version used when creating networking * resources in the Network Interface Configurations for Virtual Machine Scale Set @@ -3758,6 +3946,22 @@ export function virtualMachineScaleSetExtensionProfileDeserializer( }; } +export function virtualMachineScaleSetExtensionArraySerializer( + result: Array, +): any[] { + return result.map((item) => { + return virtualMachineScaleSetExtensionSerializer(item); + }); +} + +export function virtualMachineScaleSetExtensionArrayDeserializer( + result: Array, +): any[] { + return result.map((item) => { + return virtualMachineScaleSetExtensionDeserializer(item); + }); +} + /** Describes a Virtual Machine Scale Set Extension. */ export interface VirtualMachineScaleSetExtension { /** Resource Id */ @@ -3917,22 +4121,6 @@ export function keyVaultSecretReferenceDeserializer(item: any): KeyVaultSecretRe }; } -export function virtualMachineScaleSetExtensionArraySerializer( - result: Array, -): any[] { - return result.map((item) => { - return virtualMachineScaleSetExtensionSerializer(item); - }); -} - -export function virtualMachineScaleSetExtensionArrayDeserializer( - result: Array, -): any[] { - return result.map((item) => { - return virtualMachineScaleSetExtensionDeserializer(item); - }); -} - /** Specifies Scheduled Event related configurations. */ export interface ScheduledEventsProfile { /** Specifies Terminate Scheduled Event related configurations. */ @@ -3948,7 +4136,7 @@ export function scheduledEventsProfileSerializer(item: ScheduledEventsProfile): : terminateNotificationProfileSerializer(item["terminateNotificationProfile"]), osImageNotificationProfile: !item["osImageNotificationProfile"] ? item["osImageNotificationProfile"] - : oSImageNotificationProfileSerializer(item["osImageNotificationProfile"]), + : osImageNotificationProfileSerializer(item["osImageNotificationProfile"]), }; } @@ -3959,7 +4147,7 @@ export function scheduledEventsProfileDeserializer(item: any): ScheduledEventsPr : terminateNotificationProfileDeserializer(item["terminateNotificationProfile"]), osImageNotificationProfile: !item["osImageNotificationProfile"] ? item["osImageNotificationProfile"] - : oSImageNotificationProfileDeserializer(item["osImageNotificationProfile"]), + : osImageNotificationProfileDeserializer(item["osImageNotificationProfile"]), }; } @@ -4000,11 +4188,11 @@ export interface OSImageNotificationProfile { enable?: boolean; } -export function oSImageNotificationProfileSerializer(item: OSImageNotificationProfile): any { +export function osImageNotificationProfileSerializer(item: OSImageNotificationProfile): any { return { notBeforeTimeout: item["notBeforeTimeout"], enable: item["enable"] }; } -export function oSImageNotificationProfileDeserializer(item: any): OSImageNotificationProfile { +export function osImageNotificationProfileDeserializer(item: any): OSImageNotificationProfile { return { notBeforeTimeout: item["notBeforeTimeout"], enable: item["enable"], @@ -4051,7 +4239,7 @@ export function applicationProfileSerializer(item: ApplicationProfile): any { return { galleryApplications: !item["galleryApplications"] ? item["galleryApplications"] - : vMGalleryApplicationArraySerializer(item["galleryApplications"]), + : vmGalleryApplicationArraySerializer(item["galleryApplications"]), }; } @@ -4059,10 +4247,22 @@ export function applicationProfileDeserializer(item: any): ApplicationProfile { return { galleryApplications: !item["galleryApplications"] ? item["galleryApplications"] - : vMGalleryApplicationArrayDeserializer(item["galleryApplications"]), + : vmGalleryApplicationArrayDeserializer(item["galleryApplications"]), }; } +export function vmGalleryApplicationArraySerializer(result: Array): any[] { + return result.map((item) => { + return vmGalleryApplicationSerializer(item); + }); +} + +export function vmGalleryApplicationArrayDeserializer(result: Array): any[] { + return result.map((item) => { + return vmGalleryApplicationDeserializer(item); + }); +} + /** * Specifies the required information to reference a compute gallery application * version @@ -4094,7 +4294,7 @@ export interface VMGalleryApplication { enableAutomaticUpgrade?: boolean; } -export function vMGalleryApplicationSerializer(item: VMGalleryApplication): any { +export function vmGalleryApplicationSerializer(item: VMGalleryApplication): any { return { tags: item["tags"], order: item["order"], @@ -4105,7 +4305,7 @@ export function vMGalleryApplicationSerializer(item: VMGalleryApplication): any }; } -export function vMGalleryApplicationDeserializer(item: any): VMGalleryApplication { +export function vmGalleryApplicationDeserializer(item: any): VMGalleryApplication { return { tags: item["tags"], order: item["order"], @@ -4116,18 +4316,6 @@ export function vMGalleryApplicationDeserializer(item: any): VMGalleryApplicatio }; } -export function vMGalleryApplicationArraySerializer(result: Array): any[] { - return result.map((item) => { - return vMGalleryApplicationSerializer(item); - }); -} - -export function vMGalleryApplicationArrayDeserializer(result: Array): any[] { - return result.map((item) => { - return vMGalleryApplicationDeserializer(item); - }); -} - /** Specifies the hardware settings for the virtual machine scale set. */ export interface VirtualMachineScaleSetHardwareProfile { /** @@ -4144,7 +4332,7 @@ export function virtualMachineScaleSetHardwareProfileSerializer( return { vmSizeProperties: !item["vmSizeProperties"] ? item["vmSizeProperties"] - : vMSizePropertiesSerializer(item["vmSizeProperties"]), + : vmSizePropertiesSerializer(item["vmSizeProperties"]), }; } @@ -4154,7 +4342,7 @@ export function virtualMachineScaleSetHardwareProfileDeserializer( return { vmSizeProperties: !item["vmSizeProperties"] ? item["vmSizeProperties"] - : vMSizePropertiesDeserializer(item["vmSizeProperties"]), + : vmSizePropertiesDeserializer(item["vmSizeProperties"]), }; } @@ -4165,7 +4353,7 @@ export interface VMSizeProperties { * specified in the request body the default behavior is to set it to the value of * vCPUs available for that VM size exposed in api response of [List all available * virtual machine sizes in a - * region](https://docs.microsoft.com/en-us/rest/api/compute/resource-skus/list). + * region](https://learn.microsoft.com/en-us/rest/api/compute/resource-skus/list). */ vCPUsAvailable?: number; /** @@ -4173,20 +4361,20 @@ export interface VMSizeProperties { * in the request body the default behavior is set to the value of vCPUsPerCore * for the VM Size exposed in api response of [List all available virtual machine * sizes in a - * region](https://docs.microsoft.com/en-us/rest/api/compute/resource-skus/list). + * region](https://learn.microsoft.com/en-us/rest/api/compute/resource-skus/list). * **Setting this property to 1 also means that hyper-threading is disabled.** */ vCPUsPerCore?: number; } -export function vMSizePropertiesSerializer(item: VMSizeProperties): any { +export function vmSizePropertiesSerializer(item: VMSizeProperties): any { return { vCPUsAvailable: item["vCPUsAvailable"], vCPUsPerCore: item["vCPUsPerCore"], }; } -export function vMSizePropertiesDeserializer(item: any): VMSizeProperties { +export function vmSizePropertiesDeserializer(item: any): VMSizeProperties { return { vCPUsAvailable: item["vCPUsAvailable"], vCPUsPerCore: item["vCPUsPerCore"], @@ -4259,18 +4447,6 @@ export function securityPostureReferenceDeserializer(item: any): SecurityPosture }; } -export function locationProfileArraySerializer(result: Array): any[] { - return result.map((item) => { - return locationProfileSerializer(item); - }); -} - -export function locationProfileArrayDeserializer(result: Array): any[] { - return result.map((item) => { - return locationProfileDeserializer(item); - }); -} - /** Compute Profile to use for running user's workloads. */ export interface ComputeProfile { /** Base Virtual Machine Profile Properties to be specified according to "specification/compute/resource-manager/Microsoft.Compute/ComputeRP/stable/{computeApiVersion}/virtualMachineScaleSet.json#/definitions/VirtualMachineScaleSetVMProfile" */ @@ -4348,6 +4524,133 @@ export function additionalCapabilitiesDeserializer(item: any): AdditionalCapabil }; } +/** Modes for Compute Fleet. */ +export enum KnownFleetMode { + /** Default. Managed is the default mode for Compute Fleet where VMs are provisioned via VMSS. */ + Managed = "Managed", + /** Instance mode for Compute Fleet will directly provision VM instances. */ + Instance = "Instance", +} + +/** + * Modes for Compute Fleet. \ + * {@link KnownFleetMode} can be used interchangeably with FleetMode, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **Managed**: Default. Managed is the default mode for Compute Fleet where VMs are provisioned via VMSS. \ + * **Instance**: Instance mode for Compute Fleet will directly provision VM instances. + */ +export type FleetMode = string; + +/** Capacity types for Compute Fleet. */ +export enum KnownCapacityType { + /** Default. VM is the default capacity type for Compute Fleet where Fleet capacity is provisioned in terms of VMs. */ + VM = "VM", + /** + * VCpu is the capacity type for Compute Fleet where Fleet capacity is provisioned in terms of VCpus. + * If VCpu capacity is not exactly divisible by VCpu count in VMSizes, Fleet capacity in VCpus will be overprovisioned by default. + */ + VCpu = "VCpu", +} + +/** + * Capacity types for Compute Fleet. \ + * {@link KnownCapacityType} can be used interchangeably with CapacityType, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **VM**: Default. VM is the default capacity type for Compute Fleet where Fleet capacity is provisioned in terms of VMs. \ + * **VCpu**: VCpu is the capacity type for Compute Fleet where Fleet capacity is provisioned in terms of VCpus. + * If VCpu capacity is not exactly divisible by VCpu count in VMSizes, Fleet capacity in VCpus will be overprovisioned by default. + */ +export type CapacityType = string; + +/** ZoneAllocationPolicy for Compute Fleet. */ +export interface ZoneAllocationPolicy { + /** Distribution strategy used for zone allocation policy. */ + distributionStrategy: ZoneDistributionStrategy; + /** Zone preferences, required when zone distribution strategy is Prioritized. */ + zonePreferences?: ZonePreference[]; +} + +export function zoneAllocationPolicySerializer(item: ZoneAllocationPolicy): any { + return { + distributionStrategy: item["distributionStrategy"], + zonePreferences: !item["zonePreferences"] + ? item["zonePreferences"] + : zonePreferenceArraySerializer(item["zonePreferences"]), + }; +} + +export function zoneAllocationPolicyDeserializer(item: any): ZoneAllocationPolicy { + return { + distributionStrategy: item["distributionStrategy"], + zonePreferences: !item["zonePreferences"] + ? item["zonePreferences"] + : zonePreferenceArrayDeserializer(item["zonePreferences"]), + }; +} + +/** Distribution strategies for Compute Fleet zone allocation policy. */ +export enum KnownZoneDistributionStrategy { + /** + * Default. Compute Fleet allocates all Fleet capacity within a single zone based on best effort. + * If capacity is not available, Compute Fleet can allocate capacity in different zones. + */ + BestEffortSingleZone = "BestEffortSingleZone", + /** + * Compute Fleet allocates capacity based on zone preferences. + * Higher priority zones are filled first before allocating to lower priority zones. + */ + Prioritized = "Prioritized", +} + +/** + * Distribution strategies for Compute Fleet zone allocation policy. \ + * {@link KnownZoneDistributionStrategy} can be used interchangeably with ZoneDistributionStrategy, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **BestEffortSingleZone**: Default. Compute Fleet allocates all Fleet capacity within a single zone based on best effort. + * If capacity is not available, Compute Fleet can allocate capacity in different zones. \ + * **Prioritized**: Compute Fleet allocates capacity based on zone preferences. + * Higher priority zones are filled first before allocating to lower priority zones. + */ +export type ZoneDistributionStrategy = string; + +export function zonePreferenceArraySerializer(result: Array): any[] { + return result.map((item) => { + return zonePreferenceSerializer(item); + }); +} + +export function zonePreferenceArrayDeserializer(result: Array): any[] { + return result.map((item) => { + return zonePreferenceDeserializer(item); + }); +} + +/** Zone preferences for Compute Fleet zone allocation policy. */ +export interface ZonePreference { + /** Name of the zone. */ + zone: string; + /** + * The rank of the zone. This is used with 'Prioritized' ZoneDistributionStrategy. + * The lower the number, the higher the priority, starting with 0. + * 0 is the highest rank. If not specified, defaults to lowest rank. + */ + rank?: number; +} + +export function zonePreferenceSerializer(item: ZonePreference): any { + return { zone: item["zone"], rank: item["rank"] }; +} + +export function zonePreferenceDeserializer(item: any): ZonePreference { + return { + zone: item["zone"], + rank: item["rank"], + }; +} + /** Managed service identity (system assigned and/or user assigned identities) */ export interface ManagedServiceIdentity { /** The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity. */ @@ -4666,6 +4969,14 @@ export function _virtualMachineScaleSetListResultDeserializer( }; } +export function virtualMachineScaleSetArrayDeserializer( + result: Array, +): any[] { + return result.map((item) => { + return virtualMachineScaleSetDeserializer(item); + }); +} + /** An AzureFleet's virtualMachineScaleSet */ export interface VirtualMachineScaleSet { /** @@ -4685,7 +4996,7 @@ export function virtualMachineScaleSetDeserializer(item: any): VirtualMachineSca return { id: item["id"], type: item["type"], - operationStatus: provisioningStateDeserializer(item["operationStatus"]), + operationStatus: item["operationStatus"], error: !item["error"] ? item["error"] : apiErrorDeserializer(item["error"]), }; } @@ -4716,6 +5027,12 @@ export function apiErrorDeserializer(item: any): ApiError { }; } +export function apiErrorBaseArrayDeserializer(result: Array): any[] { + return result.map((item) => { + return apiErrorBaseDeserializer(item); + }); +} + /** API error base. */ export interface ApiErrorBase { /** The error code. */ @@ -4734,12 +5051,6 @@ export function apiErrorBaseDeserializer(item: any): ApiErrorBase { }; } -export function apiErrorBaseArrayDeserializer(result: Array): any[] { - return result.map((item) => { - return apiErrorBaseDeserializer(item); - }); -} - /** Inner error details. */ export interface InnerError { /** The exception type. */ @@ -4755,112 +5066,83 @@ export function innerErrorDeserializer(item: any): InnerError { }; } -export function virtualMachineScaleSetArrayDeserializer( - result: Array, -): any[] { - return result.map((item) => { - return virtualMachineScaleSetDeserializer(item); - }); -} - -/** A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results. */ -export interface _OperationListResult { - /** The Operation items on this page */ - value: Operation[]; - /** The link to the next page of items */ +/** The response of a virtual machine list operation. */ +export interface _VirtualMachineListResult { + /** The Virtual Machine items on this page. */ + value: VirtualMachine[]; + /** The link to the next page of items. */ nextLink?: string; } -export function _operationListResultDeserializer(item: any): _OperationListResult { +export function _virtualMachineListResultDeserializer(item: any): _VirtualMachineListResult { return { - value: operationArrayDeserializer(item["value"]), + value: virtualMachineArrayDeserializer(item["value"]), nextLink: item["nextLink"], }; } -/** Details of a REST API operation, returned from the Resource Provider Operations API */ -export interface Operation { - /** The name of the operation, as per Resource-Based Access Control (RBAC). Examples: "Microsoft.Compute/virtualMachines/write", "Microsoft.Compute/virtualMachines/capture/action" */ - readonly name?: string; - /** Whether the operation applies to data-plane. This is "true" for data-plane operations and "false" for Azure Resource Manager/control-plane operations. */ - readonly isDataAction?: boolean; - /** Localized display information for this particular operation. */ - readonly display?: OperationDisplay; - /** The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" */ - readonly origin?: Origin; - /** Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. */ - actionType?: ActionType; -} - -export function operationDeserializer(item: any): Operation { - return { - name: item["name"], - isDataAction: item["isDataAction"], - display: !item["display"] ? item["display"] : operationDisplayDeserializer(item["display"]), - origin: item["origin"], - actionType: item["actionType"], - }; +export function virtualMachineArrayDeserializer(result: Array): any[] { + return result.map((item) => { + return virtualMachineDeserializer(item); + }); } -/** Localized display information for and operation. */ -export interface OperationDisplay { - /** The localized friendly form of the resource provider name, e.g. "Microsoft Monitoring Insights" or "Microsoft Compute". */ - readonly provider?: string; - /** The localized friendly name of the resource type related to this operation. E.g. "Virtual Machines" or "Job Schedule Collections". */ - readonly resource?: string; - /** The concise, localized friendly name for the operation; suitable for dropdowns. E.g. "Create or Update Virtual Machine", "Restart Virtual Machine". */ - readonly operation?: string; - /** The short, localized friendly description of the operation; suitable for tool tips and detailed views. */ - readonly description?: string; +/** An instant Fleet's virtual machine. */ +export interface VirtualMachine { + /** The compute RP resource id of the virtual machine. subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Compute/virtualMachines/{vmName} */ + readonly id: string; + /** Type of the virtual machine */ + readonly type?: string; + /** This represents the operationStatus of the virtual machine in response to the last operation that was performed on it by Azure Fleet resource. */ + readonly operationStatus: VMOperationStatus; + /** Error information when `operationStatus` is `Failed`. */ + readonly error?: ApiError; } -export function operationDisplayDeserializer(item: any): OperationDisplay { +export function virtualMachineDeserializer(item: any): VirtualMachine { return { - provider: item["provider"], - resource: item["resource"], - operation: item["operation"], - description: item["description"], + id: item["id"], + type: item["type"], + operationStatus: item["operationStatus"], + error: !item["error"] ? item["error"] : apiErrorDeserializer(item["error"]), }; } -/** The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" */ -export enum KnownOrigin { - /** Indicates the operation is initiated by a user. */ - User = "user", - /** Indicates the operation is initiated by a system. */ - System = "system", - /** Indicates the operation is initiated by a user or system. */ - UserSystem = "user,system", -} - -/** - * The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" \ - * {@link KnownOrigin} can be used interchangeably with Origin, - * this enum contains the known values that the service supports. - * ### Known values supported by the service - * **user**: Indicates the operation is initiated by a user. \ - * **system**: Indicates the operation is initiated by a system. \ - * **user,system**: Indicates the operation is initiated by a user or system. - */ -export type Origin = string; - -/** Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. */ -export enum KnownActionType { - /** Actions are for internal-only APIs. */ - Internal = "Internal", +/** Virtual Machine operation status values. */ +export enum KnownVMOperationStatus { + /** Indicates that the virtual machine is either in the process of being created or is scheduled to be created. */ + Creating = "Creating", + /** Indicates that the cancellation request was successful because the virtual machine had not been created yet. */ + Canceled = "Canceled", + /** Indicates that the cancellation request could not be applied because the virtual machine had already been created. */ + CancelFailedStatusUnknown = "CancelFailedStatusUnknown", + /** Indicates that the virtual machine operation failed. */ + Failed = "Failed", + /** Indicates that the virtual machine operation completed successfully. */ + Succeeded = "Succeeded", } /** - * Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. \ - * {@link KnownActionType} can be used interchangeably with ActionType, + * Virtual Machine operation status values. \ + * {@link KnownVMOperationStatus} can be used interchangeably with VMOperationStatus, * this enum contains the known values that the service supports. * ### Known values supported by the service - * **Internal**: Actions are for internal-only APIs. + * **Creating**: Indicates that the virtual machine is either in the process of being created or is scheduled to be created. \ + * **Canceled**: Indicates that the cancellation request was successful because the virtual machine had not been created yet. \ + * **CancelFailedStatusUnknown**: Indicates that the cancellation request could not be applied because the virtual machine had already been created. \ + * **Failed**: Indicates that the virtual machine operation failed. \ + * **Succeeded**: Indicates that the virtual machine operation completed successfully. */ -export type ActionType = string; - -export function operationArrayDeserializer(result: Array): any[] { - return result.map((item) => { - return operationDeserializer(item); - }); +export type VMOperationStatus = string; + +/** Api versions */ +export enum KnownVersions { + /** Private Preview Api version */ + V20231101Preview = "2023-11-01-preview", + /** Public Preview Api version */ + V20240501Preview = "2024-05-01-preview", + /** Public Api version */ + V20241101 = "2024-11-01", + /** Private preview Api version. */ + V20250701Preview = "2025-07-01-preview", } diff --git a/sdk/computefleet/arm-computefleet/src/restorePollerHelpers.ts b/sdk/computefleet/arm-computefleet/src/restorePollerHelpers.ts index bcb23e98509d..f86ace345769 100644 --- a/sdk/computefleet/arm-computefleet/src/restorePollerHelpers.ts +++ b/sdk/computefleet/arm-computefleet/src/restorePollerHelpers.ts @@ -3,10 +3,11 @@ import { AzureFleetClient } from "./azureFleetClient.js"; import { - _fleetsCreateOrUpdateDeserialize, - _fleetsUpdateDeserialize, - _fleetsDeleteDeserialize, -} from "./api/fleets/index.js"; + _cancelDeserialize, + _$deleteDeserialize, + _updateDeserialize, + _createOrUpdateDeserialize, +} from "./api/fleets/operations.js"; import { getLongRunningPoller } from "./static-helpers/pollingHelpers.js"; import { OperationOptions, PathUncheckedResponse } from "@azure-rest/core-client"; import { AbortSignalLike } from "@azure/abort-controller"; @@ -80,20 +81,19 @@ interface DeserializationHelper { } const deserializeMap: Record = { - "PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureFleet/fleets/{fleetName}": + "POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureFleet/fleets/{fleetName}/cancel": + { deserializer: _cancelDeserialize, expectedStatuses: ["202", "200"] }, + "DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureFleet/fleets/{fleetName}": { - deserializer: _fleetsCreateOrUpdateDeserialize, - expectedStatuses: ["200", "201"], + deserializer: _$deleteDeserialize, + expectedStatuses: ["202", "204", "200"], }, "PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureFleet/fleets/{fleetName}": + { deserializer: _updateDeserialize, expectedStatuses: ["200", "202"] }, + "PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureFleet/fleets/{fleetName}": { - deserializer: _fleetsUpdateDeserialize, - expectedStatuses: ["200", "202"], - }, - "DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureFleet/fleets/{fleetName}": - { - deserializer: _fleetsDeleteDeserialize, - expectedStatuses: ["202", "204", "200"], + deserializer: _createOrUpdateDeserialize, + expectedStatuses: ["200", "201", "202"], }, }; diff --git a/sdk/computefleet/arm-computefleet/src/static-helpers/cloudSettingHelpers.ts b/sdk/computefleet/arm-computefleet/src/static-helpers/cloudSettingHelpers.ts new file mode 100644 index 000000000000..e4034348f1fa --- /dev/null +++ b/sdk/computefleet/arm-computefleet/src/static-helpers/cloudSettingHelpers.ts @@ -0,0 +1,33 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +/** An enum to describe Azure Cloud. */ +export enum AzureClouds { + /** Azure public cloud, which is the default cloud for Azure SDKs. */ + AZURE_PUBLIC_CLOUD = "AZURE_PUBLIC_CLOUD", + /** Azure China cloud */ + AZURE_CHINA_CLOUD = "AZURE_CHINA_CLOUD", + /** Azure US government cloud */ + AZURE_US_GOVERNMENT = "AZURE_US_GOVERNMENT", +} + +/** The supported values for cloud setting as a string literal type */ +export type AzureSupportedClouds = `${AzureClouds}`; + +export function getArmEndpoint(cloudSetting?: AzureSupportedClouds): string | undefined { + if (cloudSetting === undefined) { + return undefined; + } + const cloudEndpoints: Record = { + AZURE_CHINA_CLOUD: "https://management.chinacloudapi.cn/", + AZURE_US_GOVERNMENT: "https://management.usgovcloudapi.net/", + AZURE_PUBLIC_CLOUD: "https://management.azure.com/", + }; + if (cloudSetting in cloudEndpoints) { + return cloudEndpoints[cloudSetting]; + } else { + throw new Error( + `Unknown cloud setting: ${cloudSetting}. Please refer to the enum AzureClouds for possible values.`, + ); + } +} diff --git a/sdk/computefleet/arm-computefleet/src/static-helpers/urlTemplate.ts b/sdk/computefleet/arm-computefleet/src/static-helpers/urlTemplate.ts new file mode 100644 index 000000000000..5a7b94d2adc0 --- /dev/null +++ b/sdk/computefleet/arm-computefleet/src/static-helpers/urlTemplate.ts @@ -0,0 +1,198 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +//--------------------- +// interfaces +//--------------------- +interface ValueOptions { + isFirst: boolean; // is first value in the expression + op?: string; // operator + varValue?: any; // variable value + varName?: string; // variable name + modifier?: string; // modifier e.g * + reserved?: boolean; // if true we'll keep reserved words with not encoding +} + +export interface UrlTemplateOptions { + // if set to true, reserved characters will not be encoded + allowReserved?: boolean; +} + +// --------------------- +// helpers +// --------------------- +function encodeComponent(val: string, reserved?: boolean, op?: string) { + return (reserved ?? op === "+") || op === "#" + ? encodeReservedComponent(val) + : encodeRFC3986URIComponent(val); +} + +function encodeReservedComponent(str: string) { + return str + .split(/(%[0-9A-Fa-f]{2})/g) + .map((part) => (!/%[0-9A-Fa-f]/.test(part) ? encodeURI(part) : part)) + .join(""); +} + +function encodeRFC3986URIComponent(str: string) { + return encodeURIComponent(str).replace( + /[!'()*]/g, + (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`, + ); +} + +function isDefined(val: any) { + return val !== undefined && val !== null; +} + +function getNamedAndIfEmpty(op?: string): [boolean, string] { + return [!!op && [";", "?", "&"].includes(op), !!op && ["?", "&"].includes(op) ? "=" : ""]; +} + +function getFirstOrSep(op?: string, isFirst = false) { + if (isFirst) { + return !op || op === "+" ? "" : op; + } else if (!op || op === "+" || op === "#") { + return ","; + } else if (op === "?") { + return "&"; + } else { + return op; + } +} + +function getExpandedValue(option: ValueOptions) { + let isFirst = option.isFirst; + const { op, varName, varValue: value, reserved } = option; + const vals: string[] = []; + const [named, ifEmpty] = getNamedAndIfEmpty(op); + + if (Array.isArray(value)) { + for (const val of value.filter(isDefined)) { + // prepare the following parts: separator, varName, value + vals.push(`${getFirstOrSep(op, isFirst)}`); + if (named && varName) { + vals.push(`${encodeURIComponent(varName)}`); + val === "" ? vals.push(ifEmpty) : vals.push("="); + } + vals.push(encodeComponent(val, reserved, op)); + isFirst = false; + } + } else if (typeof value === "object") { + for (const key of Object.keys(value)) { + const val = value[key]; + if (!isDefined(val)) { + continue; + } + // prepare the following parts: separator, key, value + vals.push(`${getFirstOrSep(op, isFirst)}`); + if (key) { + vals.push(`${encodeURIComponent(key)}`); + named && val === "" ? vals.push(ifEmpty) : vals.push("="); + } + vals.push(encodeComponent(val, reserved, op)); + isFirst = false; + } + } + return vals.join(""); +} + +function getNonExpandedValue(option: ValueOptions) { + const { op, varName, varValue: value, isFirst, reserved } = option; + const vals: string[] = []; + const first = getFirstOrSep(op, isFirst); + const [named, ifEmpty] = getNamedAndIfEmpty(op); + if (named && varName) { + vals.push(encodeComponent(varName, reserved, op)); + if (value === "") { + if (!ifEmpty) { + vals.push(ifEmpty); + } + return !vals.join("") ? undefined : `${first}${vals.join("")}`; + } + vals.push("="); + } + + const items = []; + if (Array.isArray(value)) { + for (const val of value.filter(isDefined)) { + items.push(encodeComponent(val, reserved, op)); + } + } else if (typeof value === "object") { + for (const key of Object.keys(value)) { + if (!isDefined(value[key])) { + continue; + } + items.push(encodeRFC3986URIComponent(key)); + items.push(encodeComponent(value[key], reserved, op)); + } + } + vals.push(items.join(",")); + return !vals.join(",") ? undefined : `${first}${vals.join("")}`; +} + +function getVarValue(option: ValueOptions): string | undefined { + const { op, varName, modifier, isFirst, reserved, varValue: value } = option; + + if (!isDefined(value)) { + return undefined; + } else if (["string", "number", "boolean"].includes(typeof value)) { + let val = value.toString(); + const [named, ifEmpty] = getNamedAndIfEmpty(op); + const vals: string[] = [getFirstOrSep(op, isFirst)]; + if (named && varName) { + // No need to encode varName considering it is already encoded + vals.push(varName); + val === "" ? vals.push(ifEmpty) : vals.push("="); + } + if (modifier && modifier !== "*") { + val = val.substring(0, parseInt(modifier, 10)); + } + vals.push(encodeComponent(val, reserved, op)); + return vals.join(""); + } else if (modifier === "*") { + return getExpandedValue(option); + } else { + return getNonExpandedValue(option); + } +} + +// --------------------------------------------------------------------------------------------------- +// This is an implementation of RFC 6570 URI Template: https://datatracker.ietf.org/doc/html/rfc6570. +// --------------------------------------------------------------------------------------------------- +export function expandUrlTemplate( + template: string, + context: Record, + option?: UrlTemplateOptions, +): string { + return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, (_, expr, text) => { + if (!expr) { + return encodeReservedComponent(text); + } + let op; + if (["+", "#", ".", "/", ";", "?", "&"].includes(expr[0])) { + op = expr[0]; + expr = expr.slice(1); + } + const varList = expr.split(/,/g); + const result = []; + for (const varSpec of varList) { + const varMatch = /([^:\*]*)(?::(\d+)|(\*))?/.exec(varSpec); + if (!varMatch || !varMatch[1]) { + continue; + } + const varValue = getVarValue({ + isFirst: result.length === 0, + op, + varValue: context[varMatch[1]], + varName: varMatch[1], + modifier: varMatch[2] || varMatch[3], + reserved: option?.allowReserved, + }); + if (varValue) { + result.push(varValue); + } + } + return result.join(""); + }); +} diff --git a/sdk/computefleet/arm-computefleet/test/public/computefleet_operations_test.spec.ts b/sdk/computefleet/arm-computefleet/test/public/computefleet_operations_test.spec.ts index 6501ac093d6b..72ee2ad64812 100644 --- a/sdk/computefleet/arm-computefleet/test/public/computefleet_operations_test.spec.ts +++ b/sdk/computefleet/arm-computefleet/test/public/computefleet_operations_test.spec.ts @@ -17,7 +17,7 @@ export const testPollingOptions = { updateIntervalInMs: isPlaybackMode() ? 0 : undefined, }; -describe("AzureFleet test", () => { +describe.skip("AzureFleet test", () => { let recorder: Recorder; let subscriptionId: string; let client: AzureFleetClient; @@ -33,7 +33,7 @@ describe("AzureFleet test", () => { const credential = createTestCredential(); client = new AzureFleetClient(credential, subscriptionId, recorder.configureClientOptions({})); location = "eastus2euap"; - resourceGroup = "myjstest"; + resourceGroup = "SSS3PT_myjstest"; resourcename = "resourcetest"; }); diff --git a/sdk/computefleet/arm-computefleet/test/snippets.spec.ts b/sdk/computefleet/arm-computefleet/test/snippets.spec.ts index ed57c9adf2ae..367fee7c7002 100644 --- a/sdk/computefleet/arm-computefleet/test/snippets.spec.ts +++ b/sdk/computefleet/arm-computefleet/test/snippets.spec.ts @@ -13,11 +13,11 @@ describe("snippets", () => { }); it("ReadmeSampleCreateClient_Browser", async () => { - const subscriptionId = "00000000-0000-0000-0000-000000000000"; const credential = new InteractiveBrowserCredential({ tenantId: "", clientId: "", }); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; const client = new AzureFleetClient(credential, subscriptionId); }); diff --git a/sdk/computefleet/arm-computefleet/tsp-location.yaml b/sdk/computefleet/arm-computefleet/tsp-location.yaml index f37d1c6805d5..d294d47c2e0c 100644 --- a/sdk/computefleet/arm-computefleet/tsp-location.yaml +++ b/sdk/computefleet/arm-computefleet/tsp-location.yaml @@ -1,3 +1,4 @@ directory: specification/azurefleet/AzureFleet.Management -commit: 8ad58020cfafc5ace71d85b31272acf4d6b694d3 +commit: 897f19441a4cc240eba138296f31e50841a6b57f repo: Azure/azure-rest-api-specs +additionalDirectories: diff --git a/sdk/computefleet/arm-computefleet/vitest.config.ts b/sdk/computefleet/arm-computefleet/vitest.config.ts index cc5cd85d4131..0dfa15cc4498 100644 --- a/sdk/computefleet/arm-computefleet/vitest.config.ts +++ b/sdk/computefleet/arm-computefleet/vitest.config.ts @@ -1,4 +1,3 @@ - // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. diff --git a/sdk/computefleet/arm-computefleet/vitest.esm.config.ts b/sdk/computefleet/arm-computefleet/vitest.esm.config.ts index a70127279fc9..5e9735e9b144 100644 --- a/sdk/computefleet/arm-computefleet/vitest.esm.config.ts +++ b/sdk/computefleet/arm-computefleet/vitest.esm.config.ts @@ -1,4 +1,3 @@ - // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. @@ -6,7 +5,4 @@ import { mergeConfig } from "vitest/config"; import vitestConfig from "./vitest.config.ts"; import vitestEsmConfig from "../../../vitest.esm.shared.config.ts"; -export default mergeConfig( - vitestConfig, - vitestEsmConfig -); +export default mergeConfig(vitestConfig, vitestEsmConfig); diff --git a/sdk/computefleet/ci.mgmt.yml b/sdk/computefleet/ci.mgmt.yml index 74e7165ed1a2..edd723b51465 100644 --- a/sdk/computefleet/ci.mgmt.yml +++ b/sdk/computefleet/ci.mgmt.yml @@ -13,7 +13,6 @@ trigger: include: - sdk/computefleet/arm-computefleet - sdk/computefleet/ci.mgmt.yml - pr: branches: include: @@ -27,7 +26,6 @@ pr: include: - sdk/computefleet/arm-computefleet - sdk/computefleet/ci.mgmt.yml - extends: template: /eng/pipelines/templates/stages/archetype-sdk-client.yml parameters: