GcpPrepareApi.ps1
Class GcpPrepareApi : PrepareApi { # properties [string]$GcpZone [string]$VpcNetworkName [string]$VpcNetworkSubnetName [string]$NetworkTags [bool]$UsePublicIP # Default constructor GcpPrepareApi([hashtable]$values) : base ($values) { $this.CopyValues(@{ GcpZone = @{ required = $False default = "us-east4-a" } VpcNetworkName = @{ required = $True } VpcNetworkSubnetName = @{ required = $False default = $Null } UsePublicIP = @{ required = $False default = $False } NetworkTags = @{ required = $False default = $Null } }, $values) } # POST ProcessImage [string]PostProcessImageJob([string]$resourceLocationId) { LogIt "Creating GCP prepare Job" # Create a jobData object $prepareData = @{ zone = $this.GcpZone VpcNetworkName = $this.VpcNetworkName UsePublicIP = $this.UsePublicIP targetImageName = $this.CloudDiskName } if ($this.VpcNetworkSubnetName) { $prepareData["VpcNetworkSubnetName"] = $this.VpcNetworkSubnetName } if ($this.NetworkTags) { $prepareData["NetworkTags"] = $this.VpcNetworkName } return ([PrepareApi]$this).PostProcessImageJob($resourceLocationId, "Gcp", $prepareData) } } Function New-GcpPrepareApi([hashtable]$values) { return [GcpPrepareApi]::New($values) } |