modules/Azure/Discovery/Private/NewCIEMAzureResourceType.ps1
|
function NewCIEMAzureResourceType { [CmdletBinding(DefaultParameterSetName = 'ByProperties')] [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseShouldProcessForStateChangingFunctions', '', Justification = 'Private helper, creates a data record in database')] [OutputType('CIEMAzureResourceType[]')] param( [Parameter(Mandatory, ParameterSetName = 'ByProperties')] [string]$Type, [Parameter(Mandatory, ParameterSetName = 'ByProperties')] [string]$ApiSource, [Parameter(ParameterSetName = 'ByProperties')] [string]$GraphTable, [Parameter(ParameterSetName = 'ByProperties')] [int]$ResourceCount = 0, [Parameter(ParameterSetName = 'ByProperties')] [string]$DiscoveredAt, [Parameter(ParameterSetName = 'ByProperties')] [string]$LastCollected, [Parameter(Mandatory, ParameterSetName = 'InputObject', ValueFromPipeline)] [PSObject[]]$InputObject ) process { if ($PSCmdlet.ParameterSetName -eq 'InputObject') { foreach ($obj in $InputObject) { NewCIEMAzureResourceType ` -Type $obj.Type ` -ApiSource $obj.ApiSource ` -GraphTable $obj.GraphTable ` -ResourceCount $obj.ResourceCount ` -DiscoveredAt $obj.DiscoveredAt ` -LastCollected $obj.LastCollected } return } if (-not $DiscoveredAt) { $DiscoveredAt = (Get-Date).ToString('o') } Invoke-CIEMQuery -Query @" INSERT INTO azure_resource_types (type, api_source, graph_table, resource_count, discovered_at, last_collected) VALUES (@type, @api_source, @graph_table, @resource_count, @discovered_at, @last_collected) "@ -Parameters @{ type = $Type api_source = $ApiSource graph_table = $GraphTable resource_count = $ResourceCount discovered_at = $DiscoveredAt last_collected = $LastCollected } -AsNonQuery | Out-Null Get-CIEMAzureResourceType -Type $Type } } |