custom/generated/Set-JcSdkSystem.ps1

<#
.Synopsis
This endpoint allows you to update a system.

#### Sample Request
```
curl -X PUT https://console.jumpcloud.com/api/systems/{SystemID} \\
  -H 'Accept: application/json' \\
  -H 'Content-Type: application/json' \\
  -H 'x-api-key: {API_KEY}' \\
  -d '{
\t\"displayName\":\"Name_Update\",
\t\"allowSshPasswordAuthentication\":\"true\",
\t\"allowSshRootLogin\":\"true\",
\t\"allowMultiFactorAuthentication\":\"true\",
\t\"allowPublicKeyAuthentication\":\"false\"
}'
```
.Description
This endpoint allows you to update a system.

#### Sample Request
```
curl -X PUT https://console.jumpcloud.com/api/systems/{SystemID} \\
  -H 'Accept: application/json' \\
  -H 'Content-Type: application/json' \\
  -H 'x-api-key: {API_KEY}' \\
  -d '{
\t\"displayName\":\"Name_Update\",
\t\"allowSshPasswordAuthentication\":\"true\",
\t\"allowSshRootLogin\":\"true\",
\t\"allowMultiFactorAuthentication\":\"true\",
\t\"allowPublicKeyAuthentication\":\"false\"
}'
```
.Example
PS C:\> Set-JcSdkSystem -Id:(<string>) -Body:(<JumpCloud.SDK.V1.Models.Systemput>)



---- ----------
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:\> Set-JcSdkSystem -Id:(<string>) -AgentBoundMessages:(<JumpCloud.SDK.V1.Models.SystemputAgentBoundMessagesItem[]>) -AllowMultiFactorAuthentication:(<switch>) -AllowPublicKeyAuthentication:(<switch>) -AllowSshPasswordAuthentication:(<switch>) -AllowSshRootLogin:(<switch>) -DisplayName:(<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

 

.Inputs
JumpCloud.SDK.V1.Models.IJumpCloudApiIdentity
.Inputs
JumpCloud.SDK.V1.Models.ISystemput
.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.

AGENTBOUNDMESSAGES <ISystemputAgentBoundMessagesItem[]>:
  [Cmd <String>]:

BODY <ISystemput>:
  [AgentBoundMessages <ISystemputAgentBoundMessagesItem[]>]:
    [Cmd <String>]:
  [AllowMultiFactorAuthentication <Boolean?>]:
  [AllowPublicKeyAuthentication <Boolean?>]:
  [AllowSshPasswordAuthentication <Boolean?>]:
  [AllowSshRootLogin <Boolean?>]:
  [DisplayName <String>]:

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/Set-JcSdkSystem.md
#>

 Function Set-JcSdkSystem
{
    [OutputType([JumpCloud.SDK.V1.Models.IJcSystem])]
    [CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
    Param(
    [Parameter(ParameterSetName='Set', Mandatory)]
    [Parameter(ParameterSetName='SetExpanded', Mandatory)]
    [JumpCloud.SDK.V1.Category('Path')]
    [System.String]
    # .
    ${Id}, 

    [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='SetViaIdentityExpanded', 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(ParameterSetName='Set', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)]
    [JumpCloud.SDK.V1.Category('Body')]
    [JumpCloud.SDK.V1.Models.ISystemput]
    # SystemPut
    # To construct, see NOTES section for BODY properties and create a hash table.
    ${Body}, 

    [Parameter(ParameterSetName='SetExpanded')]
    [Parameter(ParameterSetName='SetViaIdentityExpanded')]
    [AllowEmptyCollection()]
    [JumpCloud.SDK.V1.Category('Body')]
    [JumpCloud.SDK.V1.Models.ISystemputAgentBoundMessagesItem[]]
    # .
    # To construct, see NOTES section for AGENTBOUNDMESSAGES properties and create a hash table.
    ${AgentBoundMessages}, 

    [Parameter(ParameterSetName='SetExpanded')]
    [Parameter(ParameterSetName='SetViaIdentityExpanded')]
    [JumpCloud.SDK.V1.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${AllowMultiFactorAuthentication}, 

    [Parameter(ParameterSetName='SetExpanded')]
    [Parameter(ParameterSetName='SetViaIdentityExpanded')]
    [JumpCloud.SDK.V1.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${AllowPublicKeyAuthentication}, 

    [Parameter(ParameterSetName='SetExpanded')]
    [Parameter(ParameterSetName='SetViaIdentityExpanded')]
    [JumpCloud.SDK.V1.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${AllowSshPasswordAuthentication}, 

    [Parameter(ParameterSetName='SetExpanded')]
    [Parameter(ParameterSetName='SetViaIdentityExpanded')]
    [JumpCloud.SDK.V1.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${AllowSshRootLogin}, 

    [Parameter(ParameterSetName='SetExpanded')]
    [Parameter(ParameterSetName='SetViaIdentityExpanded')]
    [JumpCloud.SDK.V1.Category('Body')]
    [System.String]
    # .
    ${DisplayName}, 

    [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\Set-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
    }
}