AzureExportApi.ps1
Class AzureExportApi : ExportApi { # properties [string]$AzureSubscriptionId [string]$AzureLocation [string]$AzureVirtualNetworkResourceGroupName [string]$AzureVirtualNetworkName [string]$AzureVirtualNetworkSubnetName [bool]$UsePublicIP [string]$TargetResourceGroup [string]$PrepareDiskName [string]$CloudCwSecretId [string]$AzureVmResourceGroup # Default constructor AzureExportApi([hashtable]$values, [string]$smb) : base ($values, $smb) { $this.CopyValues(@{ AzureSubscriptionId = @{ required = $True } AzureLocation = @{ required = $False default = "eastus" } AzureVirtualNetworkResourceGroupName = @{ required = $True } AzureVirtualNetworkName = @{ required = $True } AzureVirtualNetworkSubnetName = @{ required = $True } UsePublicIP = @{ required = $False default = $False } TargetResourceGroup = @{ required = $True } CloudCwSecretId = @{ required = $True } PrepareDiskName = @{ required = $True } AzureVmResourceGroup = @{ required = $False default = $False } }, $values) } # POST ProcessImage [string]ExportImageJob([string]$resourceLocationId, [bool]$overwrite, [bool]$thinProvision) { $exportData = @{ platformCredentialId = $this.CloudCwSecretId subscriptionId = $this.AzureSubscriptionId azureRegion = $this.AzureLocation targetDiskResourceGroupName = $this.TargetResourceGroup targetDiskName = $this.PrepareDiskName VirtualNetworkResourceGroupName = $this.AzureVirtualNetworkResourceGroupName VirtualNetworkName = $this.AzureVirtualNetworkName VirtualNetworkSubnetName = $this.AzureVirtualNetworkSubnetName UsePublicIP = $this.UsePublicIP resourceGroup = $this.AzureVmResourceGroup } return ([ExportApi]$this).ExportImageJob($resourceLocationId, "Azure", $exportData, $overwrite, $thinProvision) } } |