Private/Initialize-OrganizationID.ps1
function Initialize-OrganizationID { [CmdletBinding()] [OutputType([string])] param( [Parameter(Mandatory, Position = 0)] [AllowEmptyString()] [string]$OrgId, [Parameter()] [bool]$SearchGlobal = $true, [Parameter()] [bool]$SearchEnv = $true ) if ([string]::IsNullOrEmpty($OrgId)) { # Search orgazation id below priorities. # 1. Global variable "OPENAI_ORGANIZATION" if ($SearchGlobal -and $null -ne $global:OPENAI_ORGANIZATION -and $global:OPENAI_ORGANIZATION -is [string]) { $OrgId = [string]$global:OPENAI_ORGANIZATION Write-Verbose -Message 'Organization-ID found in global variable "OPENAI_ORGANIZATION".' } # 2. Environment variable "OPENAI_ORGANIZATION" elseif ($SearchEnv -and $null -ne $env:OPENAI_ORGANIZATION -and $env:OPENAI_ORGANIZATION -is [string]) { $OrgId = [string]$env:OPENAI_ORGANIZATION Write-Verbose -Message 'Organization-ID found in environment variable "OPENAI_ORGANIZATION".' } else { $OrgId = [string]::Empty } } if ([string]::IsNullOrEmpty($OrgId)) { # Write-Verbose -Message ('Organization-ID was not found. Not to be used.') } else { $pattern = switch -CaseSensitive -Wildcard ($OrgId) { 'org-*' { '^(.{6})[a-z0-9\-_.~+/]+([^\s]{2})'; continue } default { '^(.{3})[a-z0-9\-_.~+/]+([^\s]{2})' } } ## Set up masking patterns $MaskPatterns = [System.Collections.Generic.List[Tuple[regex, string]]]::new() $MaskPatterns.Add([Tuple[regex, string]]::new($pattern, '$1***************$2')) $MaskPatterns.Add([Tuple[regex, string]]::new([regex]::Escape($OrgId), '<OpenAI Organization ID>')) Write-Verbose -Message ('Organization-ID to be used is ' + (Get-MaskedString -Input $OrgId -MaskPatterns $MaskPatterns)) } $OrgId } |