AzurePrepareApi.ps1
Class AzurePrepareApi : PrepareApi { # properties [string]$AzureSubscriptionId [string]$AzureLocation [string]$TargetResourceGroup [string]$AzureVirtualNetworkResourceGroupName [string]$AzureVirtualNetworkName [string]$AzureVirtualNetworkSubnetName [bool]$UsePublicIP [string]$AzureVmResourceGroup # Default constructor AzurePrepareApi([hashtable]$values) : base ($values) { $this.CopyValues(@{ AzureSubscriptionId = @{ required = $True } AzureLocation = @{ required = $False default = "eastus" } TargetResourceGroup = @{ required = $True } AzureVirtualNetworkResourceGroupName = @{ required = $True } AzureVirtualNetworkName = @{ required = $True } AzureVirtualNetworkSubnetName = @{ required = $True } UsePublicIP = @{ required = $False default = $False } AzureVmResourceGroup = @{ required = $False default = $False } }, $values) } # POST ProcessImage [string]PostProcessImageJob([string]$resourceLocationId) { LogIt "Creating Azure prepare Job for disk resource group $($this.TargetResourceGroup) disk $($this.CloudDiskName)" # Create a jobData object $prepareData = @{ subscriptionId = $this.AzureSubscriptionId azureRegion = $this.AzureLocation ceVmSku = "Standard_D2s_v3" targetDiskResourceGroupName = $this.TargetResourceGroup targetDiskName = $this.CloudDiskName VirtualNetworkResourceGroupName = $this.AzureVirtualNetworkResourceGroupName VirtualNetworkName = $this.AzureVirtualNetworkName VirtualNetworkSubnetName = $this.AzureVirtualNetworkSubnetName UsePublicIP = $this.UsePublicIP resourceGroup = $this.AzureVmResourceGroup } return ([PrepareApi]$this).PostProcessImageJob($resourceLocationId, "Azure", $prepareData) } } Function New-AzurePrepareApi([hashtable]$values) { return [AzurePrepareApi]::New($values) } |