custom/generated/Remove-JcSdkSystem.ps1
<# .Synopsis This endpoint allows you to delete a system. This command will cause the system to uninstall the JumpCloud agent from its self which can can take about a minute. If the system is not connected to JumpCloud the system record will simply be removed. #### Sample Request ``` curl -X DELETE https://console.jumpcloud.com/api/systems/{SystemID} \\ -H 'Accept: application/json' \\ -H 'Content-Type: application/json' \\ -H 'x-api-key: {API_KEY}' ``` .Description This endpoint allows you to delete a system. This command will cause the system to uninstall the JumpCloud agent from its self which can can take about a minute. If the system is not connected to JumpCloud the system record will simply be removed. #### Sample Request ``` curl -X DELETE https://console.jumpcloud.com/api/systems/{SystemID} \\ -H 'Accept: application/json' \\ -H 'Content-Type: application/json' \\ -H 'x-api-key: {API_KEY}' ``` .Example PS C:\> Remove-JcSdkSystem -Id:(<string>) ---- ---------- Active Boolean AgentVersion String AllowMultiFactorAuthentication Boolean AllowPublicKeyAuthentication Boolean AllowSshPasswordAuthentication Boolean AllowSshRootLogin Boolean AmazonInstanceId String Arch String ArchFamily String AzureAdJoined Boolean BuiltInCommands JumpCloud.SDK.V1.Models.JcSystemBuiltInCommandsItem[] ConnectionHistory JumpCloud.SDK.V1.Models.JcSystemConnectionHistoryItem[] Created Datetime Description String DesktopCapable Boolean DisplayManager String DisplayName String DomainInfoDomainName String DomainInfoPartOfDomain Boolean FdeActive Boolean FdeKeyPresent Boolean FileSystem String HasServiceAccount Boolean Hostname String HwVendor String Id String IsPolicyBound Boolean LastContact Datetime MdmDep Boolean MdmProfileIdentifier String MdmProviderId String MdmUserApproved Boolean MdmVendor String ModifySshdConfig Boolean NetworkInterfaces JumpCloud.SDK.V1.Models.JcSystemNetworkInterfacesItem[] Organization String OS String OSFamily String OSVersionDetailDistributionName String OSVersionDetailMajor String OSVersionDetailMajorNumber Int OSVersionDetailMinor String OSVersionDetailMinorNumber Int OSVersionDetailOsname String OSVersionDetailPatch String OSVersionDetailPatchNumber Int OSVersionDetailReleaseName String OSVersionDetailRevision String OSVersionDetailVersion String PolicyStatDuplicate Int PolicyStatFailed Int PolicyStatPending Int PolicyStatSuccess Int PolicyStatTotal Int PolicyStatUnsupportedOS Int ProvisionerId String ProvisionerType String RemoteIP String SecureLoginEnabled Boolean SecureLoginSupported Boolean SerialNumber String ServiceAccountStateHasSecureToken Boolean ServiceAccountStatePasswordApfsValid Boolean ServiceAccountStatePasswordOdValid Boolean SshdParams JumpCloud.SDK.V1.Models.JcSystemSshdParamsItem[] SshRootEnabled Boolean SystemInsightState String SystemTimezone Int TemplateName String UserMetrics JumpCloud.SDK.V1.Models.JcSystemUserMetricsItem[] Version String WindowUpn String .Example PS C:\> {{ Add code here }} {{ Add output here }} .Inputs JumpCloud.SDK.V1.Models.IJumpCloudApiIdentity .Outputs JumpCloud.SDK.V1.Models.IJcSystem .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. INPUTOBJECT <IJumpCloudApiIdentity>: [Id <String>]: [SystemId <String>]: [SystemuserId <String>]: [Triggername <String>]: .Link https://github.com/TheJumpCloud/jcapi-powershell/tree/master/SDKs/PowerShell/JumpCloud.SDK.V1/docs/exports/Remove-JcSdkSystem.md #> Function Remove-JcSdkSystem { [OutputType([JumpCloud.SDK.V1.Models.IJcSystem])] [CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] Param( [Parameter(ParameterSetName='Delete', Mandatory)] [JumpCloud.SDK.V1.Category('Path')] [System.String] # . ${Id}, [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] [JumpCloud.SDK.V1.Category('Path')] [JumpCloud.SDK.V1.Models.IJumpCloudApiIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, [Parameter(DontShow)] [JumpCloud.SDK.V1.Category('Runtime')] [System.Management.Automation.SwitchParameter] # Wait for .NET debugger to attach ${Break}, [Parameter(DontShow)] [ValidateNotNull()] [JumpCloud.SDK.V1.Category('Runtime')] [JumpCloud.SDK.V1.Runtime.SendAsyncStep[]] # SendAsync Pipeline Steps to be appended to the front of the pipeline ${HttpPipelineAppend}, [Parameter(DontShow)] [ValidateNotNull()] [JumpCloud.SDK.V1.Category('Runtime')] [JumpCloud.SDK.V1.Runtime.SendAsyncStep[]] # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, [Parameter(DontShow)] [JumpCloud.SDK.V1.Category('Runtime')] [System.Uri] # The URI for the proxy server to use ${Proxy}, [Parameter(DontShow)] [ValidateNotNull()] [JumpCloud.SDK.V1.Category('Runtime')] [System.Management.Automation.PSCredential] # Credentials for a proxy server to use for the remote call ${ProxyCredential}, [Parameter(DontShow)] [JumpCloud.SDK.V1.Category('Runtime')] [System.Management.Automation.SwitchParameter] # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) Begin { $Results = @() $PSBoundParameters.Add('HttpPipelineAppend', { param($req, $callback, $next) # call the next step in the Pipeline $ResponseTask = $next.SendAsync($req, $callback) $global:JCHttpRequest = $req # $global:JCHttpRequestContent = If (-not [System.String]::IsNullOrEmpty($req.Content)) { $req.Content.ReadAsStringAsync() } $global:JCHttpResponse = $ResponseTask # $global:JCHttpResponseContent = If (-not [System.String]::IsNullOrEmpty($ResponseTask.Result.Content)) { $ResponseTask.Result.Content.ReadAsStringAsync() } Return $ResponseTask } ) } Process { $maxRetries = 4 $resultCounter = 0 :retryLoop do { $resultCounter++ $Results = JumpCloud.SDK.V1.internal\Remove-JcSdkInternalSystem @PSBoundParameters -errorAction SilentlyContinue -errorVariable sdkError If ($sdkError){ If ($resultCounter -eq $maxRetries){ throw $sdkError } If ($JCHttpResponse.Result.StatusCode -eq "503") { Write-Warning ("503: Service Unavailable - retrying in " + ($resultCounter * 5) + " seconds.") } else { throw $sdkError } } else { break retryLoop } Start-Sleep -Seconds ($resultCounter * 5) } while ($resultCounter -lt $maxRetries) } End { Write-Debug ('HttpRequest: ' + $JCHttpRequest); # Write-Debug ('HttpRequestContent: ' + $JCHttpRequestContent.Result); Write-Debug ('HttpResponse: ' + $JCHttpResponse.Result); # Write-Debug ('HttpResponseContent: ' + $JCHttpResponseContent.Result); # Clean up global variables $GlobalVars = @('JCHttpRequest', 'JCHttpRequestContent', 'JCHttpResponse', 'JCHttpResponseContent') $GlobalVars | ForEach-Object { If ((Get-Variable -Scope:('Global')).Where( { $_.Name -eq $_ })) { Remove-Variable -Name:($_) -Scope:('Global') } } Return $Results } } |