public/New-FreeNasInternalCA.ps1
function New-FreeNasInternalCA { [CmdletBinding(SupportsShouldProcess)] [Alias()] [OutputType([int])] Param ( [Parameter (Mandatory = $true)] [string]$Name, [Parameter (Mandatory = $true)] [String]$CommonName, [Parameter (Mandatory = $True)] [String]$City, [Parameter (Mandatory = $true)] [String]$State, [Parameter (Mandatory = $True)] [String]$Country, [Parameter (Mandatory = $True)] [String]$Email, [Parameter (Mandatory = $True)] [String]$Organization , [Parameter (Mandatory = $True)] [ValidateSet("SHA1", "SHA224", "SHA256", "SHA384", "SHA512")] [String]$DigestAlgo , [Parameter (Mandatory = $True)] [Int]$Liftime , [Parameter (Mandatory = $True)] [ValidateSet("1024", "2048", "4096")] [Int]$KeyLenght ) Begin { } Process { $Uri = "api/v1.0/system/certificateauthority/internal/" $Obj = new-Object -TypeName PSObject $Obj | add-member -name "cert_city" -membertype NoteProperty -Value $City $Obj | add-member -name "cert_email" -membertype NoteProperty -Value $Email $Obj | add-member -name "cert_common" -membertype NoteProperty -Value $CommonName $Obj | add-member -name "cert_country" -membertype NoteProperty -Value $Country $Obj | add-member -name "cert_digest_algorithm" -membertype NoteProperty -Value $DigestAlgo $Obj | add-member -name "cert_lifetime" -membertype NoteProperty -Value $Liftime $Obj | add-member -name "cert_name" -membertype NoteProperty -Value $Name $Obj | add-member -name "cert_organization" -membertype NoteProperty -Value $Organization $Obj | add-member -name "cert_state" -membertype NoteProperty -Value $State $Obj | add-member -name "cert_key_length" -membertype NoteProperty -Value $KeyLenght if ($PSCmdlet.ShouldProcess( "We are update FreeNas system ")) { $response = Invoke-FreeNasRestMethod -Method Post -body $Obj -Uri $uri } } End { } } |