/* * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for * license information. * * Code generated by Microsoft (R) AutoRest Code Generator. * Changes may cause incorrect behavior and will be lost if the code is * regenerated. */ import * as msRest from "@azure/ms-rest-js"; import * as msRestAzure from "@azure/ms-rest-azure-js"; import * as Models from "../models"; import * as Mappers from "../models/virtualMachineExtensionsMappers"; import * as Parameters from "../models/parameters"; import { ComputeManagementClientContext } from "../computeManagementClientContext"; /** Class representing a VirtualMachineExtensions. */ export class VirtualMachineExtensions { private readonly client: ComputeManagementClientContext; /** * Create a VirtualMachineExtensions. * @param {ComputeManagementClientContext} client Reference to the service client. */ constructor(client: ComputeManagementClientContext) { this.client = client; } /** * The operation to create or update the extension. * @param resourceGroupName The name of the resource group. * @param vmName The name of the virtual machine where the extension should be created or updated. * @param vmExtensionName The name of the virtual machine extension. * @param extensionParameters Parameters supplied to the Create Virtual Machine Extension * operation. * @param [options] The optional parameters * @returns Promise */ createOrUpdate(resourceGroupName: string, vmName: string, vmExtensionName: string, extensionParameters: Models.VirtualMachineExtension, options?: msRest.RequestOptionsBase): Promise { return this.beginCreateOrUpdate(resourceGroupName,vmName,vmExtensionName,extensionParameters,options) .then(lroPoller => lroPoller.pollUntilFinished()) as Promise; } /** * The operation to update the extension. * @param resourceGroupName The name of the resource group. * @param vmName The name of the virtual machine where the extension should be updated. * @param vmExtensionName The name of the virtual machine extension. * @param extensionParameters Parameters supplied to the Update Virtual Machine Extension * operation. * @param [options] The optional parameters * @returns Promise */ update(resourceGroupName: string, vmName: string, vmExtensionName: string, extensionParameters: Models.VirtualMachineExtensionUpdate, options?: msRest.RequestOptionsBase): Promise { return this.beginUpdate(resourceGroupName,vmName,vmExtensionName,extensionParameters,options) .then(lroPoller => lroPoller.pollUntilFinished()) as Promise; } /** * The operation to delete the extension. * @param resourceGroupName The name of the resource group. * @param vmName The name of the virtual machine where the extension should be deleted. * @param vmExtensionName The name of the virtual machine extension. * @param [options] The optional parameters * @returns Promise */ deleteMethod(resourceGroupName: string, vmName: string, vmExtensionName: string, options?: msRest.RequestOptionsBase): Promise { return this.beginDeleteMethod(resourceGroupName,vmName,vmExtensionName,options) .then(lroPoller => lroPoller.pollUntilFinished()) as Promise; } /** * The operation to get the extension. * @param resourceGroupName The name of the resource group. * @param vmName The name of the virtual machine containing the extension. * @param vmExtensionName The name of the virtual machine extension. * @param [options] The optional parameters * @returns Promise */ get(resourceGroupName: string, vmName: string, vmExtensionName: string, options?: Models.VirtualMachineExtensionsGetOptionalParams): Promise; /** * @param resourceGroupName The name of the resource group. * @param vmName The name of the virtual machine containing the extension. * @param vmExtensionName The name of the virtual machine extension. * @param callback The callback */ get(resourceGroupName: string, vmName: string, vmExtensionName: string, callback: msRest.ServiceCallback): void; /** * @param resourceGroupName The name of the resource group. * @param vmName The name of the virtual machine containing the extension. * @param vmExtensionName The name of the virtual machine extension. * @param options The optional parameters * @param callback The callback */ get(resourceGroupName: string, vmName: string, vmExtensionName: string, options: Models.VirtualMachineExtensionsGetOptionalParams, callback: msRest.ServiceCallback): void; get(resourceGroupName: string, vmName: string, vmExtensionName: string, options?: Models.VirtualMachineExtensionsGetOptionalParams | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { return this.client.sendOperationRequest( { resourceGroupName, vmName, vmExtensionName, options }, getOperationSpec, callback) as Promise; } /** * The operation to create or update the extension. * @param resourceGroupName The name of the resource group. * @param vmName The name of the virtual machine where the extension should be created or updated. * @param vmExtensionName The name of the virtual machine extension. * @param extensionParameters Parameters supplied to the Create Virtual Machine Extension * operation. * @param [options] The optional parameters * @returns Promise */ beginCreateOrUpdate(resourceGroupName: string, vmName: string, vmExtensionName: string, extensionParameters: Models.VirtualMachineExtension, options?: msRest.RequestOptionsBase): Promise { return this.client.sendLRORequest( { resourceGroupName, vmName, vmExtensionName, extensionParameters, options }, beginCreateOrUpdateOperationSpec, options); } /** * The operation to update the extension. * @param resourceGroupName The name of the resource group. * @param vmName The name of the virtual machine where the extension should be updated. * @param vmExtensionName The name of the virtual machine extension. * @param extensionParameters Parameters supplied to the Update Virtual Machine Extension * operation. * @param [options] The optional parameters * @returns Promise */ beginUpdate(resourceGroupName: string, vmName: string, vmExtensionName: string, extensionParameters: Models.VirtualMachineExtensionUpdate, options?: msRest.RequestOptionsBase): Promise { return this.client.sendLRORequest( { resourceGroupName, vmName, vmExtensionName, extensionParameters, options }, beginUpdateOperationSpec, options); } /** * The operation to delete the extension. * @param resourceGroupName The name of the resource group. * @param vmName The name of the virtual machine where the extension should be deleted. * @param vmExtensionName The name of the virtual machine extension. * @param [options] The optional parameters * @returns Promise */ beginDeleteMethod(resourceGroupName: string, vmName: string, vmExtensionName: string, options?: msRest.RequestOptionsBase): Promise { return this.client.sendLRORequest( { resourceGroupName, vmName, vmExtensionName, options }, beginDeleteMethodOperationSpec, options); } } // Operation Specifications const serializer = new msRest.Serializer(Mappers); const getOperationSpec: msRest.OperationSpec = { httpMethod: "GET", path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions/{vmExtensionName}", urlParameters: [ Parameters.resourceGroupName, Parameters.vmName, Parameters.vmExtensionName, Parameters.subscriptionId ], queryParameters: [ Parameters.expand0, Parameters.apiVersion0 ], headerParameters: [ Parameters.acceptLanguage ], responses: { 200: { bodyMapper: Mappers.VirtualMachineExtension }, default: { bodyMapper: Mappers.CloudError } }, serializer }; const beginCreateOrUpdateOperationSpec: msRest.OperationSpec = { httpMethod: "PUT", path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions/{vmExtensionName}", urlParameters: [ Parameters.resourceGroupName, Parameters.vmName, Parameters.vmExtensionName, Parameters.subscriptionId ], queryParameters: [ Parameters.apiVersion0 ], headerParameters: [ Parameters.acceptLanguage ], requestBody: { parameterPath: "extensionParameters", mapper: { ...Mappers.VirtualMachineExtension, required: true } }, responses: { 200: { bodyMapper: Mappers.VirtualMachineExtension }, 201: { bodyMapper: Mappers.VirtualMachineExtension }, default: { bodyMapper: Mappers.CloudError } }, serializer }; const beginUpdateOperationSpec: msRest.OperationSpec = { httpMethod: "PATCH", path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions/{vmExtensionName}", urlParameters: [ Parameters.resourceGroupName, Parameters.vmName, Parameters.vmExtensionName, Parameters.subscriptionId ], queryParameters: [ Parameters.apiVersion0 ], headerParameters: [ Parameters.acceptLanguage ], requestBody: { parameterPath: "extensionParameters", mapper: { ...Mappers.VirtualMachineExtensionUpdate, required: true } }, responses: { 200: { bodyMapper: Mappers.VirtualMachineExtension }, default: { bodyMapper: Mappers.CloudError } }, serializer }; const beginDeleteMethodOperationSpec: msRest.OperationSpec = { httpMethod: "DELETE", path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions/{vmExtensionName}", urlParameters: [ Parameters.resourceGroupName, Parameters.vmName, Parameters.vmExtensionName, Parameters.subscriptionId ], queryParameters: [ Parameters.apiVersion0 ], headerParameters: [ Parameters.acceptLanguage ], responses: { 200: { bodyMapper: Mappers.OperationStatusResponse }, 202: {}, 204: {}, default: { bodyMapper: Mappers.CloudError } }, serializer };