custom/generated/Get-JcSdkAppleMdmDevice.ps1

<#
.Synopsis
Gets a single Apple MDM device.

#### Sample Request
```
  curl -X GET https://console.jumpcloud.com/api/v2/applemdms/{apple_mdm_id}/devices/{device_id} \\
  -H 'accept: application/json' \\
  -H 'x-api-key: {API_KEY}'
```
.Description
Gets a single Apple MDM device.

#### Sample Request
```
  curl -X GET https://console.jumpcloud.com/api/v2/applemdms/{apple_mdm_id}/devices/{device_id} \\
  -H 'accept: application/json' \\
  -H 'x-api-key: {API_KEY}'
```
.Example
PS C:\> Get-JcSdkAppleMdmDevice -AppleMdmId:(<string>) -Filter:(<string[]>) -Sort:(<string[]>) -XTotalCount:(<int>)



---- ----------
CreatedAt String
DepRegistered Boolean
DeviceInformationActivationLockAllowedWhileSupervised Boolean
DeviceInformationAvailableDeviceCapacity System.Nullable[float] DeviceInformationAvailableDeviceCapacity {get;set;}
DeviceInformationDeviceCapacity System.Nullable[float] DeviceInformationDeviceCapacity {get;set;}
DeviceInformationDeviceName String
DeviceInformationIccid String
DeviceInformationImei String
DeviceInformationIsSupervised Boolean
DeviceInformationModelName String
DeviceInformationSecondIccid String
DeviceInformationSecondImei String
DeviceInformationSecondSubscriberCarrierNetwork String
DeviceInformationSubscriberCarrierNetwork String
DeviceInformationWifiMac String
Enrolled Boolean
HasActivationLockBypassCodes Boolean
Id String
OSVersion String
SecurityInfoEnrolledViaDep Boolean
SecurityInfoIsActivationLockManageable Boolean
SecurityInfoIsUserEnrollment Boolean
SecurityInfoPasscodePresent Boolean
SecurityInfoUserApprovedEnrollment Boolean
SerialNumber String
Udid String

 
.Example
PS C:\> Get-JcSdkAppleMdmDevice -AppleMdmId:(<string>) -DeviceId:(<string>)



---- ----------
CreatedAt String
DepRegistered Boolean
DeviceInformationActivationLockAllowedWhileSupervised Boolean
DeviceInformationAvailableDeviceCapacity System.Nullable[float] DeviceInformationAvailableDeviceCapacity {get;set;}
DeviceInformationDeviceCapacity System.Nullable[float] DeviceInformationDeviceCapacity {get;set;}
DeviceInformationDeviceName String
DeviceInformationIccid String
DeviceInformationImei String
DeviceInformationIsSupervised Boolean
DeviceInformationModelName String
DeviceInformationSecondIccid String
DeviceInformationSecondImei String
DeviceInformationSecondSubscriberCarrierNetwork String
DeviceInformationSubscriberCarrierNetwork String
DeviceInformationWifiMac String
Enrolled Boolean
HasActivationLockBypassCodes Boolean
Id String
OSVersion String
SecurityInfoEnrolledViaDep Boolean
SecurityInfoIsActivationLockManageable Boolean
SecurityInfoIsUserEnrollment Boolean
SecurityInfoPasscodePresent Boolean
SecurityInfoUserApprovedEnrollment Boolean
SerialNumber String
Udid String

 

.Inputs
JumpCloud.SDK.V2.Models.IJumpCloudApiIdentity
.Outputs
JumpCloud.SDK.V2.Models.IAppleMdmDevice
.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>:
  [AccountId <String>]:
  [ActivedirectoryId <String>]:
  [AdministratorId <String>]:
  [AgentId <String>]:
  [AppleMdmId <String>]:
  [ApplicationId <String>]: ObjectID of the Application.
  [CommandId <String>]: ObjectID of the Command.
  [CustomEmailType <String>]:
  [DeviceId <String>]:
  [GroupId <String>]: ObjectID of the Policy Group.
  [GsuiteId <String>]: ObjectID of the G Suite instance.
  [Id <String>]: ObjectID of this Active Directory instance.
  [JobId <String>]:
  [LdapserverId <String>]: ObjectID of the LDAP Server.
  [Office365Id <String>]: ObjectID of the Office 365 instance.
  [PolicyId <String>]: ObjectID of the Policy.
  [ProviderId <String>]:
  [PushEndpointId <String>]:
  [RadiusserverId <String>]: ObjectID of the Radius Server.
  [SoftwareAppId <String>]: ObjectID of the Software App.
  [SystemId <String>]: ObjectID of the System.
  [UserId <String>]: ObjectID of the User.
  [WorkdayId <String>]:
.Link
https://github.com/TheJumpCloud/jcapi-powershell/tree/master/SDKs/PowerShell/JumpCloud.SDK.V2/docs/exports/Get-JcSdkAppleMdmDevice.md
#>

 Function Get-JcSdkAppleMdmDevice
{
    [OutputType([JumpCloud.SDK.V2.Models.IAppleMdmDevice])]
    [CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
    Param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [JumpCloud.SDK.V2.Category('Path')]
    [System.String]
    # .
    ${AppleMdmId}, 

    [Parameter(ParameterSetName='Get', Mandatory)]
    [JumpCloud.SDK.V2.Category('Path')]
    [System.String]
    # .
    ${DeviceId}, 

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [JumpCloud.SDK.V2.Category('Path')]
    [JumpCloud.SDK.V2.Models.IJumpCloudApiIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject}, 

    [Parameter(ParameterSetName='List')]
    [AllowEmptyCollection()]
    [JumpCloud.SDK.V2.Category('Query')]
    [System.String[]]
    # A filter to apply to the query.
    #
    # **Filter structure**: `<field>:<operator>:<value>`.
    #
    # **field** = Populate with a valid field from an endpoint response.
    #
    # **operator** = Supported operators are: eq, ne, gt, ge, lt, le, between, search, in.
    # _Note: v1 operators differ from v2 operators._
    #
    # **value** = Populate with the value you want to search for.
    # Is case sensitive.
    # Supports wild cards.
    #
    # **EX:** `GET /api/v2/groups?filter=name:eq:Test+Group`
    ${Filter}, 

    [Parameter(ParameterSetName='List')]
    [AllowEmptyCollection()]
    [JumpCloud.SDK.V2.Category('Query')]
    [System.String[]]
    # The comma separated fields used to sort the collection.
    # Default sort is ascending, prefix with `-` to sort descending.
    ${Sort}, 

    [Parameter(ParameterSetName='List')]
    [JumpCloud.SDK.V2.Category('Header')]
    [System.Int32]
    # .
    ${XTotalCount}, 

    [Parameter(DontShow)]
    [JumpCloud.SDK.V2.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break}, 

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [JumpCloud.SDK.V2.Category('Runtime')]
    [JumpCloud.SDK.V2.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend}, 

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [JumpCloud.SDK.V2.Category('Runtime')]
    [JumpCloud.SDK.V2.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be prepended to the front of the pipeline
    ${HttpPipelinePrepend}, 

    [Parameter(DontShow)]
    [JumpCloud.SDK.V2.Category('Runtime')]
    [System.Uri]
    # The URI for the proxy server to use
    ${Proxy}, 

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [JumpCloud.SDK.V2.Category('Runtime')]
    [System.Management.Automation.PSCredential]
    # Credentials for a proxy server to use for the remote call
    ${ProxyCredential}, 

    [Parameter(DontShow)]
    [JumpCloud.SDK.V2.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}, 

    [Parameter(DontShow)]
    [System.Boolean]
    # Set to $true to return all results. This will overwrite any skip and limit parameter.
    $Paginate = $true
    )
    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
    {
        If ($Paginate -and $PSCmdlet.ParameterSetName -in ('List')) {
            $PSBoundParameters.Remove('Paginate') | Out-Null
            If ([System.String]::IsNullOrEmpty($PSBoundParameters.Limit)) {
                $PSBoundParameters.Add('Limit', 100)
            }
            If ([System.String]::IsNullOrEmpty($PSBoundParameters.Skip)) {
                $PSBoundParameters.Add('Skip', 0)
            }
            Do {
                Write-Debug ("Limit: $($PSBoundParameters.Limit); ");
                Write-Debug ("Skip: $($PSBoundParameters.Skip); ");
                $maxRetries = 4
                $resultCounter = 0
                :retryLoop do {
                    $resultCounter++
                    $Result = JumpCloud.SDK.V2.internal\Get-JcSdkInternalAppleMdmDevice @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)
                Write-Debug ('HttpRequest: ' + $JCHttpRequest);
                Write-Debug ('HttpRequestContent: ' + $JCHttpRequestContent.Result);
                Write-Debug ('HttpResponse: ' + $JCHttpResponse.Result);
                # Write-Debug ('HttpResponseContent: ' + $JCHttpResponseContent.Result);
                $Result = If ('Results' -in $Result.PSObject.Properties.Name) {
                    $Result.results
                } Else {
                    $Result
                }
                If (-not [System.String]::IsNullOrEmpty($Result))
                {
                    $ResultCount = ($Result | Measure-Object).Count;
                    $Results += $Result;
                    $PSBoundParameters.Skip += $ResultCount
                }
        }
            While ($ResultCount -eq $PSBoundParameters.Limit -and -not [System.String]::IsNullOrEmpty($Result))
        } Else {
            $PSBoundParameters.Remove('Paginate') | Out-Null
            $maxRetries = 4
            $resultCounter = 0
            :retryLoop do {
                $resultCounter++
                $Result = JumpCloud.SDK.V2.internal\Get-JcSdkInternalAppleMdmDevice @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)
            Write-Debug ('HttpRequest: ' + $JCHttpRequest);
            Write-Debug ('HttpRequestContent: ' + $JCHttpRequestContent.Result);
            Write-Debug ('HttpResponse: ' + $JCHttpResponse.Result);
            # Write-Debug ('HttpResponseContent: ' + $JCHttpResponseContent.Result);
            $Result = If ('Results' -in $Result.PSObject.Properties.Name) {
                $Result.results
            } Else {
                $Result
            }
            If (-not [System.String]::IsNullOrEmpty($Result)) {
                $Results += $Result;
            }
        }
    }
    End
    {
        # 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
    }
}