exports/ProxyCmdletDefinitions.ps1


# ----------------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.9.3, generator: @autorest/powershell@3.0.498)
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# ----------------------------------------------------------------------------------

<#
.Synopsis
The devices that have the discovered application installed
.Description
The devices that have the discovered application installed
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphManagedDevice
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementdetectedappmanageddevice
#>

function Get-MgDeviceManagementDetectedAppManagedDevice {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphManagedDevice])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of detectedApp
    ${DetectedAppId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of managedDevice
    ${ManagedDeviceId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDetectedAppManagedDevice_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDetectedAppManagedDevice_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDetectedAppManagedDevice_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
The list of detected apps associated with a device.
.Description
The list of detected apps associated with a device.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDetectedApp
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementdetectedapp
#>

function Get-MgDeviceManagementDetectedApp {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDetectedApp])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of detectedApp
    ${DetectedAppId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDetectedApp_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDetectedApp_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDetectedApp_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
The list of device categories with the tenant.
.Description
The list of device categories with the tenant.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCategory
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementdevicecategory
#>

function Get-MgDeviceManagementDeviceCategory {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCategory])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCategory
    ${DeviceCategoryId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCategory_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCategory_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCategory_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
The collection of assignments for this compliance policy.
.Description
The collection of assignments for this compliance policy.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyAssignment
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementdevicecompliancepolicyassignment
#>

function Get-MgDeviceManagementDeviceCompliancePolicyAssignment {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyAssignment])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicyAssignment
    ${DeviceCompliancePolicyAssignmentId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicyAssignment_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicyAssignment_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicyAssignment_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Compliance Setting State Device Summary
.Description
Compliance Setting State Device Summary
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSettingStateDeviceSummary
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementdevicecompliancepolicydevicesettingstatesummary
#>

function Get-MgDeviceManagementDeviceCompliancePolicyDeviceSettingStateSummary {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSettingStateDeviceSummary])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of settingStateDeviceSummary
    ${SettingStateDeviceSummaryId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicyDeviceSettingStateSummary_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicyDeviceSettingStateSummary_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicyDeviceSettingStateSummary_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
The device compliance state summary for this account.
.Description
The device compliance state summary for this account.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyDeviceStateSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementdevicecompliancepolicydevicestatesummary
#>

function Get-MgDeviceManagementDeviceCompliancePolicyDeviceStateSummary {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyDeviceStateSummary])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
param(
    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicyDeviceStateSummary_Get';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
List of DeviceComplianceDeviceStatus.
.Description
List of DeviceComplianceDeviceStatus.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceDeviceStatus
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementdevicecompliancepolicydevicestatuses
#>

function Get-MgDeviceManagementDeviceCompliancePolicyDeviceStatuses {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceDeviceStatus])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceComplianceDeviceStatus
    ${DeviceComplianceDeviceStatusId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicyDeviceStatuses_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicyDeviceStatuses_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicyDeviceStatuses_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Device compliance devices status overview
.Description
Device compliance devices status overview
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceDeviceOverview
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementdevicecompliancepolicydevicestatusoverview
#>

function Get-MgDeviceManagementDeviceCompliancePolicyDeviceStatusOverview {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceDeviceOverview])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicyDeviceStatusOverview_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicyDeviceStatusOverview_GetViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
The list of scheduled action configurations for this compliance policy.
Compliance policy must have one and only one block scheduled action.
.Description
The list of scheduled action configurations for this compliance policy.
Compliance policy must have one and only one block scheduled action.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceActionItem
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementdevicecompliancepolicyscheduledactionforrulescheduledactionconfiguration
#>

function Get-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRuleScheduledActionConfiguration {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceActionItem])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceComplianceActionItem
    ${DeviceComplianceActionItemId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceComplianceScheduledActionForRule
    ${DeviceComplianceScheduledActionForRuleId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRuleScheduledActionConfiguration_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRuleScheduledActionConfiguration_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRuleScheduledActionConfiguration_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
The list of scheduled action per rule for this compliance policy.
This is a required property when creating any individual per-platform compliance policies.
.Description
The list of scheduled action per rule for this compliance policy.
This is a required property when creating any individual per-platform compliance policies.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceScheduledActionForRule
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementdevicecompliancepolicyscheduledactionforrule
#>

function Get-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRule {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceScheduledActionForRule])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceComplianceScheduledActionForRule
    ${DeviceComplianceScheduledActionForRuleId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRule_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRule_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRule_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Not yet documented
.Description
Not yet documented
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceSettingState
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementdevicecompliancepolicysettingstatesummarydevicecompliancesettingstate
#>

function Get-MgDeviceManagementDeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingState {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceSettingState])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicySettingStateSummary
    ${DeviceCompliancePolicySettingStateSummaryId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceComplianceSettingState
    ${DeviceComplianceSettingStateId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingState_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingState_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingState_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
The summary states of compliance policy settings for this account.
.Description
The summary states of compliance policy settings for this account.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicySettingStateSummary
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementdevicecompliancepolicysettingstatesummary
#>

function Get-MgDeviceManagementDeviceCompliancePolicySettingStateSummary {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicySettingStateSummary])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicySettingStateSummary
    ${DeviceCompliancePolicySettingStateSummaryId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicySettingStateSummary_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicySettingStateSummary_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicySettingStateSummary_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
List of DeviceComplianceUserStatus.
.Description
List of DeviceComplianceUserStatus.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceUserStatus
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementdevicecompliancepolicyuserstatuses
#>

function Get-MgDeviceManagementDeviceCompliancePolicyUserStatuses {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceUserStatus])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceComplianceUserStatus
    ${DeviceComplianceUserStatusId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicyUserStatuses_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicyUserStatuses_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicyUserStatuses_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Device compliance users status overview
.Description
Device compliance users status overview
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceUserOverview
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementdevicecompliancepolicyuserstatusoverview
#>

function Get-MgDeviceManagementDeviceCompliancePolicyUserStatusOverview {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceUserOverview])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicyUserStatusOverview_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicyUserStatusOverview_GetViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
The device compliance policies.
.Description
The device compliance policies.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicy
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementdevicecompliancepolicy
#>

function Get-MgDeviceManagementDeviceCompliancePolicy {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicy])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicy_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicy_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceCompliancePolicy_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
The list of assignments for the device configuration profile.
.Description
The list of assignments for the device configuration profile.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationAssignment
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementdeviceconfigurationassignment
#>

function Get-MgDeviceManagementDeviceConfigurationAssignment {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationAssignment])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfigurationAssignment
    ${DeviceConfigurationAssignmentId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceConfigurationAssignment_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceConfigurationAssignment_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceConfigurationAssignment_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Device Configuration Setting State Device Summary
.Description
Device Configuration Setting State Device Summary
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSettingStateDeviceSummary
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementdeviceconfigurationdevicesettingstatesummary
#>

function Get-MgDeviceManagementDeviceConfigurationDeviceSettingStateSummary {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSettingStateDeviceSummary])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of settingStateDeviceSummary
    ${SettingStateDeviceSummaryId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceConfigurationDeviceSettingStateSummary_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceConfigurationDeviceSettingStateSummary_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceConfigurationDeviceSettingStateSummary_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
The device configuration device state summary for this account.
.Description
The device configuration device state summary for this account.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceStateSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementdeviceconfigurationdevicestatesummary
#>

function Get-MgDeviceManagementDeviceConfigurationDeviceStateSummary {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceStateSummary])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
param(
    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceConfigurationDeviceStateSummary_Get';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Device configuration installation status by device.
.Description
Device configuration installation status by device.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceStatus
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementdeviceconfigurationdevicestatuses
#>

function Get-MgDeviceManagementDeviceConfigurationDeviceStatuses {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceStatus])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfigurationDeviceStatus
    ${DeviceConfigurationDeviceStatusId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceConfigurationDeviceStatuses_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceConfigurationDeviceStatuses_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceConfigurationDeviceStatuses_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Device Configuration devices status overview
.Description
Device Configuration devices status overview
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceOverview
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementdeviceconfigurationdevicestatusoverview
#>

function Get-MgDeviceManagementDeviceConfigurationDeviceStatusOverview {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceOverview])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceConfigurationDeviceStatusOverview_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceConfigurationDeviceStatusOverview_GetViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Device configuration installation status by user.
.Description
Device configuration installation status by user.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationUserStatus
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementdeviceconfigurationuserstatuses
#>

function Get-MgDeviceManagementDeviceConfigurationUserStatuses {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationUserStatus])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfigurationUserStatus
    ${DeviceConfigurationUserStatusId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceConfigurationUserStatuses_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceConfigurationUserStatuses_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceConfigurationUserStatuses_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Device Configuration users status overview
.Description
Device Configuration users status overview
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationUserOverview
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementdeviceconfigurationuserstatusoverview
#>

function Get-MgDeviceManagementDeviceConfigurationUserStatusOverview {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationUserOverview])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceConfigurationUserStatusOverview_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceConfigurationUserStatusOverview_GetViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
The device configurations.
.Description
The device configurations.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfiguration
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementdeviceconfiguration
#>

function Get-MgDeviceManagementDeviceConfiguration {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfiguration])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceConfiguration_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceConfiguration_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementDeviceConfiguration_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Device category
.Description
Device category
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCategory
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementmanageddevicecategory
#>

function Get-MgDeviceManagementManagedDeviceCategory {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCategory])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of managedDevice
    ${ManagedDeviceId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementManagedDeviceCategory_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementManagedDeviceCategory_GetViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Device compliance policy states for this device.
.Description
Device compliance policy states for this device.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyState
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementmanageddevicecompliancepolicystate
#>

function Get-MgDeviceManagementManagedDeviceCompliancePolicyState {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyState])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicyState
    ${DeviceCompliancePolicyStateId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of managedDevice
    ${ManagedDeviceId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementManagedDeviceCompliancePolicyState_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementManagedDeviceCompliancePolicyState_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementManagedDeviceCompliancePolicyState_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Device configuration states for this device.
.Description
Device configuration states for this device.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationState
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementmanageddeviceconfigurationstate
#>

function Get-MgDeviceManagementManagedDeviceConfigurationState {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationState])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfigurationState
    ${DeviceConfigurationStateId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of managedDevice
    ${ManagedDeviceId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementManagedDeviceConfigurationState_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementManagedDeviceConfigurationState_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementManagedDeviceConfigurationState_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Device overview
.Description
Device overview
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphManagedDeviceOverview
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementmanageddeviceoverview
#>

function Get-MgDeviceManagementManagedDeviceOverview {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphManagedDeviceOverview])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
param(
    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementManagedDeviceOverview_Get';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
The primary users associated with the managed device.
.Description
The primary users associated with the managed device.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphUser
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementmanageddeviceuser
#>

function Get-MgDeviceManagementManagedDeviceUser {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphUser])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of managedDevice
    ${ManagedDeviceId},

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter()]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter()]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter()]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementManagedDeviceUser_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
The list of managed devices.
.Description
The list of managed devices.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphManagedDevice
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementmanageddevice
#>

function Get-MgDeviceManagementManagedDevice {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphManagedDevice])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of managedDevice
    ${ManagedDeviceId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementManagedDevice_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementManagedDevice_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementManagedDevice_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
The list of localized messages for this Notification Message Template.
.Description
The list of localized messages for this Notification Message Template.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLocalizedNotificationMessage
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementnotificationmessagetemplatelocalizednotificationmessage
#>

function Get-MgDeviceManagementNotificationMessageTemplateLocalizedNotificationMessage {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLocalizedNotificationMessage])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of localizedNotificationMessage
    ${LocalizedNotificationMessageId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of notificationMessageTemplate
    ${NotificationMessageTemplateId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementNotificationMessageTemplateLocalizedNotificationMessage_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementNotificationMessageTemplateLocalizedNotificationMessage_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementNotificationMessageTemplateLocalizedNotificationMessage_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
The Notification Message Templates.
.Description
The Notification Message Templates.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphNotificationMessageTemplate
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementnotificationmessagetemplate
#>

function Get-MgDeviceManagementNotificationMessageTemplate {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphNotificationMessageTemplate])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of notificationMessageTemplate
    ${NotificationMessageTemplateId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementNotificationMessageTemplate_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementNotificationMessageTemplate_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementNotificationMessageTemplate_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
The software update status summary.
.Description
The software update status summary.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSoftwareUpdateStatusSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementsoftwareupdatestatussummary
#>

function Get-MgDeviceManagementSoftwareUpdateStatusSummary {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSoftwareUpdateStatusSummary])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
param(
    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementSoftwareUpdateStatusSummary_Get';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
The list of troubleshooting events for the tenant.
.Description
The list of troubleshooting events for the tenant.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceManagementTroubleshootingEvent
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementtroubleshootingevent
#>

function Get-MgDeviceManagementTroubleshootingEvent {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceManagementTroubleshootingEvent])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceManagementTroubleshootingEvent
    ${DeviceManagementTroubleshootingEventId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementTroubleshootingEvent_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementTroubleshootingEvent_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementTroubleshootingEvent_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
The windows information protection app learning summaries.
.Description
The windows information protection app learning summaries.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWindowsInformationProtectionAppLearningSummary
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementwindowinformationprotectionapplearningsummary
#>

function Get-MgDeviceManagementWindowInformationProtectionAppLearningSummary {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWindowsInformationProtectionAppLearningSummary])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of windowsInformationProtectionAppLearningSummary
    ${WindowsInformationProtectionAppLearningSummaryId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementWindowInformationProtectionAppLearningSummary_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementWindowInformationProtectionAppLearningSummary_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementWindowInformationProtectionAppLearningSummary_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
The windows information protection network learning summaries.
.Description
The windows information protection network learning summaries.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWindowsInformationProtectionNetworkLearningSummary
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagementwindowinformationprotectionnetworklearningsummary
#>

function Get-MgDeviceManagementWindowInformationProtectionNetworkLearningSummary {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWindowsInformationProtectionNetworkLearningSummary])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of windowsInformationProtectionNetworkLearningSummary
    ${WindowsInformationProtectionNetworkLearningSummaryId},

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

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementWindowInformationProtectionNetworkLearningSummary_Get';
            GetViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementWindowInformationProtectionNetworkLearningSummary_GetViaIdentity';
            List = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagementWindowInformationProtectionNetworkLearningSummary_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Get deviceManagement
.Description
Get deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceManagement
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/get-mgdevicemanagement
#>

function Get-MgDeviceManagement {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceManagement])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
param(
    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.DeviceManagement.private\Get-MgDeviceManagement_Get';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to detectedApps for deviceManagement
.Description
Create new navigation property to detectedApps for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDetectedApp
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDetectedApp
.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.
 
BODYPARAMETER <IMicrosoftGraphDetectedApp>: A managed or unmanaged app that is installed on a managed device. Unmanaged apps will only appear for devices marked as corporate owned.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [DeviceCount <Int32?>]: The number of devices that have installed this application
  [DisplayName <String>]: Name of the discovered application. Read-only
  [Platform <DetectedAppPlatformType?>]: Indicates the operating system / platform of the discovered application. Some possible values are Windows, iOS, macOS. The default value is unknown (0).
  [Publisher <String>]: Indicates the publisher of the discovered application. For example: 'Microsoft'. The default value is an empty string.
  [SizeInByte <Int64?>]: Discovered application size in bytes. Read-only
  [Version <String>]: Version of the discovered application. Read-only
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementdetectedapp
#>

function New-MgDeviceManagementDetectedApp {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDetectedApp])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDetectedApp]
    # A managed or unmanaged app that is installed on a managed device.
    # Unmanaged apps will only appear for devices marked as corporate owned.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # The number of devices that have installed this application
    ${DeviceCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Name of the discovered application.
    # Read-only
    ${DisplayName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.DetectedAppPlatformType])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.DetectedAppPlatformType]
    # Indicates the operating system / platform of the discovered application.
    # Some possible values are Windows, iOS, macOS.
    # The default value is unknown (0).
    ${Platform},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Indicates the publisher of the discovered application.
    # For example: 'Microsoft'.
    # The default value is an empty string.
    ${Publisher},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int64]
    # Discovered application size in bytes.
    # Read-only
    ${SizeInByte},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Version of the discovered application.
    # Read-only
    ${Version},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDetectedApp_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDetectedApp_CreateExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to deviceCategories for deviceManagement
.Description
Create new navigation property to deviceCategories for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCategory
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCategory
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceCategory>: Device categories provides a way to organize your devices. Using device categories, company administrators can define their own categories that make sense to their company. These categories can then be applied to a device in the Intune Azure console or selected by a user during device enrollment. You can filter reports and create dynamic Azure Active Directory device groups based on device categories.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [Description <String>]: Optional description for the device category.
  [DisplayName <String>]: Display name for the device category.
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementdevicecategory
#>

function New-MgDeviceManagementDeviceCategory {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCategory])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCategory]
    # Device categories provides a way to organize your devices.
    # Using device categories, company administrators can define their own categories that make sense to their company.
    # These categories can then be applied to a device in the Intune Azure console or selected by a user during device enrollment.
    # You can filter reports and create dynamic Azure Active Directory device groups based on device categories.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Optional description for the device category.
    ${Description},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Display name for the device category.
    ${DisplayName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCategory_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCategory_CreateExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to assignments for deviceManagement
.Description
Create new navigation property to assignments for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyAssignment
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyAssignment
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceCompliancePolicyAssignment>: Device compliance policy assignment.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [Target <IMicrosoftGraphDeviceAndAppManagementAssignmentTarget>]: Base type for assignment targets.
    [(Any) <Object>]: This indicates any property can be added to this object.
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementdevicecompliancepolicyassignment
#>

function New-MgDeviceManagementDeviceCompliancePolicyAssignment {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyAssignment])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyAssignment]
    # Device compliance policy assignment.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Runtime.Info(PossibleTypes=([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceAndAppManagementAssignmentTarget]))]
    [System.Collections.Hashtable]
    # Base type for assignment targets.
    ${Target},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyAssignment_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyAssignment_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyAssignment_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyAssignment_CreateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to deviceSettingStateSummaries for deviceManagement
.Description
Create new navigation property to deviceSettingStateSummaries for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSettingStateDeviceSummary
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSettingStateDeviceSummary
.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.
 
BODYPARAMETER <IMicrosoftGraphSettingStateDeviceSummary>: Device Compilance Policy and Configuration for a Setting State summary
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [CompliantDeviceCount <Int32?>]: Device Compliant count for the setting
  [ConflictDeviceCount <Int32?>]: Device conflict error count for the setting
  [ErrorDeviceCount <Int32?>]: Device error count for the setting
  [InstancePath <String>]: Name of the InstancePath for the setting
  [NonCompliantDeviceCount <Int32?>]: Device NonCompliant count for the setting
  [NotApplicableDeviceCount <Int32?>]: Device Not Applicable count for the setting
  [RemediatedDeviceCount <Int32?>]: Device Compliant count for the setting
  [SettingName <String>]: Name of the setting
  [UnknownDeviceCount <Int32?>]: Device Unkown count for the setting
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementdevicecompliancepolicydevicesettingstatesummary
#>

function New-MgDeviceManagementDeviceCompliancePolicyDeviceSettingStateSummary {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSettingStateDeviceSummary])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSettingStateDeviceSummary]
    # Device Compilance Policy and Configuration for a Setting State summary
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device Compliant count for the setting
    ${CompliantDeviceCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device conflict error count for the setting
    ${ConflictDeviceCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device error count for the setting
    ${ErrorDeviceCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Name of the InstancePath for the setting
    ${InstancePath},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device NonCompliant count for the setting
    ${NonCompliantDeviceCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device Not Applicable count for the setting
    ${NotApplicableDeviceCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device Compliant count for the setting
    ${RemediatedDeviceCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Name of the setting
    ${SettingName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device Unkown count for the setting
    ${UnknownDeviceCount},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyDeviceSettingStateSummary_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyDeviceSettingStateSummary_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyDeviceSettingStateSummary_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyDeviceSettingStateSummary_CreateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to deviceStatuses for deviceManagement
.Description
Create new navigation property to deviceStatuses for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceDeviceStatus
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceDeviceStatus
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceComplianceDeviceStatus>: deviceComplianceDeviceStatus
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ComplianceGracePeriodExpirationDateTime <DateTime?>]: The DateTime when device compliance grace period expires
  [DeviceDisplayName <String>]: Device name of the DevicePolicyStatus.
  [DeviceModel <String>]: The device model that is being reported
  [LastReportedDateTime <DateTime?>]: Last modified date time of the policy report.
  [Status <String>]: complianceStatus
  [UserName <String>]: The User Name that is being reported
  [UserPrincipalName <String>]: UserPrincipalName.
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementdevicecompliancepolicydevicestatuses
#>

function New-MgDeviceManagementDeviceCompliancePolicyDeviceStatuses {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceDeviceStatus])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceDeviceStatus]
    # deviceComplianceDeviceStatus
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The DateTime when device compliance grace period expires
    ${ComplianceGracePeriodExpirationDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Device name of the DevicePolicyStatus.
    ${DeviceDisplayName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The device model that is being reported
    ${DeviceModel},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Last modified date time of the policy report.
    ${LastReportedDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # complianceStatus
    ${Status},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The User Name that is being reported
    ${UserName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # UserPrincipalName.
    ${UserPrincipalName},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyDeviceStatuses_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyDeviceStatuses_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyDeviceStatuses_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyDeviceStatuses_CreateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to scheduledActionConfigurations for deviceManagement
.Description
Create new navigation property to scheduledActionConfigurations for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceActionItem
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceActionItem
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceComplianceActionItem>: Scheduled Action Configuration
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ActionType <DeviceComplianceActionType?>]: Scheduled Action Type Enum
  [GracePeriodHours <Int32?>]: Number of hours to wait till the action will be enforced. Valid values 0 to 8760
  [NotificationMessageCcList <String[]>]: A list of group IDs to speicify who to CC this notification message to.
  [NotificationTemplateId <String>]: What notification Message template to use
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementdevicecompliancepolicyscheduledactionforrulescheduledactionconfiguration
#>

function New-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRuleScheduledActionConfiguration {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceActionItem])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceComplianceScheduledActionForRule
    ${DeviceComplianceScheduledActionForRuleId},

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceActionItem]
    # Scheduled Action Configuration
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.DeviceComplianceActionType])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.DeviceComplianceActionType]
    # Scheduled Action Type Enum
    ${ActionType},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of hours to wait till the action will be enforced.
    # Valid values 0 to 8760
    ${GracePeriodHours},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # A list of group IDs to speicify who to CC this notification message to.
    ${NotificationMessageCcList},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # What notification Message template to use
    ${NotificationTemplateId},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRuleScheduledActionConfiguration_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRuleScheduledActionConfiguration_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRuleScheduledActionConfiguration_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRuleScheduledActionConfiguration_CreateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to scheduledActionsForRule for deviceManagement
.Description
Create new navigation property to scheduledActionsForRule for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceScheduledActionForRule
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceScheduledActionForRule
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceComplianceScheduledActionForRule>: Scheduled Action for Rule
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [RuleName <String>]: Name of the rule which this scheduled action applies to. Currently scheduled actions are created per policy instead of per rule, thus RuleName is always set to default value PasswordRequired.
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementdevicecompliancepolicyscheduledactionforrule
#>

function New-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRule {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceScheduledActionForRule])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceScheduledActionForRule]
    # Scheduled Action for Rule
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Name of the rule which this scheduled action applies to.
    # Currently scheduled actions are created per policy instead of per rule, thus RuleName is always set to default value PasswordRequired.
    ${RuleName},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRule_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRule_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRule_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRule_CreateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to deviceComplianceSettingStates for deviceManagement
.Description
Create new navigation property to deviceComplianceSettingStates for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceSettingState
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceSettingState
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceComplianceSettingState>: Device compliance setting State for a given device.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ComplianceGracePeriodExpirationDateTime <DateTime?>]: The DateTime when device compliance grace period expires
  [DeviceId <String>]: The Device Id that is being reported
  [DeviceModel <String>]: The device model that is being reported
  [DeviceName <String>]: The Device Name that is being reported
  [Setting <String>]: The setting class name and property name.
  [SettingName <String>]: The Setting Name that is being reported
  [State <String>]: complianceStatus
  [UserEmail <String>]: The User email address that is being reported
  [UserId <String>]: The user Id that is being reported
  [UserName <String>]: The User Name that is being reported
  [UserPrincipalName <String>]: The User PrincipalName that is being reported
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementdevicecompliancepolicysettingstatesummarydevicecompliancesettingstate
#>

function New-MgDeviceManagementDeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingState {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceSettingState])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicySettingStateSummary
    ${DeviceCompliancePolicySettingStateSummaryId},

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceSettingState]
    # Device compliance setting State for a given device.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The DateTime when device compliance grace period expires
    ${ComplianceGracePeriodExpirationDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The Device Id that is being reported
    ${DeviceId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The device model that is being reported
    ${DeviceModel},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The Device Name that is being reported
    ${DeviceName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The setting class name and property name.
    ${Setting},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The Setting Name that is being reported
    ${SettingName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # complianceStatus
    ${State},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The User email address that is being reported
    ${UserEmail},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The user Id that is being reported
    ${UserId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The User Name that is being reported
    ${UserName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The User PrincipalName that is being reported
    ${UserPrincipalName},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingState_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingState_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingState_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingState_CreateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to deviceCompliancePolicySettingStateSummaries for deviceManagement
.Description
Create new navigation property to deviceCompliancePolicySettingStateSummaries for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicySettingStateSummary
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicySettingStateSummary
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceCompliancePolicySettingStateSummary>: Device Compilance Policy Setting State summary across the account.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [CompliantDeviceCount <Int32?>]: Number of compliant devices
  [ConflictDeviceCount <Int32?>]: Number of conflict devices
  [ErrorDeviceCount <Int32?>]: Number of error devices
  [NonCompliantDeviceCount <Int32?>]: Number of NonCompliant devices
  [NotApplicableDeviceCount <Int32?>]: Number of not applicable devices
  [PlatformType <PolicyPlatformType?>]: Supported platform types for policies.
  [RemediatedDeviceCount <Int32?>]: Number of remediated devices
  [Setting <String>]: The setting class name and property name.
  [SettingName <String>]: Name of the setting.
  [UnknownDeviceCount <Int32?>]: Number of unknown devices
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementdevicecompliancepolicysettingstatesummary
#>

function New-MgDeviceManagementDeviceCompliancePolicySettingStateSummary {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicySettingStateSummary])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicySettingStateSummary]
    # Device Compilance Policy Setting State summary across the account.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of compliant devices
    ${CompliantDeviceCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of conflict devices
    ${ConflictDeviceCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of error devices
    ${ErrorDeviceCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of NonCompliant devices
    ${NonCompliantDeviceCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of not applicable devices
    ${NotApplicableDeviceCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.PolicyPlatformType])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.PolicyPlatformType]
    # Supported platform types for policies.
    ${PlatformType},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of remediated devices
    ${RemediatedDeviceCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The setting class name and property name.
    ${Setting},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Name of the setting.
    ${SettingName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of unknown devices
    ${UnknownDeviceCount},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicySettingStateSummary_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicySettingStateSummary_CreateExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to userStatuses for deviceManagement
.Description
Create new navigation property to userStatuses for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceUserStatus
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceUserStatus
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceComplianceUserStatus>: deviceComplianceUserStatus
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [DevicesCount <Int32?>]: Devices count for that user.
  [LastReportedDateTime <DateTime?>]: Last modified date time of the policy report.
  [Status <String>]: complianceStatus
  [UserDisplayName <String>]: User name of the DevicePolicyStatus.
  [UserPrincipalName <String>]: UserPrincipalName.
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementdevicecompliancepolicyuserstatuses
#>

function New-MgDeviceManagementDeviceCompliancePolicyUserStatuses {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceUserStatus])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceUserStatus]
    # deviceComplianceUserStatus
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Devices count for that user.
    ${DevicesCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Last modified date time of the policy report.
    ${LastReportedDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # complianceStatus
    ${Status},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # User name of the DevicePolicyStatus.
    ${UserDisplayName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # UserPrincipalName.
    ${UserPrincipalName},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyUserStatuses_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyUserStatuses_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyUserStatuses_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicyUserStatuses_CreateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to deviceCompliancePolicies for deviceManagement
.Description
Create new navigation property to deviceCompliancePolicies for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicy
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicy
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceCompliancePolicy>: This is the base class for Compliance policy. Compliance policies are platform specific and individual per-platform compliance policies inherit from here.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [CreatedDateTime <DateTime?>]: DateTime the object was created.
  [Description <String>]: Admin provided description of the Device Configuration.
  [DeviceStatusOverview <IMicrosoftGraphDeviceComplianceDeviceOverview>]: deviceComplianceDeviceOverview
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique idenfier for an entity. Read-only.
    [ConfigurationVersion <Int32?>]: Version of the policy for that overview
    [ErrorCount <Int32?>]: Number of error devices
    [FailedCount <Int32?>]: Number of failed devices
    [LastUpdateDateTime <DateTime?>]: Last update time
    [NotApplicableCount <Int32?>]: Number of not applicable devices
    [PendingCount <Int32?>]: Number of pending devices
    [SuccessCount <Int32?>]: Number of succeeded devices
  [DisplayName <String>]: Admin provided name of the device configuration.
  [LastModifiedDateTime <DateTime?>]: DateTime the object was last modified.
  [UserStatusOverview <IMicrosoftGraphDeviceComplianceUserOverview>]: deviceComplianceUserOverview
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique idenfier for an entity. Read-only.
    [ConfigurationVersion <Int32?>]: Version of the policy for that overview
    [ErrorCount <Int32?>]: Number of error Users
    [FailedCount <Int32?>]: Number of failed Users
    [LastUpdateDateTime <DateTime?>]: Last update time
    [NotApplicableCount <Int32?>]: Number of not applicable users
    [PendingCount <Int32?>]: Number of pending Users
    [SuccessCount <Int32?>]: Number of succeeded Users
  [Version <Int32?>]: Version of the device configuration.
 
DEVICESTATUSOVERVIEW <IMicrosoftGraphDeviceComplianceDeviceOverview>: deviceComplianceDeviceOverview
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ConfigurationVersion <Int32?>]: Version of the policy for that overview
  [ErrorCount <Int32?>]: Number of error devices
  [FailedCount <Int32?>]: Number of failed devices
  [LastUpdateDateTime <DateTime?>]: Last update time
  [NotApplicableCount <Int32?>]: Number of not applicable devices
  [PendingCount <Int32?>]: Number of pending devices
  [SuccessCount <Int32?>]: Number of succeeded devices
 
USERSTATUSOVERVIEW <IMicrosoftGraphDeviceComplianceUserOverview>: deviceComplianceUserOverview
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ConfigurationVersion <Int32?>]: Version of the policy for that overview
  [ErrorCount <Int32?>]: Number of error Users
  [FailedCount <Int32?>]: Number of failed Users
  [LastUpdateDateTime <DateTime?>]: Last update time
  [NotApplicableCount <Int32?>]: Number of not applicable users
  [PendingCount <Int32?>]: Number of pending Users
  [SuccessCount <Int32?>]: Number of succeeded Users
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementdevicecompliancepolicy
#>

function New-MgDeviceManagementDeviceCompliancePolicy {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicy])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicy]
    # This is the base class for Compliance policy.
    # Compliance policies are platform specific and individual per-platform compliance policies inherit from here.
    #
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # DateTime the object was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Admin provided description of the Device Configuration.
    ${Description},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceDeviceOverview]
    # deviceComplianceDeviceOverview
    # To construct, see NOTES section for DEVICESTATUSOVERVIEW properties and create a hash table.
    ${DeviceStatusOverview},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Admin provided name of the device configuration.
    ${DisplayName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # DateTime the object was last modified.
    ${LastModifiedDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceUserOverview]
    # deviceComplianceUserOverview
    # To construct, see NOTES section for USERSTATUSOVERVIEW properties and create a hash table.
    ${UserStatusOverview},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Version of the device configuration.
    ${Version},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicy_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceCompliancePolicy_CreateExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to assignments for deviceManagement
.Description
Create new navigation property to assignments for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationAssignment
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationAssignment
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceConfigurationAssignment>: The device configuration assignment entity assigns an AAD group to a specific device configuration.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [Target <IMicrosoftGraphDeviceAndAppManagementAssignmentTarget>]: Base type for assignment targets.
    [(Any) <Object>]: This indicates any property can be added to this object.
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementdeviceconfigurationassignment
#>

function New-MgDeviceManagementDeviceConfigurationAssignment {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationAssignment])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationAssignment]
    # The device configuration assignment entity assigns an AAD group to a specific device configuration.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Runtime.Info(PossibleTypes=([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceAndAppManagementAssignmentTarget]))]
    [System.Collections.Hashtable]
    # Base type for assignment targets.
    ${Target},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceConfigurationAssignment_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceConfigurationAssignment_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceConfigurationAssignment_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceConfigurationAssignment_CreateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to deviceSettingStateSummaries for deviceManagement
.Description
Create new navigation property to deviceSettingStateSummaries for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSettingStateDeviceSummary
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSettingStateDeviceSummary
.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.
 
BODYPARAMETER <IMicrosoftGraphSettingStateDeviceSummary>: Device Compilance Policy and Configuration for a Setting State summary
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [CompliantDeviceCount <Int32?>]: Device Compliant count for the setting
  [ConflictDeviceCount <Int32?>]: Device conflict error count for the setting
  [ErrorDeviceCount <Int32?>]: Device error count for the setting
  [InstancePath <String>]: Name of the InstancePath for the setting
  [NonCompliantDeviceCount <Int32?>]: Device NonCompliant count for the setting
  [NotApplicableDeviceCount <Int32?>]: Device Not Applicable count for the setting
  [RemediatedDeviceCount <Int32?>]: Device Compliant count for the setting
  [SettingName <String>]: Name of the setting
  [UnknownDeviceCount <Int32?>]: Device Unkown count for the setting
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementdeviceconfigurationdevicesettingstatesummary
#>

function New-MgDeviceManagementDeviceConfigurationDeviceSettingStateSummary {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSettingStateDeviceSummary])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSettingStateDeviceSummary]
    # Device Compilance Policy and Configuration for a Setting State summary
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device Compliant count for the setting
    ${CompliantDeviceCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device conflict error count for the setting
    ${ConflictDeviceCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device error count for the setting
    ${ErrorDeviceCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Name of the InstancePath for the setting
    ${InstancePath},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device NonCompliant count for the setting
    ${NonCompliantDeviceCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device Not Applicable count for the setting
    ${NotApplicableDeviceCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device Compliant count for the setting
    ${RemediatedDeviceCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Name of the setting
    ${SettingName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device Unkown count for the setting
    ${UnknownDeviceCount},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceConfigurationDeviceSettingStateSummary_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceConfigurationDeviceSettingStateSummary_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceConfigurationDeviceSettingStateSummary_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceConfigurationDeviceSettingStateSummary_CreateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to deviceStatuses for deviceManagement
.Description
Create new navigation property to deviceStatuses for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceStatus
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceStatus
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceConfigurationDeviceStatus>: deviceConfigurationDeviceStatus
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ComplianceGracePeriodExpirationDateTime <DateTime?>]: The DateTime when device compliance grace period expires
  [DeviceDisplayName <String>]: Device name of the DevicePolicyStatus.
  [DeviceModel <String>]: The device model that is being reported
  [LastReportedDateTime <DateTime?>]: Last modified date time of the policy report.
  [Status <String>]: complianceStatus
  [UserName <String>]: The User Name that is being reported
  [UserPrincipalName <String>]: UserPrincipalName.
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementdeviceconfigurationdevicestatuses
#>

function New-MgDeviceManagementDeviceConfigurationDeviceStatuses {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceStatus])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceStatus]
    # deviceConfigurationDeviceStatus
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The DateTime when device compliance grace period expires
    ${ComplianceGracePeriodExpirationDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Device name of the DevicePolicyStatus.
    ${DeviceDisplayName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The device model that is being reported
    ${DeviceModel},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Last modified date time of the policy report.
    ${LastReportedDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # complianceStatus
    ${Status},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The User Name that is being reported
    ${UserName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # UserPrincipalName.
    ${UserPrincipalName},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceConfigurationDeviceStatuses_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceConfigurationDeviceStatuses_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceConfigurationDeviceStatuses_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceConfigurationDeviceStatuses_CreateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to userStatuses for deviceManagement
.Description
Create new navigation property to userStatuses for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationUserStatus
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationUserStatus
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceConfigurationUserStatus>: deviceConfigurationUserStatus
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [DevicesCount <Int32?>]: Devices count for that user.
  [LastReportedDateTime <DateTime?>]: Last modified date time of the policy report.
  [Status <String>]: complianceStatus
  [UserDisplayName <String>]: User name of the DevicePolicyStatus.
  [UserPrincipalName <String>]: UserPrincipalName.
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementdeviceconfigurationuserstatuses
#>

function New-MgDeviceManagementDeviceConfigurationUserStatuses {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationUserStatus])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationUserStatus]
    # deviceConfigurationUserStatus
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Devices count for that user.
    ${DevicesCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Last modified date time of the policy report.
    ${LastReportedDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # complianceStatus
    ${Status},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # User name of the DevicePolicyStatus.
    ${UserDisplayName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # UserPrincipalName.
    ${UserPrincipalName},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceConfigurationUserStatuses_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceConfigurationUserStatuses_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceConfigurationUserStatuses_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceConfigurationUserStatuses_CreateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to deviceConfigurations for deviceManagement
.Description
Create new navigation property to deviceConfigurations for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfiguration
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfiguration
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceConfiguration>: Device Configuration.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [CreatedDateTime <DateTime?>]: DateTime the object was created.
  [Description <String>]: Admin provided description of the Device Configuration.
  [DeviceStatusOverview <IMicrosoftGraphDeviceConfigurationDeviceOverview>]: deviceConfigurationDeviceOverview
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique idenfier for an entity. Read-only.
    [ConfigurationVersion <Int32?>]: Version of the policy for that overview
    [ErrorCount <Int32?>]: Number of error devices
    [FailedCount <Int32?>]: Number of failed devices
    [LastUpdateDateTime <DateTime?>]: Last update time
    [NotApplicableCount <Int32?>]: Number of not applicable devices
    [PendingCount <Int32?>]: Number of pending devices
    [SuccessCount <Int32?>]: Number of succeeded devices
  [DisplayName <String>]: Admin provided name of the device configuration.
  [LastModifiedDateTime <DateTime?>]: DateTime the object was last modified.
  [UserStatusOverview <IMicrosoftGraphDeviceConfigurationUserOverview>]: deviceConfigurationUserOverview
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique idenfier for an entity. Read-only.
    [ConfigurationVersion <Int32?>]: Version of the policy for that overview
    [ErrorCount <Int32?>]: Number of error Users
    [FailedCount <Int32?>]: Number of failed Users
    [LastUpdateDateTime <DateTime?>]: Last update time
    [NotApplicableCount <Int32?>]: Number of not applicable users
    [PendingCount <Int32?>]: Number of pending Users
    [SuccessCount <Int32?>]: Number of succeeded Users
  [Version <Int32?>]: Version of the device configuration.
 
DEVICESTATUSOVERVIEW <IMicrosoftGraphDeviceConfigurationDeviceOverview>: deviceConfigurationDeviceOverview
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ConfigurationVersion <Int32?>]: Version of the policy for that overview
  [ErrorCount <Int32?>]: Number of error devices
  [FailedCount <Int32?>]: Number of failed devices
  [LastUpdateDateTime <DateTime?>]: Last update time
  [NotApplicableCount <Int32?>]: Number of not applicable devices
  [PendingCount <Int32?>]: Number of pending devices
  [SuccessCount <Int32?>]: Number of succeeded devices
 
USERSTATUSOVERVIEW <IMicrosoftGraphDeviceConfigurationUserOverview>: deviceConfigurationUserOverview
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ConfigurationVersion <Int32?>]: Version of the policy for that overview
  [ErrorCount <Int32?>]: Number of error Users
  [FailedCount <Int32?>]: Number of failed Users
  [LastUpdateDateTime <DateTime?>]: Last update time
  [NotApplicableCount <Int32?>]: Number of not applicable users
  [PendingCount <Int32?>]: Number of pending Users
  [SuccessCount <Int32?>]: Number of succeeded Users
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementdeviceconfiguration
#>

function New-MgDeviceManagementDeviceConfiguration {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfiguration])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfiguration]
    # Device Configuration.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # DateTime the object was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Admin provided description of the Device Configuration.
    ${Description},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceOverview]
    # deviceConfigurationDeviceOverview
    # To construct, see NOTES section for DEVICESTATUSOVERVIEW properties and create a hash table.
    ${DeviceStatusOverview},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Admin provided name of the device configuration.
    ${DisplayName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # DateTime the object was last modified.
    ${LastModifiedDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationUserOverview]
    # deviceConfigurationUserOverview
    # To construct, see NOTES section for USERSTATUSOVERVIEW properties and create a hash table.
    ${UserStatusOverview},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Version of the device configuration.
    ${Version},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceConfiguration_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementDeviceConfiguration_CreateExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to deviceCompliancePolicyStates for deviceManagement
.Description
Create new navigation property to deviceCompliancePolicyStates for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyState
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyState
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceCompliancePolicyState>: Device Compliance Policy State for a given device.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [DisplayName <String>]: The name of the policy for this policyBase
  [PlatformType <PolicyPlatformType?>]: Supported platform types for policies.
  [SettingCount <Int32?>]: Count of how many setting a policy holds
  [SettingStates <IMicrosoftGraphDeviceCompliancePolicySettingState[]>]:
    [CurrentValue <String>]: Current value of setting on device
    [ErrorCode <Int64?>]: Error code for the setting
    [ErrorDescription <String>]: Error description
    [InstanceDisplayName <String>]: Name of setting instance that is being reported.
    [Setting <String>]: The setting that is being reported
    [SettingName <String>]: Localized/user friendly setting name that is being reported
    [Sources <IMicrosoftGraphSettingSource[]>]: Contributing policies
      [DisplayName <String>]: Not yet documented
      [Id <String>]: Not yet documented
      [SourceType <String>]: settingSourceType
    [State <String>]: complianceStatus
    [UserEmail <String>]: UserEmail
    [UserId <String>]: UserId
    [UserName <String>]: UserName
    [UserPrincipalName <String>]: UserPrincipalName.
  [State <String>]: complianceStatus
  [Version <Int32?>]: The version of the policy
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
 
SETTINGSTATES <IMicrosoftGraphDeviceCompliancePolicySettingState[]>: .
  [CurrentValue <String>]: Current value of setting on device
  [ErrorCode <Int64?>]: Error code for the setting
  [ErrorDescription <String>]: Error description
  [InstanceDisplayName <String>]: Name of setting instance that is being reported.
  [Setting <String>]: The setting that is being reported
  [SettingName <String>]: Localized/user friendly setting name that is being reported
  [Sources <IMicrosoftGraphSettingSource[]>]: Contributing policies
    [DisplayName <String>]: Not yet documented
    [Id <String>]: Not yet documented
    [SourceType <String>]: settingSourceType
  [State <String>]: complianceStatus
  [UserEmail <String>]: UserEmail
  [UserId <String>]: UserId
  [UserName <String>]: UserName
  [UserPrincipalName <String>]: UserPrincipalName.
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementmanageddevicecompliancepolicystate
#>

function New-MgDeviceManagementManagedDeviceCompliancePolicyState {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyState])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of managedDevice
    ${ManagedDeviceId},

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyState]
    # Device Compliance Policy State for a given device.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The name of the policy for this policyBase
    ${DisplayName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.PolicyPlatformType])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.PolicyPlatformType]
    # Supported platform types for policies.
    ${PlatformType},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Count of how many setting a policy holds
    ${SettingCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicySettingState[]]
    # .
    # To construct, see NOTES section for SETTINGSTATES properties and create a hash table.
    ${SettingStates},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # complianceStatus
    ${State},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # The version of the policy
    ${Version},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementManagedDeviceCompliancePolicyState_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementManagedDeviceCompliancePolicyState_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementManagedDeviceCompliancePolicyState_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementManagedDeviceCompliancePolicyState_CreateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to deviceConfigurationStates for deviceManagement
.Description
Create new navigation property to deviceConfigurationStates for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationState
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationState
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceConfigurationState>: Device Configuration State for a given device.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [DisplayName <String>]: The name of the policy for this policyBase
  [PlatformType <PolicyPlatformType?>]: Supported platform types for policies.
  [SettingCount <Int32?>]: Count of how many setting a policy holds
  [SettingStates <IMicrosoftGraphDeviceConfigurationSettingState[]>]:
    [CurrentValue <String>]: Current value of setting on device
    [ErrorCode <Int64?>]: Error code for the setting
    [ErrorDescription <String>]: Error description
    [InstanceDisplayName <String>]: Name of setting instance that is being reported.
    [Setting <String>]: The setting that is being reported
    [SettingName <String>]: Localized/user friendly setting name that is being reported
    [Sources <IMicrosoftGraphSettingSource[]>]: Contributing policies
      [DisplayName <String>]: Not yet documented
      [Id <String>]: Not yet documented
      [SourceType <String>]: settingSourceType
    [State <String>]: complianceStatus
    [UserEmail <String>]: UserEmail
    [UserId <String>]: UserId
    [UserName <String>]: UserName
    [UserPrincipalName <String>]: UserPrincipalName.
  [State <String>]: complianceStatus
  [Version <Int32?>]: The version of the policy
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
 
SETTINGSTATES <IMicrosoftGraphDeviceConfigurationSettingState[]>: .
  [CurrentValue <String>]: Current value of setting on device
  [ErrorCode <Int64?>]: Error code for the setting
  [ErrorDescription <String>]: Error description
  [InstanceDisplayName <String>]: Name of setting instance that is being reported.
  [Setting <String>]: The setting that is being reported
  [SettingName <String>]: Localized/user friendly setting name that is being reported
  [Sources <IMicrosoftGraphSettingSource[]>]: Contributing policies
    [DisplayName <String>]: Not yet documented
    [Id <String>]: Not yet documented
    [SourceType <String>]: settingSourceType
  [State <String>]: complianceStatus
  [UserEmail <String>]: UserEmail
  [UserId <String>]: UserId
  [UserName <String>]: UserName
  [UserPrincipalName <String>]: UserPrincipalName.
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementmanageddeviceconfigurationstate
#>

function New-MgDeviceManagementManagedDeviceConfigurationState {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationState])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of managedDevice
    ${ManagedDeviceId},

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationState]
    # Device Configuration State for a given device.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The name of the policy for this policyBase
    ${DisplayName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.PolicyPlatformType])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.PolicyPlatformType]
    # Supported platform types for policies.
    ${PlatformType},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Count of how many setting a policy holds
    ${SettingCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationSettingState[]]
    # .
    # To construct, see NOTES section for SETTINGSTATES properties and create a hash table.
    ${SettingStates},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # complianceStatus
    ${State},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # The version of the policy
    ${Version},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementManagedDeviceConfigurationState_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementManagedDeviceConfigurationState_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementManagedDeviceConfigurationState_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementManagedDeviceConfigurationState_CreateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to managedDevices for deviceManagement
.Description
Create new navigation property to managedDevices for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphManagedDevice
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphManagedDevice
.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.
 
BODYPARAMETER <IMicrosoftGraphManagedDevice>: Devices that are managed or pre-enrolled through Intune
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ComplianceState <ComplianceState?>]: Compliance state.
  [ConfigurationManagerClientEnabledFeatures <IMicrosoftGraphConfigurationManagerClientEnabledFeatures>]: configuration Manager client enabled features
    [(Any) <Object>]: This indicates any property can be added to this object.
    [CompliancePolicy <Boolean?>]: Whether compliance policy is managed by Intune
    [DeviceConfiguration <Boolean?>]: Whether device configuration is managed by Intune
    [Inventory <Boolean?>]: Whether inventory is managed by Intune
    [ModernApps <Boolean?>]: Whether modern application is managed by Intune
    [ResourceAccess <Boolean?>]: Whether resource access is managed by Intune
    [WindowsUpdateForBusiness <Boolean?>]: Whether Windows Update for Business is managed by Intune
  [DeviceCategory <IMicrosoftGraphDeviceCategory>]: Device categories provides a way to organize your devices. Using device categories, company administrators can define their own categories that make sense to their company. These categories can then be applied to a device in the Intune Azure console or selected by a user during device enrollment. You can filter reports and create dynamic Azure Active Directory device groups based on device categories.
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique idenfier for an entity. Read-only.
    [Description <String>]: Optional description for the device category.
    [DisplayName <String>]: Display name for the device category.
  [DeviceEnrollmentType <DeviceEnrollmentType?>]: Possible ways of adding a mobile device to management.
  [DeviceHealthAttestationState <IMicrosoftGraphDeviceHealthAttestationState>]: deviceHealthAttestationState
    [(Any) <Object>]: This indicates any property can be added to this object.
    [AttestationIdentityKey <String>]: TWhen an Attestation Identity Key (AIK) is present on a device, it indicates that the device has an endorsement key (EK) certificate.
    [BitLockerStatus <String>]: On or Off of BitLocker Drive Encryption
    [BootAppSecurityVersion <String>]: The security version number of the Boot Application
    [BootDebugging <String>]: When bootDebugging is enabled, the device is used in development and testing
    [BootManagerSecurityVersion <String>]: The security version number of the Boot Application
    [BootManagerVersion <String>]: The version of the Boot Manager
    [BootRevisionListInfo <String>]: The Boot Revision List that was loaded during initial boot on the attested device
    [CodeIntegrity <String>]: When code integrity is enabled, code execution is restricted to integrity verified code
    [CodeIntegrityCheckVersion <String>]: The version of the Boot Manager
    [CodeIntegrityPolicy <String>]: The Code Integrity policy that is controlling the security of the boot environment
    [ContentNamespaceUrl <String>]: The DHA report version. (Namespace version)
    [ContentVersion <String>]: The HealthAttestation state schema version
    [DataExcutionPolicy <String>]: DEP Policy defines a set of hardware and software technologies that perform additional checks on memory
    [DeviceHealthAttestationStatus <String>]: The DHA report version. (Namespace version)
    [EarlyLaunchAntiMalwareDriverProtection <String>]: ELAM provides protection for the computers in your network when they start up
    [HealthAttestationSupportedStatus <String>]: This attribute indicates if DHA is supported for the device
    [HealthStatusMismatchInfo <String>]: This attribute appears if DHA-Service detects an integrity issue
    [IssuedDateTime <DateTime?>]: The DateTime when device was evaluated or issued to MDM
    [LastUpdateDateTime <String>]: The Timestamp of the last update.
    [OperatingSystemKernelDebugging <String>]: When operatingSystemKernelDebugging is enabled, the device is used in development and testing
    [OperatingSystemRevListInfo <String>]: The Operating System Revision List that was loaded during initial boot on the attested device
    [Pcr0 <String>]: The measurement that is captured in PCR[0]
    [PcrHashAlgorithm <String>]: Informational attribute that identifies the HASH algorithm that was used by TPM
    [ResetCount <Int64?>]: The number of times a PC device has hibernated or resumed
    [RestartCount <Int64?>]: The number of times a PC device has rebooted
    [SafeMode <String>]: Safe mode is a troubleshooting option for Windows that starts your computer in a limited state
    [SecureBoot <String>]: When Secure Boot is enabled, the core components must have the correct cryptographic signatures
    [SecureBootConfigurationPolicyFingerPrint <String>]: Fingerprint of the Custom Secure Boot Configuration Policy
    [TestSigning <String>]: When test signing is allowed, the device does not enforce signature validation during boot
    [TpmVersion <String>]: The security version number of the Boot Application
    [VirtualSecureMode <String>]: VSM is a container that protects high value assets from a compromised kernel
    [WindowsPe <String>]: Operating system running with limited services that is used to prepare a computer for Windows
  [DeviceRegistrationState <DeviceRegistrationState?>]: Device registration status.
  [ExchangeAccessState <DeviceManagementExchangeAccessState?>]: Device Exchange Access State.
  [ExchangeAccessStateReason <DeviceManagementExchangeAccessStateReason?>]: Device Exchange Access State Reason.
  [ManagedDeviceName <String>]: Automatically generated name to identify a device. Can be overwritten to a user friendly name.
  [ManagedDeviceOwnerType <ManagedDeviceOwnerType?>]: Owner type of device.
  [ManagementAgent <ManagementAgentType?>]: managementAgentType
  [Notes <String>]: Notes on the device created by IT Admin. Return default value null in LIST managedDevices. Real value only returned in singel device GET call with device id and included in select parameter. Supports: $select. $Search is not supported.
  [PartnerReportedThreatState <ManagedDevicePartnerReportedHealthState?>]: Available health states for the Device Health API
 
CONFIGURATIONMANAGERCLIENTENABLEDFEATURES <IMicrosoftGraphConfigurationManagerClientEnabledFeatures>: configuration Manager client enabled features
  [(Any) <Object>]: This indicates any property can be added to this object.
  [CompliancePolicy <Boolean?>]: Whether compliance policy is managed by Intune
  [DeviceConfiguration <Boolean?>]: Whether device configuration is managed by Intune
  [Inventory <Boolean?>]: Whether inventory is managed by Intune
  [ModernApps <Boolean?>]: Whether modern application is managed by Intune
  [ResourceAccess <Boolean?>]: Whether resource access is managed by Intune
  [WindowsUpdateForBusiness <Boolean?>]: Whether Windows Update for Business is managed by Intune
 
DEVICECATEGORY <IMicrosoftGraphDeviceCategory>: Device categories provides a way to organize your devices. Using device categories, company administrators can define their own categories that make sense to their company. These categories can then be applied to a device in the Intune Azure console or selected by a user during device enrollment. You can filter reports and create dynamic Azure Active Directory device groups based on device categories.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [Description <String>]: Optional description for the device category.
  [DisplayName <String>]: Display name for the device category.
 
DEVICEHEALTHATTESTATIONSTATE <IMicrosoftGraphDeviceHealthAttestationState>: deviceHealthAttestationState
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AttestationIdentityKey <String>]: TWhen an Attestation Identity Key (AIK) is present on a device, it indicates that the device has an endorsement key (EK) certificate.
  [BitLockerStatus <String>]: On or Off of BitLocker Drive Encryption
  [BootAppSecurityVersion <String>]: The security version number of the Boot Application
  [BootDebugging <String>]: When bootDebugging is enabled, the device is used in development and testing
  [BootManagerSecurityVersion <String>]: The security version number of the Boot Application
  [BootManagerVersion <String>]: The version of the Boot Manager
  [BootRevisionListInfo <String>]: The Boot Revision List that was loaded during initial boot on the attested device
  [CodeIntegrity <String>]: When code integrity is enabled, code execution is restricted to integrity verified code
  [CodeIntegrityCheckVersion <String>]: The version of the Boot Manager
  [CodeIntegrityPolicy <String>]: The Code Integrity policy that is controlling the security of the boot environment
  [ContentNamespaceUrl <String>]: The DHA report version. (Namespace version)
  [ContentVersion <String>]: The HealthAttestation state schema version
  [DataExcutionPolicy <String>]: DEP Policy defines a set of hardware and software technologies that perform additional checks on memory
  [DeviceHealthAttestationStatus <String>]: The DHA report version. (Namespace version)
  [EarlyLaunchAntiMalwareDriverProtection <String>]: ELAM provides protection for the computers in your network when they start up
  [HealthAttestationSupportedStatus <String>]: This attribute indicates if DHA is supported for the device
  [HealthStatusMismatchInfo <String>]: This attribute appears if DHA-Service detects an integrity issue
  [IssuedDateTime <DateTime?>]: The DateTime when device was evaluated or issued to MDM
  [LastUpdateDateTime <String>]: The Timestamp of the last update.
  [OperatingSystemKernelDebugging <String>]: When operatingSystemKernelDebugging is enabled, the device is used in development and testing
  [OperatingSystemRevListInfo <String>]: The Operating System Revision List that was loaded during initial boot on the attested device
  [Pcr0 <String>]: The measurement that is captured in PCR[0]
  [PcrHashAlgorithm <String>]: Informational attribute that identifies the HASH algorithm that was used by TPM
  [ResetCount <Int64?>]: The number of times a PC device has hibernated or resumed
  [RestartCount <Int64?>]: The number of times a PC device has rebooted
  [SafeMode <String>]: Safe mode is a troubleshooting option for Windows that starts your computer in a limited state
  [SecureBoot <String>]: When Secure Boot is enabled, the core components must have the correct cryptographic signatures
  [SecureBootConfigurationPolicyFingerPrint <String>]: Fingerprint of the Custom Secure Boot Configuration Policy
  [TestSigning <String>]: When test signing is allowed, the device does not enforce signature validation during boot
  [TpmVersion <String>]: The security version number of the Boot Application
  [VirtualSecureMode <String>]: VSM is a container that protects high value assets from a compromised kernel
  [WindowsPe <String>]: Operating system running with limited services that is used to prepare a computer for Windows
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementmanageddevice
#>

function New-MgDeviceManagementManagedDevice {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphManagedDevice])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphManagedDevice]
    # Devices that are managed or pre-enrolled through Intune
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.ComplianceState])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.ComplianceState]
    # Compliance state.
    ${ComplianceState},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphConfigurationManagerClientEnabledFeatures]
    # configuration Manager client enabled features
    # To construct, see NOTES section for CONFIGURATIONMANAGERCLIENTENABLEDFEATURES properties and create a hash table.
    ${ConfigurationManagerClientEnabledFeatures},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCategory]
    # Device categories provides a way to organize your devices.
    # Using device categories, company administrators can define their own categories that make sense to their company.
    # These categories can then be applied to a device in the Intune Azure console or selected by a user during device enrollment.
    # You can filter reports and create dynamic Azure Active Directory device groups based on device categories.
    # To construct, see NOTES section for DEVICECATEGORY properties and create a hash table.
    ${DeviceCategory},

    [Parameter(ParameterSetName='CreateExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.DeviceEnrollmentType])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.DeviceEnrollmentType]
    # Possible ways of adding a mobile device to management.
    ${DeviceEnrollmentType},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceHealthAttestationState]
    # deviceHealthAttestationState
    # To construct, see NOTES section for DEVICEHEALTHATTESTATIONSTATE properties and create a hash table.
    ${DeviceHealthAttestationState},

    [Parameter(ParameterSetName='CreateExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.DeviceRegistrationState])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.DeviceRegistrationState]
    # Device registration status.
    ${DeviceRegistrationState},

    [Parameter(ParameterSetName='CreateExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.DeviceManagementExchangeAccessState])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.DeviceManagementExchangeAccessState]
    # Device Exchange Access State.
    ${ExchangeAccessState},

    [Parameter(ParameterSetName='CreateExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.DeviceManagementExchangeAccessStateReason])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.DeviceManagementExchangeAccessStateReason]
    # Device Exchange Access State Reason.
    ${ExchangeAccessStateReason},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Automatically generated name to identify a device.
    # Can be overwritten to a user friendly name.
    ${ManagedDeviceName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.ManagedDeviceOwnerType])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.ManagedDeviceOwnerType]
    # Owner type of device.
    ${ManagedDeviceOwnerType},

    [Parameter(ParameterSetName='CreateExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.ManagementAgentType])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.ManagementAgentType]
    # managementAgentType
    ${ManagementAgent},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Notes on the device created by IT Admin.
    # Return default value null in LIST managedDevices.
    # Real value only returned in singel device GET call with device id and included in select parameter.
    # Supports: $select.
    # $Search is not supported.
    ${Notes},

    [Parameter(ParameterSetName='CreateExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.ManagedDevicePartnerReportedHealthState])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.ManagedDevicePartnerReportedHealthState]
    # Available health states for the Device Health API
    ${PartnerReportedThreatState},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementManagedDevice_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementManagedDevice_CreateExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to localizedNotificationMessages for deviceManagement
.Description
Create new navigation property to localizedNotificationMessages for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLocalizedNotificationMessage
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLocalizedNotificationMessage
.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.
 
BODYPARAMETER <IMicrosoftGraphLocalizedNotificationMessage>: The text content of a Notification Message Template for the specified locale.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [IsDefault <Boolean?>]: Flag to indicate whether or not this is the default locale for language fallback. This flag can only be set. To unset, set this property to true on another Localized Notification Message.
  [LastModifiedDateTime <DateTime?>]: DateTime the object was last modified.
  [Locale <String>]: The Locale for which this message is destined.
  [MessageTemplate <String>]: The Message Template content.
  [Subject <String>]: The Message Template Subject.
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementnotificationmessagetemplatelocalizednotificationmessage
#>

function New-MgDeviceManagementNotificationMessageTemplateLocalizedNotificationMessage {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLocalizedNotificationMessage])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of notificationMessageTemplate
    ${NotificationMessageTemplateId},

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLocalizedNotificationMessage]
    # The text content of a Notification Message Template for the specified locale.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Flag to indicate whether or not this is the default locale for language fallback.
    # This flag can only be set.
    # To unset, set this property to true on another Localized Notification Message.
    ${IsDefault},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # DateTime the object was last modified.
    ${LastModifiedDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The Locale for which this message is destined.
    ${Locale},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The Message Template content.
    ${MessageTemplate},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The Message Template Subject.
    ${Subject},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementNotificationMessageTemplateLocalizedNotificationMessage_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementNotificationMessageTemplateLocalizedNotificationMessage_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementNotificationMessageTemplateLocalizedNotificationMessage_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementNotificationMessageTemplateLocalizedNotificationMessage_CreateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to notificationMessageTemplates for deviceManagement
.Description
Create new navigation property to notificationMessageTemplates for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphNotificationMessageTemplate
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphNotificationMessageTemplate
.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.
 
BODYPARAMETER <IMicrosoftGraphNotificationMessageTemplate>: Notification messages are messages that are sent to end users who are determined to be not-compliant with the compliance policies defined by the administrator. Administrators choose notifications and configure them in the Intune Admin Console using the compliance policy creation page under the “Actions for non-compliance” section. Use the notificationMessageTemplate object to create your own custom notifications for administrators to choose while configuring actions for non-compliance.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [BrandingOptions <NotificationTemplateBrandingOptions?>]: Branding Options for the Message Template. Branding is defined in the Intune Admin Console.
  [DefaultLocale <String>]: The default locale to fallback onto when the requested locale is not available.
  [DisplayName <String>]: Display name for the Notification Message Template.
  [LastModifiedDateTime <DateTime?>]: DateTime the object was last modified.
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementnotificationmessagetemplate
#>

function New-MgDeviceManagementNotificationMessageTemplate {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphNotificationMessageTemplate])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphNotificationMessageTemplate]
    # Notification messages are messages that are sent to end users who are determined to be not-compliant with the compliance policies defined by the administrator.
    # Administrators choose notifications and configure them in the Intune Admin Console using the compliance policy creation page under the “Actions for non-compliance” section.
    # Use the notificationMessageTemplate object to create your own custom notifications for administrators to choose while configuring actions for non-compliance.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.NotificationTemplateBrandingOptions])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.NotificationTemplateBrandingOptions]
    # Branding Options for the Message Template.
    # Branding is defined in the Intune Admin Console.
    ${BrandingOptions},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The default locale to fallback onto when the requested locale is not available.
    ${DefaultLocale},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Display name for the Notification Message Template.
    ${DisplayName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # DateTime the object was last modified.
    ${LastModifiedDateTime},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementNotificationMessageTemplate_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementNotificationMessageTemplate_CreateExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to troubleshootingEvents for deviceManagement
.Description
Create new navigation property to troubleshootingEvents for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceManagementTroubleshootingEvent
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceManagementTroubleshootingEvent
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceManagementTroubleshootingEvent>: Event representing an general failure.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [CorrelationId <String>]: Id used for tracing the failure in the service.
  [EventDateTime <DateTime?>]: Time when the event occurred .
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementtroubleshootingevent
#>

function New-MgDeviceManagementTroubleshootingEvent {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceManagementTroubleshootingEvent])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceManagementTroubleshootingEvent]
    # Event representing an general failure.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Id used for tracing the failure in the service.
    ${CorrelationId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Time when the event occurred .
    ${EventDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementTroubleshootingEvent_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementTroubleshootingEvent_CreateExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to windowsInformationProtectionAppLearningSummaries for deviceManagement
.Description
Create new navigation property to windowsInformationProtectionAppLearningSummaries for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWindowsInformationProtectionAppLearningSummary
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWindowsInformationProtectionAppLearningSummary
.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.
 
BODYPARAMETER <IMicrosoftGraphWindowsInformationProtectionAppLearningSummary>: Windows Information Protection AppLearning Summary entity.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ApplicationName <String>]: Application Name
  [ApplicationType <ApplicationType?>]: Possible types of Application
  [DeviceCount <Int32?>]: Device Count
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementwindowinformationprotectionapplearningsummary
#>

function New-MgDeviceManagementWindowInformationProtectionAppLearningSummary {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWindowsInformationProtectionAppLearningSummary])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWindowsInformationProtectionAppLearningSummary]
    # Windows Information Protection AppLearning Summary entity.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Application Name
    ${ApplicationName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.ApplicationType])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.ApplicationType]
    # Possible types of Application
    ${ApplicationType},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device Count
    ${DeviceCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementWindowInformationProtectionAppLearningSummary_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementWindowInformationProtectionAppLearningSummary_CreateExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create new navigation property to windowsInformationProtectionNetworkLearningSummaries for deviceManagement
.Description
Create new navigation property to windowsInformationProtectionNetworkLearningSummaries for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWindowsInformationProtectionNetworkLearningSummary
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWindowsInformationProtectionNetworkLearningSummary
.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.
 
BODYPARAMETER <IMicrosoftGraphWindowsInformationProtectionNetworkLearningSummary>: Windows Information Protection Network learning Summary entity.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [DeviceCount <Int32?>]: Device Count
  [Url <String>]: Website url
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/new-mgdevicemanagementwindowinformationprotectionnetworklearningsummary
#>

function New-MgDeviceManagementWindowInformationProtectionNetworkLearningSummary {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWindowsInformationProtectionNetworkLearningSummary])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWindowsInformationProtectionNetworkLearningSummary]
    # Windows Information Protection Network learning Summary entity.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device Count
    ${DeviceCount},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Website url
    ${Url},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementWindowInformationProtectionNetworkLearningSummary_Create';
            CreateExpanded = 'Microsoft.Graph.DeviceManagement.private\New-MgDeviceManagementWindowInformationProtectionNetworkLearningSummary_CreateExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property detectedApps for deviceManagement
.Description
Delete navigation property detectedApps for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementdetectedapp
#>

function Remove-MgDeviceManagementDetectedApp {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of detectedApp
    ${DetectedAppId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDetectedApp_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDetectedApp_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property deviceCategories for deviceManagement
.Description
Delete navigation property deviceCategories for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementdevicecategory
#>

function Remove-MgDeviceManagementDeviceCategory {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCategory
    ${DeviceCategoryId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCategory_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCategory_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property assignments for deviceManagement
.Description
Delete navigation property assignments for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementdevicecompliancepolicyassignment
#>

function Remove-MgDeviceManagementDeviceCompliancePolicyAssignment {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicyAssignment
    ${DeviceCompliancePolicyAssignmentId},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCompliancePolicyAssignment_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCompliancePolicyAssignment_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property deviceSettingStateSummaries for deviceManagement
.Description
Delete navigation property deviceSettingStateSummaries for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementdevicecompliancepolicydevicesettingstatesummary
#>

function Remove-MgDeviceManagementDeviceCompliancePolicyDeviceSettingStateSummary {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of settingStateDeviceSummary
    ${SettingStateDeviceSummaryId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCompliancePolicyDeviceSettingStateSummary_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCompliancePolicyDeviceSettingStateSummary_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property deviceCompliancePolicyDeviceStateSummary for deviceManagement
.Description
Delete navigation property deviceCompliancePolicyDeviceStateSummary for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Outputs
System.Boolean
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementdevicecompliancepolicydevicestatesummary
#>

function Remove-MgDeviceManagementDeviceCompliancePolicyDeviceStateSummary {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCompliancePolicyDeviceStateSummary_Delete';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property deviceStatuses for deviceManagement
.Description
Delete navigation property deviceStatuses for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementdevicecompliancepolicydevicestatuses
#>

function Remove-MgDeviceManagementDeviceCompliancePolicyDeviceStatuses {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceComplianceDeviceStatus
    ${DeviceComplianceDeviceStatusId},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCompliancePolicyDeviceStatuses_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCompliancePolicyDeviceStatuses_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property deviceStatusOverview for deviceManagement
.Description
Delete navigation property deviceStatusOverview for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementdevicecompliancepolicydevicestatusoverview
#>

function Remove-MgDeviceManagementDeviceCompliancePolicyDeviceStatusOverview {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCompliancePolicyDeviceStatusOverview_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCompliancePolicyDeviceStatusOverview_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property scheduledActionConfigurations for deviceManagement
.Description
Delete navigation property scheduledActionConfigurations for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementdevicecompliancepolicyscheduledactionforrulescheduledactionconfiguration
#>

function Remove-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRuleScheduledActionConfiguration {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceComplianceActionItem
    ${DeviceComplianceActionItemId},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceComplianceScheduledActionForRule
    ${DeviceComplianceScheduledActionForRuleId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRuleScheduledActionConfiguration_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRuleScheduledActionConfiguration_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property scheduledActionsForRule for deviceManagement
.Description
Delete navigation property scheduledActionsForRule for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementdevicecompliancepolicyscheduledactionforrule
#>

function Remove-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRule {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceComplianceScheduledActionForRule
    ${DeviceComplianceScheduledActionForRuleId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRule_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRule_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property deviceComplianceSettingStates for deviceManagement
.Description
Delete navigation property deviceComplianceSettingStates for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementdevicecompliancepolicysettingstatesummarydevicecompliancesettingstate
#>

function Remove-MgDeviceManagementDeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingState {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicySettingStateSummary
    ${DeviceCompliancePolicySettingStateSummaryId},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceComplianceSettingState
    ${DeviceComplianceSettingStateId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingState_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingState_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property deviceCompliancePolicySettingStateSummaries for deviceManagement
.Description
Delete navigation property deviceCompliancePolicySettingStateSummaries for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementdevicecompliancepolicysettingstatesummary
#>

function Remove-MgDeviceManagementDeviceCompliancePolicySettingStateSummary {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicySettingStateSummary
    ${DeviceCompliancePolicySettingStateSummaryId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCompliancePolicySettingStateSummary_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCompliancePolicySettingStateSummary_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property userStatuses for deviceManagement
.Description
Delete navigation property userStatuses for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementdevicecompliancepolicyuserstatuses
#>

function Remove-MgDeviceManagementDeviceCompliancePolicyUserStatuses {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceComplianceUserStatus
    ${DeviceComplianceUserStatusId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCompliancePolicyUserStatuses_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCompliancePolicyUserStatuses_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property userStatusOverview for deviceManagement
.Description
Delete navigation property userStatusOverview for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementdevicecompliancepolicyuserstatusoverview
#>

function Remove-MgDeviceManagementDeviceCompliancePolicyUserStatusOverview {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCompliancePolicyUserStatusOverview_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCompliancePolicyUserStatusOverview_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property deviceCompliancePolicies for deviceManagement
.Description
Delete navigation property deviceCompliancePolicies for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementdevicecompliancepolicy
#>

function Remove-MgDeviceManagementDeviceCompliancePolicy {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCompliancePolicy_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceCompliancePolicy_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property assignments for deviceManagement
.Description
Delete navigation property assignments for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementdeviceconfigurationassignment
#>

function Remove-MgDeviceManagementDeviceConfigurationAssignment {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfigurationAssignment
    ${DeviceConfigurationAssignmentId},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceConfigurationAssignment_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceConfigurationAssignment_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property deviceSettingStateSummaries for deviceManagement
.Description
Delete navigation property deviceSettingStateSummaries for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementdeviceconfigurationdevicesettingstatesummary
#>

function Remove-MgDeviceManagementDeviceConfigurationDeviceSettingStateSummary {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of settingStateDeviceSummary
    ${SettingStateDeviceSummaryId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceConfigurationDeviceSettingStateSummary_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceConfigurationDeviceSettingStateSummary_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property deviceConfigurationDeviceStateSummaries for deviceManagement
.Description
Delete navigation property deviceConfigurationDeviceStateSummaries for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Outputs
System.Boolean
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementdeviceconfigurationdevicestatesummary
#>

function Remove-MgDeviceManagementDeviceConfigurationDeviceStateSummary {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceConfigurationDeviceStateSummary_Delete';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property deviceStatuses for deviceManagement
.Description
Delete navigation property deviceStatuses for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementdeviceconfigurationdevicestatuses
#>

function Remove-MgDeviceManagementDeviceConfigurationDeviceStatuses {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfigurationDeviceStatus
    ${DeviceConfigurationDeviceStatusId},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceConfigurationDeviceStatuses_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceConfigurationDeviceStatuses_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property deviceStatusOverview for deviceManagement
.Description
Delete navigation property deviceStatusOverview for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementdeviceconfigurationdevicestatusoverview
#>

function Remove-MgDeviceManagementDeviceConfigurationDeviceStatusOverview {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceConfigurationDeviceStatusOverview_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceConfigurationDeviceStatusOverview_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property userStatuses for deviceManagement
.Description
Delete navigation property userStatuses for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementdeviceconfigurationuserstatuses
#>

function Remove-MgDeviceManagementDeviceConfigurationUserStatuses {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfigurationUserStatus
    ${DeviceConfigurationUserStatusId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceConfigurationUserStatuses_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceConfigurationUserStatuses_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property userStatusOverview for deviceManagement
.Description
Delete navigation property userStatusOverview for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementdeviceconfigurationuserstatusoverview
#>

function Remove-MgDeviceManagementDeviceConfigurationUserStatusOverview {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceConfigurationUserStatusOverview_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceConfigurationUserStatusOverview_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property deviceConfigurations for deviceManagement
.Description
Delete navigation property deviceConfigurations for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementdeviceconfiguration
#>

function Remove-MgDeviceManagementDeviceConfiguration {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceConfiguration_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementDeviceConfiguration_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property deviceCategory for deviceManagement
.Description
Delete navigation property deviceCategory for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementmanageddevicecategory
#>

function Remove-MgDeviceManagementManagedDeviceCategory {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of managedDevice
    ${ManagedDeviceId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementManagedDeviceCategory_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementManagedDeviceCategory_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property deviceCompliancePolicyStates for deviceManagement
.Description
Delete navigation property deviceCompliancePolicyStates for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementmanageddevicecompliancepolicystate
#>

function Remove-MgDeviceManagementManagedDeviceCompliancePolicyState {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicyState
    ${DeviceCompliancePolicyStateId},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of managedDevice
    ${ManagedDeviceId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementManagedDeviceCompliancePolicyState_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementManagedDeviceCompliancePolicyState_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property deviceConfigurationStates for deviceManagement
.Description
Delete navigation property deviceConfigurationStates for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementmanageddeviceconfigurationstate
#>

function Remove-MgDeviceManagementManagedDeviceConfigurationState {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfigurationState
    ${DeviceConfigurationStateId},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of managedDevice
    ${ManagedDeviceId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementManagedDeviceConfigurationState_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementManagedDeviceConfigurationState_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property managedDevices for deviceManagement
.Description
Delete navigation property managedDevices for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementmanageddevice
#>

function Remove-MgDeviceManagementManagedDevice {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of managedDevice
    ${ManagedDeviceId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementManagedDevice_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementManagedDevice_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property localizedNotificationMessages for deviceManagement
.Description
Delete navigation property localizedNotificationMessages for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementnotificationmessagetemplatelocalizednotificationmessage
#>

function Remove-MgDeviceManagementNotificationMessageTemplateLocalizedNotificationMessage {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of localizedNotificationMessage
    ${LocalizedNotificationMessageId},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of notificationMessageTemplate
    ${NotificationMessageTemplateId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementNotificationMessageTemplateLocalizedNotificationMessage_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementNotificationMessageTemplateLocalizedNotificationMessage_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property notificationMessageTemplates for deviceManagement
.Description
Delete navigation property notificationMessageTemplates for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementnotificationmessagetemplate
#>

function Remove-MgDeviceManagementNotificationMessageTemplate {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of notificationMessageTemplate
    ${NotificationMessageTemplateId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementNotificationMessageTemplate_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementNotificationMessageTemplate_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property troubleshootingEvents for deviceManagement
.Description
Delete navigation property troubleshootingEvents for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementtroubleshootingevent
#>

function Remove-MgDeviceManagementTroubleshootingEvent {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceManagementTroubleshootingEvent
    ${DeviceManagementTroubleshootingEventId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementTroubleshootingEvent_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementTroubleshootingEvent_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property windowsInformationProtectionAppLearningSummaries for deviceManagement
.Description
Delete navigation property windowsInformationProtectionAppLearningSummaries for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementwindowinformationprotectionapplearningsummary
#>

function Remove-MgDeviceManagementWindowInformationProtectionAppLearningSummary {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of windowsInformationProtectionAppLearningSummary
    ${WindowsInformationProtectionAppLearningSummaryId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementWindowInformationProtectionAppLearningSummary_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementWindowInformationProtectionAppLearningSummary_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property windowsInformationProtectionNetworkLearningSummaries for deviceManagement
.Description
Delete navigation property windowsInformationProtectionNetworkLearningSummaries for deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Outputs
System.Boolean
.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 <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/remove-mgdevicemanagementwindowinformationprotectionnetworklearningsummary
#>

function Remove-MgDeviceManagementWindowInformationProtectionNetworkLearningSummary {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of windowsInformationProtectionNetworkLearningSummary
    ${WindowsInformationProtectionNetworkLearningSummaryId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementWindowInformationProtectionNetworkLearningSummary_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Remove-MgDeviceManagementWindowInformationProtectionNetworkLearningSummary_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property detectedApps in deviceManagement
.Description
Update the navigation property detectedApps in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDetectedApp
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDetectedApp
.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.
 
BODYPARAMETER <IMicrosoftGraphDetectedApp>: A managed or unmanaged app that is installed on a managed device. Unmanaged apps will only appear for devices marked as corporate owned.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [DeviceCount <Int32?>]: The number of devices that have installed this application
  [DisplayName <String>]: Name of the discovered application. Read-only
  [Platform <DetectedAppPlatformType?>]: Indicates the operating system / platform of the discovered application. Some possible values are Windows, iOS, macOS. The default value is unknown (0).
  [Publisher <String>]: Indicates the publisher of the discovered application. For example: 'Microsoft'. The default value is an empty string.
  [SizeInByte <Int64?>]: Discovered application size in bytes. Read-only
  [Version <String>]: Version of the discovered application. Read-only
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementdetectedapp
#>

function Update-MgDeviceManagementDetectedApp {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDetectedApp])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of detectedApp
    ${DetectedAppId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDetectedApp]
    # A managed or unmanaged app that is installed on a managed device.
    # Unmanaged apps will only appear for devices marked as corporate owned.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # The number of devices that have installed this application
    ${DeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Name of the discovered application.
    # Read-only
    ${DisplayName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.DetectedAppPlatformType])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.DetectedAppPlatformType]
    # Indicates the operating system / platform of the discovered application.
    # Some possible values are Windows, iOS, macOS.
    # The default value is unknown (0).
    ${Platform},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Indicates the publisher of the discovered application.
    # For example: 'Microsoft'.
    # The default value is an empty string.
    ${Publisher},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int64]
    # Discovered application size in bytes.
    # Read-only
    ${SizeInByte},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Version of the discovered application.
    # Read-only
    ${Version},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDetectedApp_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDetectedApp_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDetectedApp_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDetectedApp_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property deviceCategories in deviceManagement
.Description
Update the navigation property deviceCategories in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCategory
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCategory
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceCategory>: Device categories provides a way to organize your devices. Using device categories, company administrators can define their own categories that make sense to their company. These categories can then be applied to a device in the Intune Azure console or selected by a user during device enrollment. You can filter reports and create dynamic Azure Active Directory device groups based on device categories.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [Description <String>]: Optional description for the device category.
  [DisplayName <String>]: Display name for the device category.
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementdevicecategory
#>

function Update-MgDeviceManagementDeviceCategory {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCategory])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCategory
    ${DeviceCategoryId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCategory]
    # Device categories provides a way to organize your devices.
    # Using device categories, company administrators can define their own categories that make sense to their company.
    # These categories can then be applied to a device in the Intune Azure console or selected by a user during device enrollment.
    # You can filter reports and create dynamic Azure Active Directory device groups based on device categories.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Optional description for the device category.
    ${Description},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Display name for the device category.
    ${DisplayName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCategory_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCategory_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCategory_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCategory_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property assignments in deviceManagement
.Description
Update the navigation property assignments in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyAssignment
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyAssignment
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceCompliancePolicyAssignment>: Device compliance policy assignment.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [Target <IMicrosoftGraphDeviceAndAppManagementAssignmentTarget>]: Base type for assignment targets.
    [(Any) <Object>]: This indicates any property can be added to this object.
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementdevicecompliancepolicyassignment
#>

function Update-MgDeviceManagementDeviceCompliancePolicyAssignment {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyAssignment])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicyAssignment
    ${DeviceCompliancePolicyAssignmentId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyAssignment]
    # Device compliance policy assignment.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Runtime.Info(PossibleTypes=([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceAndAppManagementAssignmentTarget]))]
    [System.Collections.Hashtable]
    # Base type for assignment targets.
    ${Target},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyAssignment_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyAssignment_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyAssignment_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyAssignment_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property deviceSettingStateSummaries in deviceManagement
.Description
Update the navigation property deviceSettingStateSummaries in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSettingStateDeviceSummary
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSettingStateDeviceSummary
.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.
 
BODYPARAMETER <IMicrosoftGraphSettingStateDeviceSummary>: Device Compilance Policy and Configuration for a Setting State summary
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [CompliantDeviceCount <Int32?>]: Device Compliant count for the setting
  [ConflictDeviceCount <Int32?>]: Device conflict error count for the setting
  [ErrorDeviceCount <Int32?>]: Device error count for the setting
  [InstancePath <String>]: Name of the InstancePath for the setting
  [NonCompliantDeviceCount <Int32?>]: Device NonCompliant count for the setting
  [NotApplicableDeviceCount <Int32?>]: Device Not Applicable count for the setting
  [RemediatedDeviceCount <Int32?>]: Device Compliant count for the setting
  [SettingName <String>]: Name of the setting
  [UnknownDeviceCount <Int32?>]: Device Unkown count for the setting
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementdevicecompliancepolicydevicesettingstatesummary
#>

function Update-MgDeviceManagementDeviceCompliancePolicyDeviceSettingStateSummary {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSettingStateDeviceSummary])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of settingStateDeviceSummary
    ${SettingStateDeviceSummaryId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSettingStateDeviceSummary]
    # Device Compilance Policy and Configuration for a Setting State summary
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device Compliant count for the setting
    ${CompliantDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device conflict error count for the setting
    ${ConflictDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device error count for the setting
    ${ErrorDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Name of the InstancePath for the setting
    ${InstancePath},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device NonCompliant count for the setting
    ${NonCompliantDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device Not Applicable count for the setting
    ${NotApplicableDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device Compliant count for the setting
    ${RemediatedDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Name of the setting
    ${SettingName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device Unkown count for the setting
    ${UnknownDeviceCount},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyDeviceSettingStateSummary_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyDeviceSettingStateSummary_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyDeviceSettingStateSummary_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyDeviceSettingStateSummary_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property deviceCompliancePolicyDeviceStateSummary in deviceManagement
.Description
Update the navigation property deviceCompliancePolicyDeviceStateSummary in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyDeviceStateSummary
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyDeviceStateSummary
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceCompliancePolicyDeviceStateSummary>: deviceCompliancePolicyDeviceStateSummary
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [CompliantDeviceCount <Int32?>]: Number of compliant devices
  [ConfigManagerCount <Int32?>]: Number of devices that have compliance managed by System Center Configuration Manager
  [ConflictDeviceCount <Int32?>]: Number of conflict devices
  [ErrorDeviceCount <Int32?>]: Number of error devices
  [InGracePeriodCount <Int32?>]: Number of devices that are in grace period
  [NonCompliantDeviceCount <Int32?>]: Number of NonCompliant devices
  [NotApplicableDeviceCount <Int32?>]: Number of not applicable devices
  [RemediatedDeviceCount <Int32?>]: Number of remediated devices
  [UnknownDeviceCount <Int32?>]: Number of unknown devices
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementdevicecompliancepolicydevicestatesummary
#>

function Update-MgDeviceManagementDeviceCompliancePolicyDeviceStateSummary {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyDeviceStateSummary])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyDeviceStateSummary]
    # deviceCompliancePolicyDeviceStateSummary
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of compliant devices
    ${CompliantDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of devices that have compliance managed by System Center Configuration Manager
    ${ConfigManagerCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of conflict devices
    ${ConflictDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of error devices
    ${ErrorDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of devices that are in grace period
    ${InGracePeriodCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of NonCompliant devices
    ${NonCompliantDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of not applicable devices
    ${NotApplicableDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of remediated devices
    ${RemediatedDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of unknown devices
    ${UnknownDeviceCount},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyDeviceStateSummary_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyDeviceStateSummary_UpdateExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property deviceStatuses in deviceManagement
.Description
Update the navigation property deviceStatuses in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceDeviceStatus
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceDeviceStatus
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceComplianceDeviceStatus>: deviceComplianceDeviceStatus
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ComplianceGracePeriodExpirationDateTime <DateTime?>]: The DateTime when device compliance grace period expires
  [DeviceDisplayName <String>]: Device name of the DevicePolicyStatus.
  [DeviceModel <String>]: The device model that is being reported
  [LastReportedDateTime <DateTime?>]: Last modified date time of the policy report.
  [Status <String>]: complianceStatus
  [UserName <String>]: The User Name that is being reported
  [UserPrincipalName <String>]: UserPrincipalName.
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementdevicecompliancepolicydevicestatuses
#>

function Update-MgDeviceManagementDeviceCompliancePolicyDeviceStatuses {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceDeviceStatus])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceComplianceDeviceStatus
    ${DeviceComplianceDeviceStatusId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceDeviceStatus]
    # deviceComplianceDeviceStatus
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The DateTime when device compliance grace period expires
    ${ComplianceGracePeriodExpirationDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Device name of the DevicePolicyStatus.
    ${DeviceDisplayName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The device model that is being reported
    ${DeviceModel},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Last modified date time of the policy report.
    ${LastReportedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # complianceStatus
    ${Status},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The User Name that is being reported
    ${UserName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # UserPrincipalName.
    ${UserPrincipalName},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyDeviceStatuses_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyDeviceStatuses_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyDeviceStatuses_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyDeviceStatuses_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property deviceStatusOverview in deviceManagement
.Description
Update the navigation property deviceStatusOverview in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceDeviceOverview
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceDeviceOverview
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceComplianceDeviceOverview>: deviceComplianceDeviceOverview
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ConfigurationVersion <Int32?>]: Version of the policy for that overview
  [ErrorCount <Int32?>]: Number of error devices
  [FailedCount <Int32?>]: Number of failed devices
  [LastUpdateDateTime <DateTime?>]: Last update time
  [NotApplicableCount <Int32?>]: Number of not applicable devices
  [PendingCount <Int32?>]: Number of pending devices
  [SuccessCount <Int32?>]: Number of succeeded devices
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementdevicecompliancepolicydevicestatusoverview
#>

function Update-MgDeviceManagementDeviceCompliancePolicyDeviceStatusOverview {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceDeviceOverview])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceDeviceOverview]
    # deviceComplianceDeviceOverview
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Version of the policy for that overview
    ${ConfigurationVersion},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of error devices
    ${ErrorCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of failed devices
    ${FailedCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Last update time
    ${LastUpdateDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of not applicable devices
    ${NotApplicableCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of pending devices
    ${PendingCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of succeeded devices
    ${SuccessCount},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyDeviceStatusOverview_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyDeviceStatusOverview_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyDeviceStatusOverview_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyDeviceStatusOverview_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property scheduledActionConfigurations in deviceManagement
.Description
Update the navigation property scheduledActionConfigurations in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceActionItem
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceActionItem
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceComplianceActionItem>: Scheduled Action Configuration
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ActionType <DeviceComplianceActionType?>]: Scheduled Action Type Enum
  [GracePeriodHours <Int32?>]: Number of hours to wait till the action will be enforced. Valid values 0 to 8760
  [NotificationMessageCcList <String[]>]: A list of group IDs to speicify who to CC this notification message to.
  [NotificationTemplateId <String>]: What notification Message template to use
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementdevicecompliancepolicyscheduledactionforrulescheduledactionconfiguration
#>

function Update-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRuleScheduledActionConfiguration {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceActionItem])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceComplianceActionItem
    ${DeviceComplianceActionItemId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceComplianceScheduledActionForRule
    ${DeviceComplianceScheduledActionForRuleId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceActionItem]
    # Scheduled Action Configuration
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.DeviceComplianceActionType])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.DeviceComplianceActionType]
    # Scheduled Action Type Enum
    ${ActionType},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of hours to wait till the action will be enforced.
    # Valid values 0 to 8760
    ${GracePeriodHours},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # A list of group IDs to speicify who to CC this notification message to.
    ${NotificationMessageCcList},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # What notification Message template to use
    ${NotificationTemplateId},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRuleScheduledActionConfiguration_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRuleScheduledActionConfiguration_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRuleScheduledActionConfiguration_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRuleScheduledActionConfiguration_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property scheduledActionsForRule in deviceManagement
.Description
Update the navigation property scheduledActionsForRule in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceScheduledActionForRule
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceScheduledActionForRule
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceComplianceScheduledActionForRule>: Scheduled Action for Rule
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [RuleName <String>]: Name of the rule which this scheduled action applies to. Currently scheduled actions are created per policy instead of per rule, thus RuleName is always set to default value PasswordRequired.
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementdevicecompliancepolicyscheduledactionforrule
#>

function Update-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRule {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceScheduledActionForRule])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceComplianceScheduledActionForRule
    ${DeviceComplianceScheduledActionForRuleId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceScheduledActionForRule]
    # Scheduled Action for Rule
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Name of the rule which this scheduled action applies to.
    # Currently scheduled actions are created per policy instead of per rule, thus RuleName is always set to default value PasswordRequired.
    ${RuleName},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRule_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRule_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRule_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyScheduledActionForRule_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property deviceComplianceSettingStates in deviceManagement
.Description
Update the navigation property deviceComplianceSettingStates in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceSettingState
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceSettingState
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceComplianceSettingState>: Device compliance setting State for a given device.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ComplianceGracePeriodExpirationDateTime <DateTime?>]: The DateTime when device compliance grace period expires
  [DeviceId <String>]: The Device Id that is being reported
  [DeviceModel <String>]: The device model that is being reported
  [DeviceName <String>]: The Device Name that is being reported
  [Setting <String>]: The setting class name and property name.
  [SettingName <String>]: The Setting Name that is being reported
  [State <String>]: complianceStatus
  [UserEmail <String>]: The User email address that is being reported
  [UserId <String>]: The user Id that is being reported
  [UserName <String>]: The User Name that is being reported
  [UserPrincipalName <String>]: The User PrincipalName that is being reported
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementdevicecompliancepolicysettingstatesummarydevicecompliancesettingstate
#>

function Update-MgDeviceManagementDeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingState {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceSettingState])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicySettingStateSummary
    ${DeviceCompliancePolicySettingStateSummaryId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceComplianceSettingState
    ${DeviceComplianceSettingStateId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceSettingState]
    # Device compliance setting State for a given device.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The DateTime when device compliance grace period expires
    ${ComplianceGracePeriodExpirationDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The Device Id that is being reported
    ${DeviceId},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The device model that is being reported
    ${DeviceModel},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The Device Name that is being reported
    ${DeviceName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The setting class name and property name.
    ${Setting},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The Setting Name that is being reported
    ${SettingName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # complianceStatus
    ${State},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The User email address that is being reported
    ${UserEmail},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The user Id that is being reported
    ${UserId},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The User Name that is being reported
    ${UserName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The User PrincipalName that is being reported
    ${UserPrincipalName},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingState_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingState_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingState_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingState_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property deviceCompliancePolicySettingStateSummaries in deviceManagement
.Description
Update the navigation property deviceCompliancePolicySettingStateSummaries in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicySettingStateSummary
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicySettingStateSummary
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceCompliancePolicySettingStateSummary>: Device Compilance Policy Setting State summary across the account.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [CompliantDeviceCount <Int32?>]: Number of compliant devices
  [ConflictDeviceCount <Int32?>]: Number of conflict devices
  [ErrorDeviceCount <Int32?>]: Number of error devices
  [NonCompliantDeviceCount <Int32?>]: Number of NonCompliant devices
  [NotApplicableDeviceCount <Int32?>]: Number of not applicable devices
  [PlatformType <PolicyPlatformType?>]: Supported platform types for policies.
  [RemediatedDeviceCount <Int32?>]: Number of remediated devices
  [Setting <String>]: The setting class name and property name.
  [SettingName <String>]: Name of the setting.
  [UnknownDeviceCount <Int32?>]: Number of unknown devices
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementdevicecompliancepolicysettingstatesummary
#>

function Update-MgDeviceManagementDeviceCompliancePolicySettingStateSummary {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicySettingStateSummary])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicySettingStateSummary
    ${DeviceCompliancePolicySettingStateSummaryId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicySettingStateSummary]
    # Device Compilance Policy Setting State summary across the account.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of compliant devices
    ${CompliantDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of conflict devices
    ${ConflictDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of error devices
    ${ErrorDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of NonCompliant devices
    ${NonCompliantDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of not applicable devices
    ${NotApplicableDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.PolicyPlatformType])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.PolicyPlatformType]
    # Supported platform types for policies.
    ${PlatformType},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of remediated devices
    ${RemediatedDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The setting class name and property name.
    ${Setting},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Name of the setting.
    ${SettingName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of unknown devices
    ${UnknownDeviceCount},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicySettingStateSummary_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicySettingStateSummary_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicySettingStateSummary_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicySettingStateSummary_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property userStatuses in deviceManagement
.Description
Update the navigation property userStatuses in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceUserStatus
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceUserStatus
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceComplianceUserStatus>: deviceComplianceUserStatus
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [DevicesCount <Int32?>]: Devices count for that user.
  [LastReportedDateTime <DateTime?>]: Last modified date time of the policy report.
  [Status <String>]: complianceStatus
  [UserDisplayName <String>]: User name of the DevicePolicyStatus.
  [UserPrincipalName <String>]: UserPrincipalName.
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementdevicecompliancepolicyuserstatuses
#>

function Update-MgDeviceManagementDeviceCompliancePolicyUserStatuses {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceUserStatus])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceComplianceUserStatus
    ${DeviceComplianceUserStatusId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceUserStatus]
    # deviceComplianceUserStatus
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Devices count for that user.
    ${DevicesCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Last modified date time of the policy report.
    ${LastReportedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # complianceStatus
    ${Status},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # User name of the DevicePolicyStatus.
    ${UserDisplayName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # UserPrincipalName.
    ${UserPrincipalName},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyUserStatuses_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyUserStatuses_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyUserStatuses_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyUserStatuses_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property userStatusOverview in deviceManagement
.Description
Update the navigation property userStatusOverview in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceUserOverview
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceUserOverview
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceComplianceUserOverview>: deviceComplianceUserOverview
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ConfigurationVersion <Int32?>]: Version of the policy for that overview
  [ErrorCount <Int32?>]: Number of error Users
  [FailedCount <Int32?>]: Number of failed Users
  [LastUpdateDateTime <DateTime?>]: Last update time
  [NotApplicableCount <Int32?>]: Number of not applicable users
  [PendingCount <Int32?>]: Number of pending Users
  [SuccessCount <Int32?>]: Number of succeeded Users
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementdevicecompliancepolicyuserstatusoverview
#>

function Update-MgDeviceManagementDeviceCompliancePolicyUserStatusOverview {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceUserOverview])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceUserOverview]
    # deviceComplianceUserOverview
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Version of the policy for that overview
    ${ConfigurationVersion},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of error Users
    ${ErrorCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of failed Users
    ${FailedCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Last update time
    ${LastUpdateDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of not applicable users
    ${NotApplicableCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of pending Users
    ${PendingCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of succeeded Users
    ${SuccessCount},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyUserStatusOverview_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyUserStatusOverview_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyUserStatusOverview_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicyUserStatusOverview_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property deviceCompliancePolicies in deviceManagement
.Description
Update the navigation property deviceCompliancePolicies in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicy
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicy
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceCompliancePolicy>: This is the base class for Compliance policy. Compliance policies are platform specific and individual per-platform compliance policies inherit from here.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [CreatedDateTime <DateTime?>]: DateTime the object was created.
  [Description <String>]: Admin provided description of the Device Configuration.
  [DeviceStatusOverview <IMicrosoftGraphDeviceComplianceDeviceOverview>]: deviceComplianceDeviceOverview
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique idenfier for an entity. Read-only.
    [ConfigurationVersion <Int32?>]: Version of the policy for that overview
    [ErrorCount <Int32?>]: Number of error devices
    [FailedCount <Int32?>]: Number of failed devices
    [LastUpdateDateTime <DateTime?>]: Last update time
    [NotApplicableCount <Int32?>]: Number of not applicable devices
    [PendingCount <Int32?>]: Number of pending devices
    [SuccessCount <Int32?>]: Number of succeeded devices
  [DisplayName <String>]: Admin provided name of the device configuration.
  [LastModifiedDateTime <DateTime?>]: DateTime the object was last modified.
  [UserStatusOverview <IMicrosoftGraphDeviceComplianceUserOverview>]: deviceComplianceUserOverview
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique idenfier for an entity. Read-only.
    [ConfigurationVersion <Int32?>]: Version of the policy for that overview
    [ErrorCount <Int32?>]: Number of error Users
    [FailedCount <Int32?>]: Number of failed Users
    [LastUpdateDateTime <DateTime?>]: Last update time
    [NotApplicableCount <Int32?>]: Number of not applicable users
    [PendingCount <Int32?>]: Number of pending Users
    [SuccessCount <Int32?>]: Number of succeeded Users
  [Version <Int32?>]: Version of the device configuration.
 
DEVICESTATUSOVERVIEW <IMicrosoftGraphDeviceComplianceDeviceOverview>: deviceComplianceDeviceOverview
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ConfigurationVersion <Int32?>]: Version of the policy for that overview
  [ErrorCount <Int32?>]: Number of error devices
  [FailedCount <Int32?>]: Number of failed devices
  [LastUpdateDateTime <DateTime?>]: Last update time
  [NotApplicableCount <Int32?>]: Number of not applicable devices
  [PendingCount <Int32?>]: Number of pending devices
  [SuccessCount <Int32?>]: Number of succeeded devices
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
 
USERSTATUSOVERVIEW <IMicrosoftGraphDeviceComplianceUserOverview>: deviceComplianceUserOverview
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ConfigurationVersion <Int32?>]: Version of the policy for that overview
  [ErrorCount <Int32?>]: Number of error Users
  [FailedCount <Int32?>]: Number of failed Users
  [LastUpdateDateTime <DateTime?>]: Last update time
  [NotApplicableCount <Int32?>]: Number of not applicable users
  [PendingCount <Int32?>]: Number of pending Users
  [SuccessCount <Int32?>]: Number of succeeded Users
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementdevicecompliancepolicy
#>

function Update-MgDeviceManagementDeviceCompliancePolicy {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicy])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicy
    ${DeviceCompliancePolicyId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicy]
    # This is the base class for Compliance policy.
    # Compliance policies are platform specific and individual per-platform compliance policies inherit from here.
    #
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # DateTime the object was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Admin provided description of the Device Configuration.
    ${Description},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceDeviceOverview]
    # deviceComplianceDeviceOverview
    # To construct, see NOTES section for DEVICESTATUSOVERVIEW properties and create a hash table.
    ${DeviceStatusOverview},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Admin provided name of the device configuration.
    ${DisplayName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # DateTime the object was last modified.
    ${LastModifiedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceComplianceUserOverview]
    # deviceComplianceUserOverview
    # To construct, see NOTES section for USERSTATUSOVERVIEW properties and create a hash table.
    ${UserStatusOverview},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Version of the device configuration.
    ${Version},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicy_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicy_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicy_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceCompliancePolicy_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property assignments in deviceManagement
.Description
Update the navigation property assignments in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationAssignment
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationAssignment
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceConfigurationAssignment>: The device configuration assignment entity assigns an AAD group to a specific device configuration.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [Target <IMicrosoftGraphDeviceAndAppManagementAssignmentTarget>]: Base type for assignment targets.
    [(Any) <Object>]: This indicates any property can be added to this object.
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementdeviceconfigurationassignment
#>

function Update-MgDeviceManagementDeviceConfigurationAssignment {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationAssignment])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfigurationAssignment
    ${DeviceConfigurationAssignmentId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationAssignment]
    # The device configuration assignment entity assigns an AAD group to a specific device configuration.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Runtime.Info(PossibleTypes=([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceAndAppManagementAssignmentTarget]))]
    [System.Collections.Hashtable]
    # Base type for assignment targets.
    ${Target},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationAssignment_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationAssignment_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationAssignment_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationAssignment_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property deviceSettingStateSummaries in deviceManagement
.Description
Update the navigation property deviceSettingStateSummaries in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSettingStateDeviceSummary
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSettingStateDeviceSummary
.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.
 
BODYPARAMETER <IMicrosoftGraphSettingStateDeviceSummary>: Device Compilance Policy and Configuration for a Setting State summary
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [CompliantDeviceCount <Int32?>]: Device Compliant count for the setting
  [ConflictDeviceCount <Int32?>]: Device conflict error count for the setting
  [ErrorDeviceCount <Int32?>]: Device error count for the setting
  [InstancePath <String>]: Name of the InstancePath for the setting
  [NonCompliantDeviceCount <Int32?>]: Device NonCompliant count for the setting
  [NotApplicableDeviceCount <Int32?>]: Device Not Applicable count for the setting
  [RemediatedDeviceCount <Int32?>]: Device Compliant count for the setting
  [SettingName <String>]: Name of the setting
  [UnknownDeviceCount <Int32?>]: Device Unkown count for the setting
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementdeviceconfigurationdevicesettingstatesummary
#>

function Update-MgDeviceManagementDeviceConfigurationDeviceSettingStateSummary {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSettingStateDeviceSummary])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of settingStateDeviceSummary
    ${SettingStateDeviceSummaryId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSettingStateDeviceSummary]
    # Device Compilance Policy and Configuration for a Setting State summary
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device Compliant count for the setting
    ${CompliantDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device conflict error count for the setting
    ${ConflictDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device error count for the setting
    ${ErrorDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Name of the InstancePath for the setting
    ${InstancePath},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device NonCompliant count for the setting
    ${NonCompliantDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device Not Applicable count for the setting
    ${NotApplicableDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device Compliant count for the setting
    ${RemediatedDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Name of the setting
    ${SettingName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device Unkown count for the setting
    ${UnknownDeviceCount},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationDeviceSettingStateSummary_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationDeviceSettingStateSummary_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationDeviceSettingStateSummary_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationDeviceSettingStateSummary_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property deviceConfigurationDeviceStateSummaries in deviceManagement
.Description
Update the navigation property deviceConfigurationDeviceStateSummaries in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceStateSummary
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceStateSummary
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceConfigurationDeviceStateSummary>: deviceConfigurationDeviceStateSummary
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [CompliantDeviceCount <Int32?>]: Number of compliant devices
  [ConflictDeviceCount <Int32?>]: Number of conflict devices
  [ErrorDeviceCount <Int32?>]: Number of error devices
  [NonCompliantDeviceCount <Int32?>]: Number of NonCompliant devices
  [NotApplicableDeviceCount <Int32?>]: Number of not applicable devices
  [RemediatedDeviceCount <Int32?>]: Number of remediated devices
  [UnknownDeviceCount <Int32?>]: Number of unknown devices
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementdeviceconfigurationdevicestatesummary
#>

function Update-MgDeviceManagementDeviceConfigurationDeviceStateSummary {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceStateSummary])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceStateSummary]
    # deviceConfigurationDeviceStateSummary
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of compliant devices
    ${CompliantDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of conflict devices
    ${ConflictDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of error devices
    ${ErrorDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of NonCompliant devices
    ${NonCompliantDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of not applicable devices
    ${NotApplicableDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of remediated devices
    ${RemediatedDeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of unknown devices
    ${UnknownDeviceCount},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationDeviceStateSummary_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationDeviceStateSummary_UpdateExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property deviceStatuses in deviceManagement
.Description
Update the navigation property deviceStatuses in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceStatus
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceStatus
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceConfigurationDeviceStatus>: deviceConfigurationDeviceStatus
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ComplianceGracePeriodExpirationDateTime <DateTime?>]: The DateTime when device compliance grace period expires
  [DeviceDisplayName <String>]: Device name of the DevicePolicyStatus.
  [DeviceModel <String>]: The device model that is being reported
  [LastReportedDateTime <DateTime?>]: Last modified date time of the policy report.
  [Status <String>]: complianceStatus
  [UserName <String>]: The User Name that is being reported
  [UserPrincipalName <String>]: UserPrincipalName.
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementdeviceconfigurationdevicestatuses
#>

function Update-MgDeviceManagementDeviceConfigurationDeviceStatuses {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceStatus])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfigurationDeviceStatus
    ${DeviceConfigurationDeviceStatusId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceStatus]
    # deviceConfigurationDeviceStatus
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The DateTime when device compliance grace period expires
    ${ComplianceGracePeriodExpirationDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Device name of the DevicePolicyStatus.
    ${DeviceDisplayName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The device model that is being reported
    ${DeviceModel},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Last modified date time of the policy report.
    ${LastReportedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # complianceStatus
    ${Status},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The User Name that is being reported
    ${UserName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # UserPrincipalName.
    ${UserPrincipalName},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationDeviceStatuses_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationDeviceStatuses_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationDeviceStatuses_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationDeviceStatuses_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property deviceStatusOverview in deviceManagement
.Description
Update the navigation property deviceStatusOverview in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceOverview
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceOverview
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceConfigurationDeviceOverview>: deviceConfigurationDeviceOverview
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ConfigurationVersion <Int32?>]: Version of the policy for that overview
  [ErrorCount <Int32?>]: Number of error devices
  [FailedCount <Int32?>]: Number of failed devices
  [LastUpdateDateTime <DateTime?>]: Last update time
  [NotApplicableCount <Int32?>]: Number of not applicable devices
  [PendingCount <Int32?>]: Number of pending devices
  [SuccessCount <Int32?>]: Number of succeeded devices
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementdeviceconfigurationdevicestatusoverview
#>

function Update-MgDeviceManagementDeviceConfigurationDeviceStatusOverview {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceOverview])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceOverview]
    # deviceConfigurationDeviceOverview
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Version of the policy for that overview
    ${ConfigurationVersion},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of error devices
    ${ErrorCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of failed devices
    ${FailedCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Last update time
    ${LastUpdateDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of not applicable devices
    ${NotApplicableCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of pending devices
    ${PendingCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of succeeded devices
    ${SuccessCount},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationDeviceStatusOverview_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationDeviceStatusOverview_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationDeviceStatusOverview_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationDeviceStatusOverview_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property userStatuses in deviceManagement
.Description
Update the navigation property userStatuses in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationUserStatus
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationUserStatus
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceConfigurationUserStatus>: deviceConfigurationUserStatus
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [DevicesCount <Int32?>]: Devices count for that user.
  [LastReportedDateTime <DateTime?>]: Last modified date time of the policy report.
  [Status <String>]: complianceStatus
  [UserDisplayName <String>]: User name of the DevicePolicyStatus.
  [UserPrincipalName <String>]: UserPrincipalName.
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementdeviceconfigurationuserstatuses
#>

function Update-MgDeviceManagementDeviceConfigurationUserStatuses {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationUserStatus])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfigurationUserStatus
    ${DeviceConfigurationUserStatusId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationUserStatus]
    # deviceConfigurationUserStatus
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Devices count for that user.
    ${DevicesCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Last modified date time of the policy report.
    ${LastReportedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # complianceStatus
    ${Status},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # User name of the DevicePolicyStatus.
    ${UserDisplayName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # UserPrincipalName.
    ${UserPrincipalName},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationUserStatuses_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationUserStatuses_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationUserStatuses_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationUserStatuses_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property userStatusOverview in deviceManagement
.Description
Update the navigation property userStatusOverview in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationUserOverview
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationUserOverview
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceConfigurationUserOverview>: deviceConfigurationUserOverview
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ConfigurationVersion <Int32?>]: Version of the policy for that overview
  [ErrorCount <Int32?>]: Number of error Users
  [FailedCount <Int32?>]: Number of failed Users
  [LastUpdateDateTime <DateTime?>]: Last update time
  [NotApplicableCount <Int32?>]: Number of not applicable users
  [PendingCount <Int32?>]: Number of pending Users
  [SuccessCount <Int32?>]: Number of succeeded Users
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementdeviceconfigurationuserstatusoverview
#>

function Update-MgDeviceManagementDeviceConfigurationUserStatusOverview {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationUserOverview])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationUserOverview]
    # deviceConfigurationUserOverview
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Version of the policy for that overview
    ${ConfigurationVersion},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of error Users
    ${ErrorCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of failed Users
    ${FailedCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Last update time
    ${LastUpdateDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of not applicable users
    ${NotApplicableCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of pending Users
    ${PendingCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Number of succeeded Users
    ${SuccessCount},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationUserStatusOverview_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationUserStatusOverview_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationUserStatusOverview_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfigurationUserStatusOverview_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property deviceConfigurations in deviceManagement
.Description
Update the navigation property deviceConfigurations in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfiguration
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfiguration
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceConfiguration>: Device Configuration.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [CreatedDateTime <DateTime?>]: DateTime the object was created.
  [Description <String>]: Admin provided description of the Device Configuration.
  [DeviceStatusOverview <IMicrosoftGraphDeviceConfigurationDeviceOverview>]: deviceConfigurationDeviceOverview
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique idenfier for an entity. Read-only.
    [ConfigurationVersion <Int32?>]: Version of the policy for that overview
    [ErrorCount <Int32?>]: Number of error devices
    [FailedCount <Int32?>]: Number of failed devices
    [LastUpdateDateTime <DateTime?>]: Last update time
    [NotApplicableCount <Int32?>]: Number of not applicable devices
    [PendingCount <Int32?>]: Number of pending devices
    [SuccessCount <Int32?>]: Number of succeeded devices
  [DisplayName <String>]: Admin provided name of the device configuration.
  [LastModifiedDateTime <DateTime?>]: DateTime the object was last modified.
  [UserStatusOverview <IMicrosoftGraphDeviceConfigurationUserOverview>]: deviceConfigurationUserOverview
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique idenfier for an entity. Read-only.
    [ConfigurationVersion <Int32?>]: Version of the policy for that overview
    [ErrorCount <Int32?>]: Number of error Users
    [FailedCount <Int32?>]: Number of failed Users
    [LastUpdateDateTime <DateTime?>]: Last update time
    [NotApplicableCount <Int32?>]: Number of not applicable users
    [PendingCount <Int32?>]: Number of pending Users
    [SuccessCount <Int32?>]: Number of succeeded Users
  [Version <Int32?>]: Version of the device configuration.
 
DEVICESTATUSOVERVIEW <IMicrosoftGraphDeviceConfigurationDeviceOverview>: deviceConfigurationDeviceOverview
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ConfigurationVersion <Int32?>]: Version of the policy for that overview
  [ErrorCount <Int32?>]: Number of error devices
  [FailedCount <Int32?>]: Number of failed devices
  [LastUpdateDateTime <DateTime?>]: Last update time
  [NotApplicableCount <Int32?>]: Number of not applicable devices
  [PendingCount <Int32?>]: Number of pending devices
  [SuccessCount <Int32?>]: Number of succeeded devices
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
 
USERSTATUSOVERVIEW <IMicrosoftGraphDeviceConfigurationUserOverview>: deviceConfigurationUserOverview
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ConfigurationVersion <Int32?>]: Version of the policy for that overview
  [ErrorCount <Int32?>]: Number of error Users
  [FailedCount <Int32?>]: Number of failed Users
  [LastUpdateDateTime <DateTime?>]: Last update time
  [NotApplicableCount <Int32?>]: Number of not applicable users
  [PendingCount <Int32?>]: Number of pending Users
  [SuccessCount <Int32?>]: Number of succeeded Users
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementdeviceconfiguration
#>

function Update-MgDeviceManagementDeviceConfiguration {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfiguration])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfiguration
    ${DeviceConfigurationId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfiguration]
    # Device Configuration.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # DateTime the object was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Admin provided description of the Device Configuration.
    ${Description},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceOverview]
    # deviceConfigurationDeviceOverview
    # To construct, see NOTES section for DEVICESTATUSOVERVIEW properties and create a hash table.
    ${DeviceStatusOverview},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Admin provided name of the device configuration.
    ${DisplayName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # DateTime the object was last modified.
    ${LastModifiedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationUserOverview]
    # deviceConfigurationUserOverview
    # To construct, see NOTES section for USERSTATUSOVERVIEW properties and create a hash table.
    ${UserStatusOverview},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Version of the device configuration.
    ${Version},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfiguration_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfiguration_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfiguration_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementDeviceConfiguration_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property deviceCategory in deviceManagement
.Description
Update the navigation property deviceCategory in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCategory
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCategory
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceCategory>: Device categories provides a way to organize your devices. Using device categories, company administrators can define their own categories that make sense to their company. These categories can then be applied to a device in the Intune Azure console or selected by a user during device enrollment. You can filter reports and create dynamic Azure Active Directory device groups based on device categories.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [Description <String>]: Optional description for the device category.
  [DisplayName <String>]: Display name for the device category.
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementmanageddevicecategory
#>

function Update-MgDeviceManagementManagedDeviceCategory {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCategory])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of managedDevice
    ${ManagedDeviceId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCategory]
    # Device categories provides a way to organize your devices.
    # Using device categories, company administrators can define their own categories that make sense to their company.
    # These categories can then be applied to a device in the Intune Azure console or selected by a user during device enrollment.
    # You can filter reports and create dynamic Azure Active Directory device groups based on device categories.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Optional description for the device category.
    ${Description},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Display name for the device category.
    ${DisplayName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementManagedDeviceCategory_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementManagedDeviceCategory_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementManagedDeviceCategory_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementManagedDeviceCategory_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property deviceCompliancePolicyStates in deviceManagement
.Description
Update the navigation property deviceCompliancePolicyStates in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyState
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyState
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceCompliancePolicyState>: Device Compliance Policy State for a given device.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [DisplayName <String>]: The name of the policy for this policyBase
  [PlatformType <PolicyPlatformType?>]: Supported platform types for policies.
  [SettingCount <Int32?>]: Count of how many setting a policy holds
  [SettingStates <IMicrosoftGraphDeviceCompliancePolicySettingState[]>]:
    [CurrentValue <String>]: Current value of setting on device
    [ErrorCode <Int64?>]: Error code for the setting
    [ErrorDescription <String>]: Error description
    [InstanceDisplayName <String>]: Name of setting instance that is being reported.
    [Setting <String>]: The setting that is being reported
    [SettingName <String>]: Localized/user friendly setting name that is being reported
    [Sources <IMicrosoftGraphSettingSource[]>]: Contributing policies
      [DisplayName <String>]: Not yet documented
      [Id <String>]: Not yet documented
      [SourceType <String>]: settingSourceType
    [State <String>]: complianceStatus
    [UserEmail <String>]: UserEmail
    [UserId <String>]: UserId
    [UserName <String>]: UserName
    [UserPrincipalName <String>]: UserPrincipalName.
  [State <String>]: complianceStatus
  [Version <Int32?>]: The version of the policy
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
 
SETTINGSTATES <IMicrosoftGraphDeviceCompliancePolicySettingState[]>: .
  [CurrentValue <String>]: Current value of setting on device
  [ErrorCode <Int64?>]: Error code for the setting
  [ErrorDescription <String>]: Error description
  [InstanceDisplayName <String>]: Name of setting instance that is being reported.
  [Setting <String>]: The setting that is being reported
  [SettingName <String>]: Localized/user friendly setting name that is being reported
  [Sources <IMicrosoftGraphSettingSource[]>]: Contributing policies
    [DisplayName <String>]: Not yet documented
    [Id <String>]: Not yet documented
    [SourceType <String>]: settingSourceType
  [State <String>]: complianceStatus
  [UserEmail <String>]: UserEmail
  [UserId <String>]: UserId
  [UserName <String>]: UserName
  [UserPrincipalName <String>]: UserPrincipalName.
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementmanageddevicecompliancepolicystate
#>

function Update-MgDeviceManagementManagedDeviceCompliancePolicyState {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyState])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceCompliancePolicyState
    ${DeviceCompliancePolicyStateId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of managedDevice
    ${ManagedDeviceId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyState]
    # Device Compliance Policy State for a given device.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The name of the policy for this policyBase
    ${DisplayName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.PolicyPlatformType])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.PolicyPlatformType]
    # Supported platform types for policies.
    ${PlatformType},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Count of how many setting a policy holds
    ${SettingCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicySettingState[]]
    # .
    # To construct, see NOTES section for SETTINGSTATES properties and create a hash table.
    ${SettingStates},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # complianceStatus
    ${State},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # The version of the policy
    ${Version},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementManagedDeviceCompliancePolicyState_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementManagedDeviceCompliancePolicyState_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementManagedDeviceCompliancePolicyState_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementManagedDeviceCompliancePolicyState_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property deviceConfigurationStates in deviceManagement
.Description
Update the navigation property deviceConfigurationStates in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationState
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationState
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceConfigurationState>: Device Configuration State for a given device.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [DisplayName <String>]: The name of the policy for this policyBase
  [PlatformType <PolicyPlatformType?>]: Supported platform types for policies.
  [SettingCount <Int32?>]: Count of how many setting a policy holds
  [SettingStates <IMicrosoftGraphDeviceConfigurationSettingState[]>]:
    [CurrentValue <String>]: Current value of setting on device
    [ErrorCode <Int64?>]: Error code for the setting
    [ErrorDescription <String>]: Error description
    [InstanceDisplayName <String>]: Name of setting instance that is being reported.
    [Setting <String>]: The setting that is being reported
    [SettingName <String>]: Localized/user friendly setting name that is being reported
    [Sources <IMicrosoftGraphSettingSource[]>]: Contributing policies
      [DisplayName <String>]: Not yet documented
      [Id <String>]: Not yet documented
      [SourceType <String>]: settingSourceType
    [State <String>]: complianceStatus
    [UserEmail <String>]: UserEmail
    [UserId <String>]: UserId
    [UserName <String>]: UserName
    [UserPrincipalName <String>]: UserPrincipalName.
  [State <String>]: complianceStatus
  [Version <Int32?>]: The version of the policy
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
 
SETTINGSTATES <IMicrosoftGraphDeviceConfigurationSettingState[]>: .
  [CurrentValue <String>]: Current value of setting on device
  [ErrorCode <Int64?>]: Error code for the setting
  [ErrorDescription <String>]: Error description
  [InstanceDisplayName <String>]: Name of setting instance that is being reported.
  [Setting <String>]: The setting that is being reported
  [SettingName <String>]: Localized/user friendly setting name that is being reported
  [Sources <IMicrosoftGraphSettingSource[]>]: Contributing policies
    [DisplayName <String>]: Not yet documented
    [Id <String>]: Not yet documented
    [SourceType <String>]: settingSourceType
  [State <String>]: complianceStatus
  [UserEmail <String>]: UserEmail
  [UserId <String>]: UserId
  [UserName <String>]: UserName
  [UserPrincipalName <String>]: UserPrincipalName.
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementmanageddeviceconfigurationstate
#>

function Update-MgDeviceManagementManagedDeviceConfigurationState {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationState])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceConfigurationState
    ${DeviceConfigurationStateId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of managedDevice
    ${ManagedDeviceId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationState]
    # Device Configuration State for a given device.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The name of the policy for this policyBase
    ${DisplayName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.PolicyPlatformType])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.PolicyPlatformType]
    # Supported platform types for policies.
    ${PlatformType},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Count of how many setting a policy holds
    ${SettingCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationSettingState[]]
    # .
    # To construct, see NOTES section for SETTINGSTATES properties and create a hash table.
    ${SettingStates},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # complianceStatus
    ${State},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # The version of the policy
    ${Version},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementManagedDeviceConfigurationState_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementManagedDeviceConfigurationState_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementManagedDeviceConfigurationState_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementManagedDeviceConfigurationState_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property managedDevices in deviceManagement
.Description
Update the navigation property managedDevices in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphManagedDevice
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphManagedDevice
.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.
 
BODYPARAMETER <IMicrosoftGraphManagedDevice>: Devices that are managed or pre-enrolled through Intune
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ComplianceState <ComplianceState?>]: Compliance state.
  [ConfigurationManagerClientEnabledFeatures <IMicrosoftGraphConfigurationManagerClientEnabledFeatures>]: configuration Manager client enabled features
    [(Any) <Object>]: This indicates any property can be added to this object.
    [CompliancePolicy <Boolean?>]: Whether compliance policy is managed by Intune
    [DeviceConfiguration <Boolean?>]: Whether device configuration is managed by Intune
    [Inventory <Boolean?>]: Whether inventory is managed by Intune
    [ModernApps <Boolean?>]: Whether modern application is managed by Intune
    [ResourceAccess <Boolean?>]: Whether resource access is managed by Intune
    [WindowsUpdateForBusiness <Boolean?>]: Whether Windows Update for Business is managed by Intune
  [DeviceCategory <IMicrosoftGraphDeviceCategory>]: Device categories provides a way to organize your devices. Using device categories, company administrators can define their own categories that make sense to their company. These categories can then be applied to a device in the Intune Azure console or selected by a user during device enrollment. You can filter reports and create dynamic Azure Active Directory device groups based on device categories.
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique idenfier for an entity. Read-only.
    [Description <String>]: Optional description for the device category.
    [DisplayName <String>]: Display name for the device category.
  [DeviceEnrollmentType <DeviceEnrollmentType?>]: Possible ways of adding a mobile device to management.
  [DeviceHealthAttestationState <IMicrosoftGraphDeviceHealthAttestationState>]: deviceHealthAttestationState
    [(Any) <Object>]: This indicates any property can be added to this object.
    [AttestationIdentityKey <String>]: TWhen an Attestation Identity Key (AIK) is present on a device, it indicates that the device has an endorsement key (EK) certificate.
    [BitLockerStatus <String>]: On or Off of BitLocker Drive Encryption
    [BootAppSecurityVersion <String>]: The security version number of the Boot Application
    [BootDebugging <String>]: When bootDebugging is enabled, the device is used in development and testing
    [BootManagerSecurityVersion <String>]: The security version number of the Boot Application
    [BootManagerVersion <String>]: The version of the Boot Manager
    [BootRevisionListInfo <String>]: The Boot Revision List that was loaded during initial boot on the attested device
    [CodeIntegrity <String>]: When code integrity is enabled, code execution is restricted to integrity verified code
    [CodeIntegrityCheckVersion <String>]: The version of the Boot Manager
    [CodeIntegrityPolicy <String>]: The Code Integrity policy that is controlling the security of the boot environment
    [ContentNamespaceUrl <String>]: The DHA report version. (Namespace version)
    [ContentVersion <String>]: The HealthAttestation state schema version
    [DataExcutionPolicy <String>]: DEP Policy defines a set of hardware and software technologies that perform additional checks on memory
    [DeviceHealthAttestationStatus <String>]: The DHA report version. (Namespace version)
    [EarlyLaunchAntiMalwareDriverProtection <String>]: ELAM provides protection for the computers in your network when they start up
    [HealthAttestationSupportedStatus <String>]: This attribute indicates if DHA is supported for the device
    [HealthStatusMismatchInfo <String>]: This attribute appears if DHA-Service detects an integrity issue
    [IssuedDateTime <DateTime?>]: The DateTime when device was evaluated or issued to MDM
    [LastUpdateDateTime <String>]: The Timestamp of the last update.
    [OperatingSystemKernelDebugging <String>]: When operatingSystemKernelDebugging is enabled, the device is used in development and testing
    [OperatingSystemRevListInfo <String>]: The Operating System Revision List that was loaded during initial boot on the attested device
    [Pcr0 <String>]: The measurement that is captured in PCR[0]
    [PcrHashAlgorithm <String>]: Informational attribute that identifies the HASH algorithm that was used by TPM
    [ResetCount <Int64?>]: The number of times a PC device has hibernated or resumed
    [RestartCount <Int64?>]: The number of times a PC device has rebooted
    [SafeMode <String>]: Safe mode is a troubleshooting option for Windows that starts your computer in a limited state
    [SecureBoot <String>]: When Secure Boot is enabled, the core components must have the correct cryptographic signatures
    [SecureBootConfigurationPolicyFingerPrint <String>]: Fingerprint of the Custom Secure Boot Configuration Policy
    [TestSigning <String>]: When test signing is allowed, the device does not enforce signature validation during boot
    [TpmVersion <String>]: The security version number of the Boot Application
    [VirtualSecureMode <String>]: VSM is a container that protects high value assets from a compromised kernel
    [WindowsPe <String>]: Operating system running with limited services that is used to prepare a computer for Windows
  [DeviceRegistrationState <DeviceRegistrationState?>]: Device registration status.
  [ExchangeAccessState <DeviceManagementExchangeAccessState?>]: Device Exchange Access State.
  [ExchangeAccessStateReason <DeviceManagementExchangeAccessStateReason?>]: Device Exchange Access State Reason.
  [ManagedDeviceName <String>]: Automatically generated name to identify a device. Can be overwritten to a user friendly name.
  [ManagedDeviceOwnerType <ManagedDeviceOwnerType?>]: Owner type of device.
  [ManagementAgent <ManagementAgentType?>]: managementAgentType
  [Notes <String>]: Notes on the device created by IT Admin. Return default value null in LIST managedDevices. Real value only returned in singel device GET call with device id and included in select parameter. Supports: $select. $Search is not supported.
  [PartnerReportedThreatState <ManagedDevicePartnerReportedHealthState?>]: Available health states for the Device Health API
 
CONFIGURATIONMANAGERCLIENTENABLEDFEATURES <IMicrosoftGraphConfigurationManagerClientEnabledFeatures>: configuration Manager client enabled features
  [(Any) <Object>]: This indicates any property can be added to this object.
  [CompliancePolicy <Boolean?>]: Whether compliance policy is managed by Intune
  [DeviceConfiguration <Boolean?>]: Whether device configuration is managed by Intune
  [Inventory <Boolean?>]: Whether inventory is managed by Intune
  [ModernApps <Boolean?>]: Whether modern application is managed by Intune
  [ResourceAccess <Boolean?>]: Whether resource access is managed by Intune
  [WindowsUpdateForBusiness <Boolean?>]: Whether Windows Update for Business is managed by Intune
 
DEVICECATEGORY <IMicrosoftGraphDeviceCategory>: Device categories provides a way to organize your devices. Using device categories, company administrators can define their own categories that make sense to their company. These categories can then be applied to a device in the Intune Azure console or selected by a user during device enrollment. You can filter reports and create dynamic Azure Active Directory device groups based on device categories.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [Description <String>]: Optional description for the device category.
  [DisplayName <String>]: Display name for the device category.
 
DEVICEHEALTHATTESTATIONSTATE <IMicrosoftGraphDeviceHealthAttestationState>: deviceHealthAttestationState
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AttestationIdentityKey <String>]: TWhen an Attestation Identity Key (AIK) is present on a device, it indicates that the device has an endorsement key (EK) certificate.
  [BitLockerStatus <String>]: On or Off of BitLocker Drive Encryption
  [BootAppSecurityVersion <String>]: The security version number of the Boot Application
  [BootDebugging <String>]: When bootDebugging is enabled, the device is used in development and testing
  [BootManagerSecurityVersion <String>]: The security version number of the Boot Application
  [BootManagerVersion <String>]: The version of the Boot Manager
  [BootRevisionListInfo <String>]: The Boot Revision List that was loaded during initial boot on the attested device
  [CodeIntegrity <String>]: When code integrity is enabled, code execution is restricted to integrity verified code
  [CodeIntegrityCheckVersion <String>]: The version of the Boot Manager
  [CodeIntegrityPolicy <String>]: The Code Integrity policy that is controlling the security of the boot environment
  [ContentNamespaceUrl <String>]: The DHA report version. (Namespace version)
  [ContentVersion <String>]: The HealthAttestation state schema version
  [DataExcutionPolicy <String>]: DEP Policy defines a set of hardware and software technologies that perform additional checks on memory
  [DeviceHealthAttestationStatus <String>]: The DHA report version. (Namespace version)
  [EarlyLaunchAntiMalwareDriverProtection <String>]: ELAM provides protection for the computers in your network when they start up
  [HealthAttestationSupportedStatus <String>]: This attribute indicates if DHA is supported for the device
  [HealthStatusMismatchInfo <String>]: This attribute appears if DHA-Service detects an integrity issue
  [IssuedDateTime <DateTime?>]: The DateTime when device was evaluated or issued to MDM
  [LastUpdateDateTime <String>]: The Timestamp of the last update.
  [OperatingSystemKernelDebugging <String>]: When operatingSystemKernelDebugging is enabled, the device is used in development and testing
  [OperatingSystemRevListInfo <String>]: The Operating System Revision List that was loaded during initial boot on the attested device
  [Pcr0 <String>]: The measurement that is captured in PCR[0]
  [PcrHashAlgorithm <String>]: Informational attribute that identifies the HASH algorithm that was used by TPM
  [ResetCount <Int64?>]: The number of times a PC device has hibernated or resumed
  [RestartCount <Int64?>]: The number of times a PC device has rebooted
  [SafeMode <String>]: Safe mode is a troubleshooting option for Windows that starts your computer in a limited state
  [SecureBoot <String>]: When Secure Boot is enabled, the core components must have the correct cryptographic signatures
  [SecureBootConfigurationPolicyFingerPrint <String>]: Fingerprint of the Custom Secure Boot Configuration Policy
  [TestSigning <String>]: When test signing is allowed, the device does not enforce signature validation during boot
  [TpmVersion <String>]: The security version number of the Boot Application
  [VirtualSecureMode <String>]: VSM is a container that protects high value assets from a compromised kernel
  [WindowsPe <String>]: Operating system running with limited services that is used to prepare a computer for Windows
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementmanageddevice
#>

function Update-MgDeviceManagementManagedDevice {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphManagedDevice])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of managedDevice
    ${ManagedDeviceId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphManagedDevice]
    # Devices that are managed or pre-enrolled through Intune
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.ComplianceState])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.ComplianceState]
    # Compliance state.
    ${ComplianceState},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphConfigurationManagerClientEnabledFeatures]
    # configuration Manager client enabled features
    # To construct, see NOTES section for CONFIGURATIONMANAGERCLIENTENABLEDFEATURES properties and create a hash table.
    ${ConfigurationManagerClientEnabledFeatures},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCategory]
    # Device categories provides a way to organize your devices.
    # Using device categories, company administrators can define their own categories that make sense to their company.
    # These categories can then be applied to a device in the Intune Azure console or selected by a user during device enrollment.
    # You can filter reports and create dynamic Azure Active Directory device groups based on device categories.
    # To construct, see NOTES section for DEVICECATEGORY properties and create a hash table.
    ${DeviceCategory},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.DeviceEnrollmentType])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.DeviceEnrollmentType]
    # Possible ways of adding a mobile device to management.
    ${DeviceEnrollmentType},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceHealthAttestationState]
    # deviceHealthAttestationState
    # To construct, see NOTES section for DEVICEHEALTHATTESTATIONSTATE properties and create a hash table.
    ${DeviceHealthAttestationState},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.DeviceRegistrationState])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.DeviceRegistrationState]
    # Device registration status.
    ${DeviceRegistrationState},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.DeviceManagementExchangeAccessState])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.DeviceManagementExchangeAccessState]
    # Device Exchange Access State.
    ${ExchangeAccessState},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.DeviceManagementExchangeAccessStateReason])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.DeviceManagementExchangeAccessStateReason]
    # Device Exchange Access State Reason.
    ${ExchangeAccessStateReason},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Automatically generated name to identify a device.
    # Can be overwritten to a user friendly name.
    ${ManagedDeviceName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.ManagedDeviceOwnerType])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.ManagedDeviceOwnerType]
    # Owner type of device.
    ${ManagedDeviceOwnerType},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.ManagementAgentType])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.ManagementAgentType]
    # managementAgentType
    ${ManagementAgent},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Notes on the device created by IT Admin.
    # Return default value null in LIST managedDevices.
    # Real value only returned in singel device GET call with device id and included in select parameter.
    # Supports: $select.
    # $Search is not supported.
    ${Notes},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.ManagedDevicePartnerReportedHealthState])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.ManagedDevicePartnerReportedHealthState]
    # Available health states for the Device Health API
    ${PartnerReportedThreatState},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementManagedDevice_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementManagedDevice_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementManagedDevice_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementManagedDevice_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property localizedNotificationMessages in deviceManagement
.Description
Update the navigation property localizedNotificationMessages in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLocalizedNotificationMessage
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLocalizedNotificationMessage
.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.
 
BODYPARAMETER <IMicrosoftGraphLocalizedNotificationMessage>: The text content of a Notification Message Template for the specified locale.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [IsDefault <Boolean?>]: Flag to indicate whether or not this is the default locale for language fallback. This flag can only be set. To unset, set this property to true on another Localized Notification Message.
  [LastModifiedDateTime <DateTime?>]: DateTime the object was last modified.
  [Locale <String>]: The Locale for which this message is destined.
  [MessageTemplate <String>]: The Message Template content.
  [Subject <String>]: The Message Template Subject.
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementnotificationmessagetemplatelocalizednotificationmessage
#>

function Update-MgDeviceManagementNotificationMessageTemplateLocalizedNotificationMessage {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLocalizedNotificationMessage])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of localizedNotificationMessage
    ${LocalizedNotificationMessageId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of notificationMessageTemplate
    ${NotificationMessageTemplateId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLocalizedNotificationMessage]
    # The text content of a Notification Message Template for the specified locale.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Flag to indicate whether or not this is the default locale for language fallback.
    # This flag can only be set.
    # To unset, set this property to true on another Localized Notification Message.
    ${IsDefault},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # DateTime the object was last modified.
    ${LastModifiedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The Locale for which this message is destined.
    ${Locale},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The Message Template content.
    ${MessageTemplate},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The Message Template Subject.
    ${Subject},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementNotificationMessageTemplateLocalizedNotificationMessage_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementNotificationMessageTemplateLocalizedNotificationMessage_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementNotificationMessageTemplateLocalizedNotificationMessage_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementNotificationMessageTemplateLocalizedNotificationMessage_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property notificationMessageTemplates in deviceManagement
.Description
Update the navigation property notificationMessageTemplates in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphNotificationMessageTemplate
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphNotificationMessageTemplate
.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.
 
BODYPARAMETER <IMicrosoftGraphNotificationMessageTemplate>: Notification messages are messages that are sent to end users who are determined to be not-compliant with the compliance policies defined by the administrator. Administrators choose notifications and configure them in the Intune Admin Console using the compliance policy creation page under the “Actions for non-compliance” section. Use the notificationMessageTemplate object to create your own custom notifications for administrators to choose while configuring actions for non-compliance.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [BrandingOptions <NotificationTemplateBrandingOptions?>]: Branding Options for the Message Template. Branding is defined in the Intune Admin Console.
  [DefaultLocale <String>]: The default locale to fallback onto when the requested locale is not available.
  [DisplayName <String>]: Display name for the Notification Message Template.
  [LastModifiedDateTime <DateTime?>]: DateTime the object was last modified.
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementnotificationmessagetemplate
#>

function Update-MgDeviceManagementNotificationMessageTemplate {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphNotificationMessageTemplate])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of notificationMessageTemplate
    ${NotificationMessageTemplateId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphNotificationMessageTemplate]
    # Notification messages are messages that are sent to end users who are determined to be not-compliant with the compliance policies defined by the administrator.
    # Administrators choose notifications and configure them in the Intune Admin Console using the compliance policy creation page under the “Actions for non-compliance” section.
    # Use the notificationMessageTemplate object to create your own custom notifications for administrators to choose while configuring actions for non-compliance.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.NotificationTemplateBrandingOptions])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.NotificationTemplateBrandingOptions]
    # Branding Options for the Message Template.
    # Branding is defined in the Intune Admin Console.
    ${BrandingOptions},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The default locale to fallback onto when the requested locale is not available.
    ${DefaultLocale},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Display name for the Notification Message Template.
    ${DisplayName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # DateTime the object was last modified.
    ${LastModifiedDateTime},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementNotificationMessageTemplate_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementNotificationMessageTemplate_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementNotificationMessageTemplate_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementNotificationMessageTemplate_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property troubleshootingEvents in deviceManagement
.Description
Update the navigation property troubleshootingEvents in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceManagementTroubleshootingEvent
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceManagementTroubleshootingEvent
.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.
 
BODYPARAMETER <IMicrosoftGraphDeviceManagementTroubleshootingEvent>: Event representing an general failure.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [CorrelationId <String>]: Id used for tracing the failure in the service.
  [EventDateTime <DateTime?>]: Time when the event occurred .
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementtroubleshootingevent
#>

function Update-MgDeviceManagementTroubleshootingEvent {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceManagementTroubleshootingEvent])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of deviceManagementTroubleshootingEvent
    ${DeviceManagementTroubleshootingEventId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceManagementTroubleshootingEvent]
    # Event representing an general failure.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Id used for tracing the failure in the service.
    ${CorrelationId},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Time when the event occurred .
    ${EventDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementTroubleshootingEvent_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementTroubleshootingEvent_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementTroubleshootingEvent_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementTroubleshootingEvent_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property windowsInformationProtectionAppLearningSummaries in deviceManagement
.Description
Update the navigation property windowsInformationProtectionAppLearningSummaries in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWindowsInformationProtectionAppLearningSummary
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWindowsInformationProtectionAppLearningSummary
.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.
 
BODYPARAMETER <IMicrosoftGraphWindowsInformationProtectionAppLearningSummary>: Windows Information Protection AppLearning Summary entity.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ApplicationName <String>]: Application Name
  [ApplicationType <ApplicationType?>]: Possible types of Application
  [DeviceCount <Int32?>]: Device Count
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementwindowinformationprotectionapplearningsummary
#>

function Update-MgDeviceManagementWindowInformationProtectionAppLearningSummary {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWindowsInformationProtectionAppLearningSummary])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of windowsInformationProtectionAppLearningSummary
    ${WindowsInformationProtectionAppLearningSummaryId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWindowsInformationProtectionAppLearningSummary]
    # Windows Information Protection AppLearning Summary entity.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Application Name
    ${ApplicationName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.ApplicationType])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.ApplicationType]
    # Possible types of Application
    ${ApplicationType},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device Count
    ${DeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementWindowInformationProtectionAppLearningSummary_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementWindowInformationProtectionAppLearningSummary_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementWindowInformationProtectionAppLearningSummary_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementWindowInformationProtectionAppLearningSummary_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the navigation property windowsInformationProtectionNetworkLearningSummaries in deviceManagement
.Description
Update the navigation property windowsInformationProtectionNetworkLearningSummaries in deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWindowsInformationProtectionNetworkLearningSummary
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWindowsInformationProtectionNetworkLearningSummary
.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.
 
BODYPARAMETER <IMicrosoftGraphWindowsInformationProtectionNetworkLearningSummary>: Windows Information Protection Network learning Summary entity.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [DeviceCount <Int32?>]: Device Count
  [Url <String>]: Website url
 
INPUTOBJECT <IDeviceManagementIdentity>: Identity Parameter
  [DetectedAppId <String>]: key: id of detectedApp
  [DeviceCategoryId <String>]: key: id of deviceCategory
  [DeviceComplianceActionItemId <String>]: key: id of deviceComplianceActionItem
  [DeviceComplianceDeviceStatusId <String>]: key: id of deviceComplianceDeviceStatus
  [DeviceCompliancePolicyAssignmentId <String>]: key: id of deviceCompliancePolicyAssignment
  [DeviceCompliancePolicyId <String>]: key: id of deviceCompliancePolicy
  [DeviceCompliancePolicySettingStateSummaryId <String>]: key: id of deviceCompliancePolicySettingStateSummary
  [DeviceCompliancePolicyStateId <String>]: key: id of deviceCompliancePolicyState
  [DeviceComplianceScheduledActionForRuleId <String>]: key: id of deviceComplianceScheduledActionForRule
  [DeviceComplianceSettingStateId <String>]: key: id of deviceComplianceSettingState
  [DeviceComplianceUserStatusId <String>]: key: id of deviceComplianceUserStatus
  [DeviceConfigurationAssignmentId <String>]: key: id of deviceConfigurationAssignment
  [DeviceConfigurationDeviceStatusId <String>]: key: id of deviceConfigurationDeviceStatus
  [DeviceConfigurationId <String>]: key: id of deviceConfiguration
  [DeviceConfigurationStateId <String>]: key: id of deviceConfigurationState
  [DeviceConfigurationUserStatusId <String>]: key: id of deviceConfigurationUserStatus
  [DeviceManagementTroubleshootingEventId <String>]: key: id of deviceManagementTroubleshootingEvent
  [LocalizedNotificationMessageId <String>]: key: id of localizedNotificationMessage
  [ManagedDeviceId <String>]: key: id of managedDevice
  [NotificationMessageTemplateId <String>]: key: id of notificationMessageTemplate
  [SettingStateDeviceSummaryId <String>]: key: id of settingStateDeviceSummary
  [WindowsInformationProtectionAppLearningSummaryId <String>]: key: id of windowsInformationProtectionAppLearningSummary
  [WindowsInformationProtectionNetworkLearningSummaryId <String>]: key: id of windowsInformationProtectionNetworkLearningSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagementwindowinformationprotectionnetworklearningsummary
#>

function Update-MgDeviceManagementWindowInformationProtectionNetworkLearningSummary {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWindowsInformationProtectionNetworkLearningSummary])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of windowsInformationProtectionNetworkLearningSummary
    ${WindowsInformationProtectionNetworkLearningSummaryId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IDeviceManagementIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWindowsInformationProtectionNetworkLearningSummary]
    # Windows Information Protection Network learning Summary entity.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Int32]
    # Device Count
    ${DeviceCount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Website url
    ${Url},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementWindowInformationProtectionNetworkLearningSummary_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementWindowInformationProtectionNetworkLearningSummary_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementWindowInformationProtectionNetworkLearningSummary_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagementWindowInformationProtectionNetworkLearningSummary_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update deviceManagement
.Description
Update deviceManagement
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceManagement
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceManagement
.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.
 
APPLEPUSHNOTIFICATIONCERTIFICATE <IMicrosoftGraphApplePushNotificationCertificate>: Apple push notification certificate.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [AppleIdentifier <String>]: Apple Id of the account used to create the MDM push certificate.
  [Certificate <String>]: Not yet documented
  [CertificateUploadFailureReason <String>]: The reason the certificate upload failed.
  [CertificateUploadStatus <String>]: The certificate upload status.
  [ExpirationDateTime <DateTime?>]: The expiration date and time for Apple push notification certificate.
  [LastModifiedDateTime <DateTime?>]: Last modified date and time for Apple push notification certificate.
  [TopicIdentifier <String>]: Topic Id.
 
BODYPARAMETER <IMicrosoftGraphDeviceManagement>: Singleton entity that acts as a container for all device management functionality.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [ApplePushNotificationCertificate <IMicrosoftGraphApplePushNotificationCertificate>]: Apple push notification certificate.
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique idenfier for an entity. Read-only.
    [AppleIdentifier <String>]: Apple Id of the account used to create the MDM push certificate.
    [Certificate <String>]: Not yet documented
    [CertificateUploadFailureReason <String>]: The reason the certificate upload failed.
    [CertificateUploadStatus <String>]: The certificate upload status.
    [ExpirationDateTime <DateTime?>]: The expiration date and time for Apple push notification certificate.
    [LastModifiedDateTime <DateTime?>]: Last modified date and time for Apple push notification certificate.
    [TopicIdentifier <String>]: Topic Id.
  [ConditionalAccessSettings <IMicrosoftGraphOnPremisesConditionalAccessSettings>]: Singleton entity which represents the Exchange OnPremises Conditional Access Settings for a tenant.
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique idenfier for an entity. Read-only.
    [Enabled <Boolean?>]: Indicates if on premises conditional access is enabled for this organization
    [ExcludedGroups <String[]>]: User groups that will be exempt by on premises conditional access. All users in these groups will be exempt from the conditional access policy.
    [IncludedGroups <String[]>]: User groups that will be targeted by on premises conditional access. All users in these groups will be required to have mobile device managed and compliant for mail access.
    [OverrideDefaultRule <Boolean?>]: Override the default access rule when allowing a device to ensure access is granted.
  [DeviceCompliancePolicyDeviceStateSummary <IMicrosoftGraphDeviceCompliancePolicyDeviceStateSummary>]: deviceCompliancePolicyDeviceStateSummary
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique idenfier for an entity. Read-only.
    [CompliantDeviceCount <Int32?>]: Number of compliant devices
    [ConfigManagerCount <Int32?>]: Number of devices that have compliance managed by System Center Configuration Manager
    [ConflictDeviceCount <Int32?>]: Number of conflict devices
    [ErrorDeviceCount <Int32?>]: Number of error devices
    [InGracePeriodCount <Int32?>]: Number of devices that are in grace period
    [NonCompliantDeviceCount <Int32?>]: Number of NonCompliant devices
    [NotApplicableDeviceCount <Int32?>]: Number of not applicable devices
    [RemediatedDeviceCount <Int32?>]: Number of remediated devices
    [UnknownDeviceCount <Int32?>]: Number of unknown devices
  [DeviceConfigurationDeviceStateSummaries <IMicrosoftGraphDeviceConfigurationDeviceStateSummary>]: deviceConfigurationDeviceStateSummary
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique idenfier for an entity. Read-only.
    [CompliantDeviceCount <Int32?>]: Number of compliant devices
    [ConflictDeviceCount <Int32?>]: Number of conflict devices
    [ErrorDeviceCount <Int32?>]: Number of error devices
    [NonCompliantDeviceCount <Int32?>]: Number of NonCompliant devices
    [NotApplicableDeviceCount <Int32?>]: Number of not applicable devices
    [RemediatedDeviceCount <Int32?>]: Number of remediated devices
    [UnknownDeviceCount <Int32?>]: Number of unknown devices
  [IntuneAccountId <String>]: Intune Account Id for given tenant
  [IntuneBrand <IMicrosoftGraphIntuneBrand>]: intuneBrand contains data which is used in customizing the appearance of the Company Portal applications as well as the end user web portal.
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ContactItEmailAddress <String>]: Email address of the person/organization responsible for IT support.
    [ContactItName <String>]: Name of the person/organization responsible for IT support.
    [ContactItNotes <String>]: Text comments regarding the person/organization responsible for IT support.
    [ContactItPhoneNumber <String>]: Phone number of the person/organization responsible for IT support.
    [DarkBackgroundLogo <IMicrosoftGraphMimeContent>]: Contains properties for a generic mime content.
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Type <String>]: Indicates the content mime type.
      [Value <Byte[]>]: The byte array that contains the actual content.
    [DisplayName <String>]: Company/organization name that is displayed to end users.
    [LightBackgroundLogo <IMicrosoftGraphMimeContent>]: Contains properties for a generic mime content.
    [OnlineSupportSiteName <String>]: Display name of the company/organization’s IT helpdesk site.
    [OnlineSupportSiteUrl <String>]: URL to the company/organization’s IT helpdesk site.
    [PrivacyUrl <String>]: URL to the company/organization’s privacy policy.
    [ShowDisplayNameNextToLogo <Boolean?>]: Boolean that represents whether the administrator-supplied display name will be shown next to the logo image.
    [ShowLogo <Boolean?>]: Boolean that represents whether the administrator-supplied logo images are shown or not shown.
    [ShowNameNextToLogo <Boolean?>]: Boolean that represents whether the administrator-supplied display name will be shown next to the logo image.
    [ThemeColor <IMicrosoftGraphRgbColor>]: Color in RGB.
      [(Any) <Object>]: This indicates any property can be added to this object.
      [B <Int32?>]: Blue value
      [G <Int32?>]: Green value
      [R <Int32?>]: Red value
  [ManagedDeviceOverview <IMicrosoftGraphManagedDeviceOverview>]: Summary data for managed devices
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique idenfier for an entity. Read-only.
    [DeviceExchangeAccessStateSummary <IMicrosoftGraphDeviceExchangeAccessStateSummary>]: Device Exchange Access State summary
      [(Any) <Object>]: This indicates any property can be added to this object.
      [AllowedDeviceCount <Int32?>]: Total count of devices with Exchange Access State: Allowed.
      [BlockedDeviceCount <Int32?>]: Total count of devices with Exchange Access State: Blocked.
      [QuarantinedDeviceCount <Int32?>]: Total count of devices with Exchange Access State: Quarantined.
      [UnavailableDeviceCount <Int32?>]: Total count of devices for which no Exchange Access State could be found.
      [UnknownDeviceCount <Int32?>]: Total count of devices with Exchange Access State: Unknown.
    [DeviceOperatingSystemSummary <IMicrosoftGraphDeviceOperatingSystemSummary>]: Device operating system summary.
      [(Any) <Object>]: This indicates any property can be added to this object.
      [AndroidCorporateWorkProfileCount <Int32?>]: The count of Corporate work profile Android devices. Also known as Corporate Owned Personally Enabled (COPE). Valid values -1 to 2147483647
      [AndroidCount <Int32?>]: Number of android device count.
      [AndroidDedicatedCount <Int32?>]: Number of dedicated Android devices.
      [AndroidDeviceAdminCount <Int32?>]: Number of device admin Android devices.
      [AndroidFullyManagedCount <Int32?>]: Number of fully managed Android devices.
      [AndroidWorkProfileCount <Int32?>]: Number of work profile Android devices.
      [ConfigMgrDeviceCount <Int32?>]: Number of ConfigMgr managed devices.
      [IosCount <Int32?>]: Number of iOS device count.
      [MacOSCount <Int32?>]: Number of Mac OS X device count.
      [UnknownCount <Int32?>]: Number of unknown device count.
      [WindowsCount <Int32?>]: Number of Windows device count.
      [WindowsMobileCount <Int32?>]: Number of Windows mobile device count.
    [DualEnrolledDeviceCount <Int32?>]: The number of devices enrolled in both MDM and EAS
    [EnrolledDeviceCount <Int32?>]: Total enrolled device count. Does not include PC devices managed via Intune PC Agent
    [MdmEnrolledCount <Int32?>]: The number of devices enrolled in MDM
  [Reports <IMicrosoftGraphDeviceManagementReports>]: Singleton entity that acts as a container for all reports functionality.
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique idenfier for an entity. Read-only.
  [Settings <IMicrosoftGraphDeviceManagementSettings>]: deviceManagementSettings
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DeviceComplianceCheckinThresholdDays <Int32?>]: The number of days a device is allowed to go without checking in to remain compliant.
    [IsScheduledActionEnabled <Boolean?>]: Is feature enabled or not for scheduled action for rule.
    [SecureByDefault <Boolean?>]: Device should be noncompliant when there is no compliance policy targeted when this is true
  [SoftwareUpdateStatusSummary <IMicrosoftGraphSoftwareUpdateStatusSummary>]: softwareUpdateStatusSummary
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique idenfier for an entity. Read-only.
    [CompliantDeviceCount <Int32?>]: Number of compliant devices.
    [CompliantUserCount <Int32?>]: Number of compliant users.
    [ConflictDeviceCount <Int32?>]: Number of conflict devices.
    [ConflictUserCount <Int32?>]: Number of conflict users.
    [DisplayName <String>]: The name of the policy.
    [ErrorDeviceCount <Int32?>]: Number of devices had error.
    [ErrorUserCount <Int32?>]: Number of users had error.
    [NonCompliantDeviceCount <Int32?>]: Number of non compliant devices.
    [NonCompliantUserCount <Int32?>]: Number of non compliant users.
    [NotApplicableDeviceCount <Int32?>]: Number of not applicable devices.
    [NotApplicableUserCount <Int32?>]: Number of not applicable users.
    [RemediatedDeviceCount <Int32?>]: Number of remediated devices.
    [RemediatedUserCount <Int32?>]: Number of remediated users.
    [UnknownDeviceCount <Int32?>]: Number of unknown devices.
    [UnknownUserCount <Int32?>]: Number of unknown users.
  [SubscriptionState <DeviceManagementSubscriptionState?>]: Tenant mobile device management subscription state.
 
CONDITIONALACCESSSETTINGS <IMicrosoftGraphOnPremisesConditionalAccessSettings>: Singleton entity which represents the Exchange OnPremises Conditional Access Settings for a tenant.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [Enabled <Boolean?>]: Indicates if on premises conditional access is enabled for this organization
  [ExcludedGroups <String[]>]: User groups that will be exempt by on premises conditional access. All users in these groups will be exempt from the conditional access policy.
  [IncludedGroups <String[]>]: User groups that will be targeted by on premises conditional access. All users in these groups will be required to have mobile device managed and compliant for mail access.
  [OverrideDefaultRule <Boolean?>]: Override the default access rule when allowing a device to ensure access is granted.
 
DEVICECOMPLIANCEPOLICYDEVICESTATESUMMARY <IMicrosoftGraphDeviceCompliancePolicyDeviceStateSummary>: deviceCompliancePolicyDeviceStateSummary
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [CompliantDeviceCount <Int32?>]: Number of compliant devices
  [ConfigManagerCount <Int32?>]: Number of devices that have compliance managed by System Center Configuration Manager
  [ConflictDeviceCount <Int32?>]: Number of conflict devices
  [ErrorDeviceCount <Int32?>]: Number of error devices
  [InGracePeriodCount <Int32?>]: Number of devices that are in grace period
  [NonCompliantDeviceCount <Int32?>]: Number of NonCompliant devices
  [NotApplicableDeviceCount <Int32?>]: Number of not applicable devices
  [RemediatedDeviceCount <Int32?>]: Number of remediated devices
  [UnknownDeviceCount <Int32?>]: Number of unknown devices
 
DEVICECONFIGURATIONDEVICESTATESUMMARIES <IMicrosoftGraphDeviceConfigurationDeviceStateSummary>: deviceConfigurationDeviceStateSummary
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [CompliantDeviceCount <Int32?>]: Number of compliant devices
  [ConflictDeviceCount <Int32?>]: Number of conflict devices
  [ErrorDeviceCount <Int32?>]: Number of error devices
  [NonCompliantDeviceCount <Int32?>]: Number of NonCompliant devices
  [NotApplicableDeviceCount <Int32?>]: Number of not applicable devices
  [RemediatedDeviceCount <Int32?>]: Number of remediated devices
  [UnknownDeviceCount <Int32?>]: Number of unknown devices
 
INTUNEBRAND <IMicrosoftGraphIntuneBrand>: intuneBrand contains data which is used in customizing the appearance of the Company Portal applications as well as the end user web portal.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ContactItEmailAddress <String>]: Email address of the person/organization responsible for IT support.
  [ContactItName <String>]: Name of the person/organization responsible for IT support.
  [ContactItNotes <String>]: Text comments regarding the person/organization responsible for IT support.
  [ContactItPhoneNumber <String>]: Phone number of the person/organization responsible for IT support.
  [DarkBackgroundLogo <IMicrosoftGraphMimeContent>]: Contains properties for a generic mime content.
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String>]: Indicates the content mime type.
    [Value <Byte[]>]: The byte array that contains the actual content.
  [DisplayName <String>]: Company/organization name that is displayed to end users.
  [LightBackgroundLogo <IMicrosoftGraphMimeContent>]: Contains properties for a generic mime content.
  [OnlineSupportSiteName <String>]: Display name of the company/organization’s IT helpdesk site.
  [OnlineSupportSiteUrl <String>]: URL to the company/organization’s IT helpdesk site.
  [PrivacyUrl <String>]: URL to the company/organization’s privacy policy.
  [ShowDisplayNameNextToLogo <Boolean?>]: Boolean that represents whether the administrator-supplied display name will be shown next to the logo image.
  [ShowLogo <Boolean?>]: Boolean that represents whether the administrator-supplied logo images are shown or not shown.
  [ShowNameNextToLogo <Boolean?>]: Boolean that represents whether the administrator-supplied display name will be shown next to the logo image.
  [ThemeColor <IMicrosoftGraphRgbColor>]: Color in RGB.
    [(Any) <Object>]: This indicates any property can be added to this object.
    [B <Int32?>]: Blue value
    [G <Int32?>]: Green value
    [R <Int32?>]: Red value
 
MANAGEDDEVICEOVERVIEW <IMicrosoftGraphManagedDeviceOverview>: Summary data for managed devices
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [DeviceExchangeAccessStateSummary <IMicrosoftGraphDeviceExchangeAccessStateSummary>]: Device Exchange Access State summary
    [(Any) <Object>]: This indicates any property can be added to this object.
    [AllowedDeviceCount <Int32?>]: Total count of devices with Exchange Access State: Allowed.
    [BlockedDeviceCount <Int32?>]: Total count of devices with Exchange Access State: Blocked.
    [QuarantinedDeviceCount <Int32?>]: Total count of devices with Exchange Access State: Quarantined.
    [UnavailableDeviceCount <Int32?>]: Total count of devices for which no Exchange Access State could be found.
    [UnknownDeviceCount <Int32?>]: Total count of devices with Exchange Access State: Unknown.
  [DeviceOperatingSystemSummary <IMicrosoftGraphDeviceOperatingSystemSummary>]: Device operating system summary.
    [(Any) <Object>]: This indicates any property can be added to this object.
    [AndroidCorporateWorkProfileCount <Int32?>]: The count of Corporate work profile Android devices. Also known as Corporate Owned Personally Enabled (COPE). Valid values -1 to 2147483647
    [AndroidCount <Int32?>]: Number of android device count.
    [AndroidDedicatedCount <Int32?>]: Number of dedicated Android devices.
    [AndroidDeviceAdminCount <Int32?>]: Number of device admin Android devices.
    [AndroidFullyManagedCount <Int32?>]: Number of fully managed Android devices.
    [AndroidWorkProfileCount <Int32?>]: Number of work profile Android devices.
    [ConfigMgrDeviceCount <Int32?>]: Number of ConfigMgr managed devices.
    [IosCount <Int32?>]: Number of iOS device count.
    [MacOSCount <Int32?>]: Number of Mac OS X device count.
    [UnknownCount <Int32?>]: Number of unknown device count.
    [WindowsCount <Int32?>]: Number of Windows device count.
    [WindowsMobileCount <Int32?>]: Number of Windows mobile device count.
  [DualEnrolledDeviceCount <Int32?>]: The number of devices enrolled in both MDM and EAS
  [EnrolledDeviceCount <Int32?>]: Total enrolled device count. Does not include PC devices managed via Intune PC Agent
  [MdmEnrolledCount <Int32?>]: The number of devices enrolled in MDM
 
REPORTS <IMicrosoftGraphDeviceManagementReports>: Singleton entity that acts as a container for all reports functionality.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
 
SETTINGS <IMicrosoftGraphDeviceManagementSettings>: deviceManagementSettings
  [(Any) <Object>]: This indicates any property can be added to this object.
  [DeviceComplianceCheckinThresholdDays <Int32?>]: The number of days a device is allowed to go without checking in to remain compliant.
  [IsScheduledActionEnabled <Boolean?>]: Is feature enabled or not for scheduled action for rule.
  [SecureByDefault <Boolean?>]: Device should be noncompliant when there is no compliance policy targeted when this is true
 
SOFTWAREUPDATESTATUSSUMMARY <IMicrosoftGraphSoftwareUpdateStatusSummary>: softwareUpdateStatusSummary
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique idenfier for an entity. Read-only.
  [CompliantDeviceCount <Int32?>]: Number of compliant devices.
  [CompliantUserCount <Int32?>]: Number of compliant users.
  [ConflictDeviceCount <Int32?>]: Number of conflict devices.
  [ConflictUserCount <Int32?>]: Number of conflict users.
  [DisplayName <String>]: The name of the policy.
  [ErrorDeviceCount <Int32?>]: Number of devices had error.
  [ErrorUserCount <Int32?>]: Number of users had error.
  [NonCompliantDeviceCount <Int32?>]: Number of non compliant devices.
  [NonCompliantUserCount <Int32?>]: Number of non compliant users.
  [NotApplicableDeviceCount <Int32?>]: Number of not applicable devices.
  [NotApplicableUserCount <Int32?>]: Number of not applicable users.
  [RemediatedDeviceCount <Int32?>]: Number of remediated devices.
  [RemediatedUserCount <Int32?>]: Number of remediated users.
  [UnknownDeviceCount <Int32?>]: Number of unknown devices.
  [UnknownUserCount <Int32?>]: Number of unknown users.
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.devicemanagement/update-mgdevicemanagement
#>

function Update-MgDeviceManagement {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceManagement])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceManagement]
    # Singleton entity that acts as a container for all device management functionality.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphApplePushNotificationCertificate]
    # Apple push notification certificate.
    # To construct, see NOTES section for APPLEPUSHNOTIFICATIONCERTIFICATE properties and create a hash table.
    ${ApplePushNotificationCertificate},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphOnPremisesConditionalAccessSettings]
    # Singleton entity which represents the Exchange OnPremises Conditional Access Settings for a tenant.
    # To construct, see NOTES section for CONDITIONALACCESSSETTINGS properties and create a hash table.
    ${ConditionalAccessSettings},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceCompliancePolicyDeviceStateSummary]
    # deviceCompliancePolicyDeviceStateSummary
    # To construct, see NOTES section for DEVICECOMPLIANCEPOLICYDEVICESTATESUMMARY properties and create a hash table.
    ${DeviceCompliancePolicyDeviceStateSummary},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceConfigurationDeviceStateSummary]
    # deviceConfigurationDeviceStateSummary
    # To construct, see NOTES section for DEVICECONFIGURATIONDEVICESTATESUMMARIES properties and create a hash table.
    ${DeviceConfigurationDeviceStateSummaries},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique idenfier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Intune Account Id for given tenant
    ${IntuneAccountId},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphIntuneBrand]
    # intuneBrand contains data which is used in customizing the appearance of the Company Portal applications as well as the end user web portal.
    # To construct, see NOTES section for INTUNEBRAND properties and create a hash table.
    ${IntuneBrand},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphManagedDeviceOverview]
    # Summary data for managed devices
    # To construct, see NOTES section for MANAGEDDEVICEOVERVIEW properties and create a hash table.
    ${ManagedDeviceOverview},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceManagementReports]
    # Singleton entity that acts as a container for all reports functionality.
    # To construct, see NOTES section for REPORTS properties and create a hash table.
    ${Reports},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDeviceManagementSettings]
    # deviceManagementSettings
    # To construct, see NOTES section for SETTINGS properties and create a hash table.
    ${Settings},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSoftwareUpdateStatusSummary]
    # softwareUpdateStatusSummary
    # To construct, see NOTES section for SOFTWAREUPDATESTATUSSUMMARY properties and create a hash table.
    ${SoftwareUpdateStatusSummary},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [ArgumentCompleter([Microsoft.Graph.PowerShell.Support.DeviceManagementSubscriptionState])]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Support.DeviceManagementSubscriptionState]
    # Tenant mobile device management subscription state.
    ${SubscriptionState},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagement_Update';
            UpdateExpanded = 'Microsoft.Graph.DeviceManagement.private\Update-MgDeviceManagement_UpdateExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

# SIG # Begin signature block
# MIInoAYJKoZIhvcNAQcCoIInkTCCJ40CAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBhK4GEutkUiPNx
# OudXlQnRPXzdYYtnb7P6TnnHVKDAZKCCDYEwggX/MIID56ADAgECAhMzAAACzI61
# lqa90clOAAAAAALMMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
# bmcgUENBIDIwMTEwHhcNMjIwNTEyMjA0NjAxWhcNMjMwNTExMjA0NjAxWjB0MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
# AQCiTbHs68bADvNud97NzcdP0zh0mRr4VpDv68KobjQFybVAuVgiINf9aG2zQtWK
# No6+2X2Ix65KGcBXuZyEi0oBUAAGnIe5O5q/Y0Ij0WwDyMWaVad2Te4r1Eic3HWH
# UfiiNjF0ETHKg3qa7DCyUqwsR9q5SaXuHlYCwM+m59Nl3jKnYnKLLfzhl13wImV9
# DF8N76ANkRyK6BYoc9I6hHF2MCTQYWbQ4fXgzKhgzj4zeabWgfu+ZJCiFLkogvc0
# RVb0x3DtyxMbl/3e45Eu+sn/x6EVwbJZVvtQYcmdGF1yAYht+JnNmWwAxL8MgHMz
# xEcoY1Q1JtstiY3+u3ulGMvhAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE
# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUiLhHjTKWzIqVIp+sM2rOHH11rfQw
# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1
# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDcwNTI5MB8GA1UdIwQYMBaAFEhu
# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu
# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w
# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3
# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx
# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAeA8D
# sOAHS53MTIHYu8bbXrO6yQtRD6JfyMWeXaLu3Nc8PDnFc1efYq/F3MGx/aiwNbcs
# J2MU7BKNWTP5JQVBA2GNIeR3mScXqnOsv1XqXPvZeISDVWLaBQzceItdIwgo6B13
# vxlkkSYMvB0Dr3Yw7/W9U4Wk5K/RDOnIGvmKqKi3AwyxlV1mpefy729FKaWT7edB
# d3I4+hldMY8sdfDPjWRtJzjMjXZs41OUOwtHccPazjjC7KndzvZHx/0VWL8n0NT/
# 404vftnXKifMZkS4p2sB3oK+6kCcsyWsgS/3eYGw1Fe4MOnin1RhgrW1rHPODJTG
# AUOmW4wc3Q6KKr2zve7sMDZe9tfylonPwhk971rX8qGw6LkrGFv31IJeJSe/aUbG
# dUDPkbrABbVvPElgoj5eP3REqx5jdfkQw7tOdWkhn0jDUh2uQen9Atj3RkJyHuR0
# GUsJVMWFJdkIO/gFwzoOGlHNsmxvpANV86/1qgb1oZXdrURpzJp53MsDaBY/pxOc
# J0Cvg6uWs3kQWgKk5aBzvsX95BzdItHTpVMtVPW4q41XEvbFmUP1n6oL5rdNdrTM
# j/HXMRk1KCksax1Vxo3qv+13cCsZAaQNaIAvt5LvkshZkDZIP//0Hnq7NnWeYR3z
# 4oFiw9N2n3bb9baQWuWPswG0Dq9YT9kb+Cs4qIIwggd6MIIFYqADAgECAgphDpDS
# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK
# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0
# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla
# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS
# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT
# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB
# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG
# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S
# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz
# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7
# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u
# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33
# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl
# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP
# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB
# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF
# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM
# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ
# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud
# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO
# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0
# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y
# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p
# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y
# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB
# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw
# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA
# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY
# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj
# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd
# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ
# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf
# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ
# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j
# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B
# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96
# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7
# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I
# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIZdTCCGXECAQEwgZUwfjELMAkG
# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z
# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAsyOtZamvdHJTgAAAAACzDAN
# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor
# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgsYima20U
# oFU9yQSGc8GoTj0Vg5XiPv1Ypbwy0SaVfHcwQgYKKwYBBAGCNwIBDDE0MDKgFIAS
# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN
# BgkqhkiG9w0BAQEFAASCAQB5w4BZ7VnwdvJQA5Nzde2Xse2aevBdc3qfnjcOyY6l
# MA7Yb/rG9yJlh3SubRAdh/fYcwN982e2kKXOXOWDBEm+j7OMUJaeYH4UP09jx28e
# JdfgB0txUB/peeVOgk4mh+12uHQY44sa21gY9xenHBUdfIusR7i657vMUtXHXdaT
# D2qBXMMmjXIfB1B4dO3e3R9ToBWNcFJqPfMkpp0ykOOZ2ec62DiPt+Uv4Oj9gknY
# 2DR4fMzqRNtxvA2Z4UB86UvZZfQZKiVXo4zLOKKTenlVTh4nk9FIzqFUFrwpZTjr
# i1TJfcl2WK/BAk1e0szTK1OogE7KgvNw7S2UTlsDFKvyoYIW/zCCFvsGCisGAQQB
# gjcDAwExghbrMIIW5wYJKoZIhvcNAQcCoIIW2DCCFtQCAQMxDzANBglghkgBZQME
# AgEFADCCAVAGCyqGSIb3DQEJEAEEoIIBPwSCATswggE3AgEBBgorBgEEAYRZCgMB
# MDEwDQYJYIZIAWUDBAIBBQAEIC5Q7/jnCC9O+w1j6bRTYAZ4NlsTYvrMre1ULGWx
# ajWEAgZjbVbP7NQYEjIwMjIxMjE0MDE1ODUyLjM4WjAEgAIB9KCB0KSBzTCByjEL
# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWlj
# cm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEmMCQGA1UECxMdVGhhbGVzIFRTUyBF
# U046RUFDRS1FMzE2LUM5MUQxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1w
# IFNlcnZpY2WgghFXMIIHDDCCBPSgAwIBAgITMwAAAcOLb9NIvw6RXQABAAABwzAN
# BgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv
# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0
# aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0y
# MjExMDQxOTAxMjlaFw0yNDAyMDIxOTAxMjlaMIHKMQswCQYDVQQGEwJVUzETMBEG
# A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj
# cm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBP
# cGVyYXRpb25zMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjpFQUNFLUUzMTYtQzkx
# RDElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCCAiIwDQYJ
# KoZIhvcNAQEBBQADggIPADCCAgoCggIBALvrvOrN0f6vopKLPNGg+NmJttTQzmbZ
# XTUcTBVMZuKPZFVpEodnPIzgsSV8FdihaHQk8aRkLPY8uZ1CPi6v27dB1rUmDzDz
# 7XreNtIM8DNRLEdupG6cJQR8RWOIZN8twB/tWCn/W4bz7O5D212x+4HWnIrXgfhe
# xaDkbfXtA/3bAXhvNBmQBdsui1gI+gtpjKpWn15MG308kGp7l+uWLvsTKcidXwER
# Kbke+uq3j66pRNCmmng9J6joBq05EmXgjAzx+jrSdNI1zMGyA8h+5eH2EXiLE38z
# eRn91Goq7I3mvihcttpVPHpZyF46Hssd6XHrB/quWq2NXOhz33kp5HjKJP4MZwez
# 9TI7eyPRCPbYULTL8v9UlJixtdqwUfw34XhP1SaXJv02HqFddTX0EJ5f4wWz20kQ
# adBxqkyHFg6WOjIEnQaEBE9Q76ROD1+LJ3TRnNcBsoOOaR+tmTH1Bfwsxme4let+
# 0bZ0BVw808aEhBJHVzHVgyRvo48aAtepUZNcRZ35AOLqJmuJirKO6rxOndu/iuss
# yElkO047rWCyiZ0szb34jYrsr/9McQgEkgEbzkN7/XHoLzP6Z7lPXOrPuIJit/uY
# 4XL51hkKiRNLaWB5pN25pgS9YB5vU4wSc+Zv/K7xzN0cNzlIVeP8JgC99ipj0eVG
# 2+MMORzRormNAgMBAAGjggE2MIIBMjAdBgNVHQ4EFgQUHBi+zdjXbwGivE3C68TE
# 7GvGgdYwHwYDVR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYDVR0fBFgw
# VjBUoFKgUIZOaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWlj
# cm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwGCCsGAQUF
# BwEBBGAwXjBcBggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3Br
# aW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgx
# KS5jcnQwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcDCDANBgkqhkiG
# 9w0BAQsFAAOCAgEA3fKmWxwanQRUQ8RhsA6JZZ0cndFplJ46qD/uUAh+LzDwbeLp
# h1YSbsnkZAxC5E1mblqit1Nc9h5xmrW5xE3B1JcsJR/tyO0e31NMymMNjywPlWsA
# nK57CAoBN9uNhLBAv2dGFO+NDSf8W7s6xrUxLVCIkL69gAjycobD6LXvCLU3+LjV
# uDG6NUD9LY3ASgoBHsyAuA2FDNAWAlgpnmZjcAJcX6U5YjhRCgfVGkqh0rOdXB/C
# WNIKi9y8CPS2H4xDu+/vh2P5zKlwjIvYoVCqCKdk34383ZuTYOVfssPPsF5dvUXF
# uEOArx57TXysU/aENye2AUEBB1iT4PEzUfcOAfNhc5qw3fLC+hE7xrseYRXMJhfk
# Nq0+TGvHWFEnQkoP4oaBGFBiWZ2S/Z8g6dbJ35UlV+xaS8gC8ww5RwVtQiYWFX3y
# UaKs9Q+JEaKKkQTUWjBTD4p4MsMGxIITIXiSjaHWuwBoKvtRx9Wn0ZRPvamFvRSj
# Hs8XkJn/IHLgLoa/SAF8mhfQxdDyeX+LoczkryAtQZCbcxeqKeOVGGiO1fvV/HXM
# F22SZyCAB9XI1TvChAocSiJKZOEIMtD6HIFMGhlqpi1kbtYUNViVp0F77wWHmAxl
# m4/z7UpcsL+pvJroy3qXzLyXFNuSlpJUj9hbjcemjlX3o3vqYG8CECFUNZ0wggdx
# MIIFWaADAgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGI
# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylN
# aWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5
# MzAxODIyMjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv
# ZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBD
# QSAyMDEwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciEL
# eaLL1yR5vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa
# 4n5KWv64NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxR
# MTegCjhuje3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEByd
# Uv626GIl3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi9
# 47SHJMPgyY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJi
# ss254o2I5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+
# /NmeRd+2ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY
# 7afomXw/TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtco
# dgLiMxhy16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH
# 29wb0f2y1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94
# q0W29R6HXtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcV
# AQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0G
# A1UdDgQWBBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQB
# gjdMg30BATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v
# cGtpb3BzL0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgw
# GQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB
# /wQFMAMBAf8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0f
# BE8wTTBLoEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJv
# ZHVjdHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4w
# TDBKBggrBgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0
# cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIB
# AJ1VffwqreEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRs
# fNB1OW27DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6
# Ce5732pvvinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveV
# tihVJ9AkvUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKB
# GUIZUnWKNsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoy
# GtmW9I/2kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQE
# cb9k+SS+c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFU
# a2pFEUep8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+
# k77L+DvktxW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0
# +CQ1ZyvgDbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cir
# Ooo6CGJ/2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYICzjCCAjcCAQEwgfih
# gdCkgc0wgcoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD
# VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAj
# BgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJjAkBgNVBAsTHVRo
# YWxlcyBUU1MgRVNOOkVBQ0UtRTMxNi1DOTFEMSUwIwYDVQQDExxNaWNyb3NvZnQg
# VGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQDxHS/j7PodN3vki13R
# s7mO7S7uzqCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y
# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0G
# CSqGSIb3DQEBBQUAAgUA50NWCTAiGA8yMDIyMTIxNDAzNTAzM1oYDzIwMjIxMjE1
# MDM1MDMzWjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDnQ1YJAgEAMAoCAQACAhLo
# AgH/MAcCAQACAhGuMAoCBQDnRKeJAgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisG
# AQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZIhvcNAQEFBQAD
# gYEAnj4Q93Ky120lZ2Q1djkFaNJRGippJ3kFiWnT7Lp0v9T4kdgZBNCedy5KdRJ+
# WDD1s8LYH9omUtYRBqfxAmMD/jKUz3WN4xXyHfZDcCz9aVFmIMgF1RUz+OlN7Xd+
# prkWLwJ3Sf0FmsPkrnvk0vcxha0/2uSot6VvrCTvrTRKsaAxggQNMIIECQIBATCB
# kzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD
# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAcOLb9NIvw6RXQAB
# AAABwzANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJ
# EAEEMC8GCSqGSIb3DQEJBDEiBCABjTzk9A0Mwcx/SmGczFPyCBiLC9Sz+zb+zQwU
# ZChMpTCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EINL7U5tvkknq4dSogJMK
# yUwC8U3yaLZT3A2dmUp+/CpJMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNV
# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
# c29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg
# UENBIDIwMTACEzMAAAHDi2/TSL8OkV0AAQAAAcMwIgQgNWCqFv36jmzN19LOSiXC
# DU/9LOPKiSbM6AlOigBaK+EwDQYJKoZIhvcNAQELBQAEggIAGMzw9iW7a0DyT2jm
# O/8rqPlrxK6gvA9cWIv2PAeSoIhGrhUT/qv0sbAcT/PEKyQsmPfZMJ6alB+SydZb
# Wgupt2loe5v/8mV8tfe9Oq2i1ZL+jPfhyJn7iM7f+lv34Dx+1yIRFIdOPgfG03zZ
# GSB9tmowGmvocLQKAk6IztLXRSUIvQumo4aI7t4sQqNd9K0qMaKDj39mzijwBv8x
# 5fNyLesRYXS4IUP7imFVd3dnqnzVP8oBqR8XvdKjPg/3P8pULtVyOqgFUOTffC2I
# WZC979GkYrokRecMBLCH90GXshRW8ozJJ7+0x/rLz5ljXNalvY89xYPndbGxyfSI
# 7LZJXXe76mwAK58mnWmOkO/PySFJlAgtsS9BQBQ2DSUGI9wZho8XpwwDx4hC6HXx
# MEtl7FVLk/jg0F2Rp/R9OixgMF1hRcF+/WS+R7RriXvSBuWZUIHmoRbk0FLgdzT6
# xTFrLZKMm2Wwnn4nH+oFSIfM/gwmhzmrxUY70dQJ/4Rd59Y7V1p/max6tOBrVWaN
# XdmIpCkXOZvcLm9f1b9YLHGlAe7CyrdM8indysJjiAxqlyjCGk1XPel6PX1+RPB1
# AVwKIteeMfKYKWYV5JaFzCtyLL9/JWqh/64Q4xtFJIM+junsj0zbL6NPNkQF0m+q
# fSOEKWgh00kPyNCqDqsZfqduUw8=
# SIG # End signature block