Private/ConvertTo-InfisicalSecretImport.ps1
|
# ConvertTo-InfisicalSecretImport.ps1 # Converts an Infisical API secret import response into an InfisicalSecretImport instance. # Called by: Public secret import functions. # Dependencies: InfisicalSecretImport class function ConvertTo-InfisicalSecretImport { [CmdletBinding()] [OutputType([InfisicalSecretImport])] param( [Parameter(Mandatory)] [PSObject] $ImportData, [Parameter(Mandatory)] [string] $ProjectId, [Parameter()] [string] $Environment, [Parameter()] [string] $Path = '/' ) $import = [InfisicalSecretImport]::new() $import.Id = if ($ImportData -is [hashtable]) { if ($ImportData.ContainsKey('id')) { $ImportData['id'] } else { '' } } else { if ($ImportData.id) { $ImportData.id } else { '' } } $import.ProjectId = $ProjectId $import.Environment = $Environment $import.Path = $Path # Source environment from importEnv object or direct field $hasImportEnv = if ($ImportData -is [hashtable]) { $ImportData.ContainsKey('importEnv') } else { $null -ne $ImportData.PSObject.Properties['importEnv'] } if ($hasImportEnv -and $null -ne $ImportData.importEnv) { $importEnv = $ImportData.importEnv $import.SourceEnvironment = if ($importEnv -is [hashtable]) { $importEnv['slug'] } else { $importEnv.slug } } # Source path from importPath $hasImportPath = if ($ImportData -is [hashtable]) { $ImportData.ContainsKey('importPath') } else { $null -ne $ImportData.PSObject.Properties['importPath'] } $import.SourcePath = if ($hasImportPath -and $ImportData.importPath) { $ImportData.importPath } else { '/' } # Position $import.Position = if ($null -ne $ImportData.position) { [int]$ImportData.position } else { 0 } # IsReplication $hasRepl = if ($ImportData -is [hashtable]) { $ImportData.ContainsKey('isReplication') } else { $null -ne $ImportData.PSObject.Properties['isReplication'] } $import.IsReplication = if ($hasRepl) { [bool]$ImportData.isReplication } else { $false } # Timestamps $parsedDate = [datetime]::MinValue if ($ImportData.createdAt -and [datetime]::TryParse($ImportData.createdAt, [System.Globalization.CultureInfo]::InvariantCulture, [System.Globalization.DateTimeStyles]::None, [ref]$parsedDate)) { $import.CreatedAt = $parsedDate } if ($ImportData.updatedAt -and [datetime]::TryParse($ImportData.updatedAt, [System.Globalization.CultureInfo]::InvariantCulture, [System.Globalization.DateTimeStyles]::None, [ref]$parsedDate)) { $import.UpdatedAt = $parsedDate } return $import } |