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 list of available print connectors.
.Description
The list of available print connectors.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintConnector
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprintconnector
#>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintConnector_Get';
            GetViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintConnector_GetViaIdentity';
            List = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintConnector_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 operations from print
.Description
Get operations from print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintOperation
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprintoperation
#>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintOperation_Get';
            GetViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintOperation_GetViaIdentity';
            List = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintOperation_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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
Invoke function getCapabilities
.Description
Invoke function getCapabilities
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterCapabilities
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprintprintercapability
#>

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterCapability_Get';
            GetViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterCapability_GetViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 connectors that are associated with the printer.
.Description
The connectors that are associated with the printer.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintConnector
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprintprinterconnector
#>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterConnector_Get';
            GetViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterConnector_GetViaIdentity';
            List = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterConnector_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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
Retrieve a list of groups that have been granted access to submit print jobs to the associated printerShare.
.Description
Retrieve a list of groups that have been granted access to submit print jobs to the associated printerShare.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprintprintershareallowedgroupbyref
#>

function Get-MgBetaPrintPrinterShareAllowedGroupByRef {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printerShare
    ${PrinterShareId},

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

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

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

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

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

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

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

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

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

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

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

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

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

    [Parameter()]
    [Alias('CV')]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterShareAllowedGroupByRef_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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
Retrieve a list of groups that have been granted access to submit print jobs to the associated printerShare.
.Description
Retrieve a list of groups that have been granted access to submit print jobs to the associated printerShare.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphGroup
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprintprintershareallowedgroup
#>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    [Parameter()]
    [Alias('CV')]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterShareAllowedGroup_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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
Retrieve a list of users who have been granted access to submit print jobs to the associated printerShare.
.Description
Retrieve a list of users who have been granted access to submit print jobs to the associated printerShare.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprintprintersharealloweduserbyref
#>

function Get-MgBetaPrintPrinterShareAllowedUserByRef {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printerShare
    ${PrinterShareId},

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

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

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

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

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

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

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

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

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

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

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

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

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

    [Parameter()]
    [Alias('CV')]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterShareAllowedUserByRef_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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
Retrieve a list of users who have been granted access to submit print jobs to the associated printerShare.
.Description
Retrieve a list of users who have been granted access to submit print jobs to the associated printerShare.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphUser
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprintprintersharealloweduser
#>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    [Parameter()]
    [Alias('CV')]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterShareAllowedUser_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 printer that this printer share is related to.
.Description
The printer that this printer share is related to.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinter
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprintprintershareprinter
#>

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

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

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterSharePrinter_Get';
            GetViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterSharePrinter_GetViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 printerShares from print
.Description
Get printerShares from print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShare
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprintprintershare
#>

function Get-MgBetaPrintPrinterShare {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShare])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='Get2', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printerShare
    ${PrinterShareId},

    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Parameter(ParameterSetName='Get2', Mandatory)]
    [Parameter(ParameterSetName='List1', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printer
    ${PrinterId},

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Parameter(ParameterSetName='List1')]
    [Alias('CV')]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterShare_Get';
            Get1 = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterShare_Get1';
            Get2 = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterShare_Get2';
            GetViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterShare_GetViaIdentity';
            GetViaIdentity1 = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterShare_GetViaIdentity1';
            GetViaIdentity2 = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterShare_GetViaIdentity2';
            List = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterShare_List';
            List1 = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterShare_List1';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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
An abstract definition that will be used to create a printTask when triggered by a print event.
Read-only.
.Description
An abstract definition that will be used to create a printTask when triggered by a print event.
Read-only.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskDefinition
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprintprintertasktriggerdefinition
#>

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

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

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

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterTaskTriggerDefinition_Get';
            GetViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterTaskTriggerDefinition_GetViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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
A list of task triggers that are associated with the printer.
.Description
A list of task triggers that are associated with the printer.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskTrigger
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprintprintertasktrigger
#>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterTaskTrigger_Get';
            GetViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterTaskTrigger_GetViaIdentity';
            List = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinterTaskTrigger_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 printers registered in the tenant.
.Description
The list of printers registered in the tenant.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinter
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprintprinter
#>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinter_Get';
            GetViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinter_GetViaIdentity';
            List = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintPrinter_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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
Endpoints that can be used to access the service.
Read-only.
Nullable.
.Description
Endpoints that can be used to access the service.
Read-only.
Nullable.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintServiceEndpoint
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprintserviceendpoint
#>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintServiceEndpoint_Get';
            GetViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintServiceEndpoint_GetViaIdentity';
            List = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintServiceEndpoint_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 available Universal Print service endpoints.
.Description
The list of available Universal Print service endpoints.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintService
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprintservice
#>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintService_Get';
            GetViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintService_GetViaIdentity';
            List = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintService_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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
Retrieve a list of groups that have been granted access to submit print jobs to the associated printerShare.
.Description
Retrieve a list of groups that have been granted access to submit print jobs to the associated printerShare.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprintshareallowedgroupbyref
#>

function Get-MgBetaPrintShareAllowedGroupByRef {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printerShare
    ${PrinterShareId},

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

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

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

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

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

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

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

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

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

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

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

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

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

    [Parameter()]
    [Alias('CV')]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintShareAllowedGroupByRef_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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
Retrieve a list of groups that have been granted access to submit print jobs to the associated printerShare.
.Description
Retrieve a list of groups that have been granted access to submit print jobs to the associated printerShare.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphGroup
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprintshareallowedgroup
#>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    [Parameter()]
    [Alias('CV')]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintShareAllowedGroup_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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
Retrieve a list of users who have been granted access to submit print jobs to the associated printerShare.
.Description
Retrieve a list of users who have been granted access to submit print jobs to the associated printerShare.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprintsharealloweduserbyref
#>

function Get-MgBetaPrintShareAllowedUserByRef {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printerShare
    ${PrinterShareId},

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

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

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

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

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

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

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

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

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

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

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

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

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

    [Parameter()]
    [Alias('CV')]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintShareAllowedUserByRef_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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
Retrieve a list of users who have been granted access to submit print jobs to the associated printerShare.
.Description
Retrieve a list of users who have been granted access to submit print jobs to the associated printerShare.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphUser
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprintsharealloweduser
#>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    [Parameter()]
    [Alias('CV')]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintShareAllowedUser_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 printer that this printer share is related to.
.Description
The printer that this printer share is related to.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinter
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprintshareprinter
#>

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

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

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintSharePrinter_Get';
            GetViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintSharePrinter_GetViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 printer shares registered in the tenant.
.Description
The list of printer shares registered in the tenant.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShare
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprintshare
#>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintShare_Get';
            GetViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintShare_GetViaIdentity';
            List = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintShare_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 printTaskTrigger that triggered this task's execution.
Read-only.
.Description
The printTaskTrigger that triggered this task's execution.
Read-only.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskTrigger
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprinttaskdefinitiontasktrigger
#>

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

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

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

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintTaskDefinitionTaskTrigger_Get';
            GetViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintTaskDefinitionTaskTrigger_GetViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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
A list of tasks that have been created based on this definition.
The list includes currently running tasks and recently completed tasks.
Read-only.
.Description
A list of tasks that have been created based on this definition.
The list includes currently running tasks and recently completed tasks.
Read-only.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTask
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprinttaskdefinitiontask
#>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintTaskDefinitionTask_Get';
            GetViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintTaskDefinitionTask_GetViaIdentity';
            List = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintTaskDefinitionTask_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 taskDefinitions from print
.Description
Get taskDefinitions from print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskDefinition
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprinttaskdefinition
#>

function Get-MgBetaPrintTaskDefinition {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskDefinition])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printTaskDefinition
    ${PrintTaskDefinitionId},

    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printTask
    ${PrintTaskId},

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrintTaskDefinition_Get';
            Get1 = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintTaskDefinition_Get1';
            GetViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintTaskDefinition_GetViaIdentity';
            GetViaIdentity1 = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintTaskDefinition_GetViaIdentity1';
            List = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Get-MgBetaPrintTaskDefinition_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 print
.Description
Get print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrint
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/get-mgbetaprint
#>

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Get-MgBetaPrint_Get';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 connectors for print
.Description
Create new navigation property to connectors for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintConnector
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintConnector
.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 <IMicrosoftGraphPrintConnector>: printConnector
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique identifier for an entity. Read-only.
  [AppVersion <String>]: The connector's version.
  [DeviceHealth <IMicrosoftGraphDeviceHealth>]: deviceHealth
    [(Any) <Object>]: This indicates any property can be added to this object.
    [LastConnectionTime <DateTime?>]: The last time the device was connected.
  [DisplayName <String>]: The name of the connector.
  [FullyQualifiedDomainName <String>]: The connector machine's hostname.
  [Location <IMicrosoftGraphPrinterLocation>]: printerLocation
    [(Any) <Object>]: This indicates any property can be added to this object.
    [AltitudeInMeters <Int32?>]: The altitude, in meters, that the printer is located at.
    [Building <String>]: The building that the printer is located in.
    [City <String>]: The city that the printer is located in.
    [CountryOrRegion <String>]: The country or region that the printer is located in.
    [Floor <String>]: The floor that the printer is located on. Only numerical values are supported right now.
    [FloorDescription <String>]: The description of the floor that the printer is located on.
    [FloorNumber <Int32?>]:
    [Latitude <Double?>]: The latitude that the printer is located at.
    [Longitude <Double?>]: The longitude that the printer is located at.
    [Organization <String[]>]: The organizational hierarchy that the printer belongs to. The elements should be in hierarchical order.
    [PostalCode <String>]: The postal code that the printer is located in.
    [RoomDescription <String>]: The description of the room that the printer is located in.
    [RoomName <String>]: The room that the printer is located in. Only numerical values are supported right now.
    [RoomNumber <Int32?>]:
    [Site <String>]: The site that the printer is located in.
    [StateOrProvince <String>]: The state or province that the printer is located in.
    [StreetAddress <String>]: The street address where the printer is located.
    [Subdivision <String[]>]: The subdivision that the printer is located in. The elements should be in hierarchical order.
    [Subunit <String[]>]:
  [Name <String>]:
  [OperatingSystem <String>]: The connector machine's operating system version.
  [RegisteredDateTime <DateTime?>]: The DateTimeOffset when the connector was registered.
 
DEVICEHEALTH <IMicrosoftGraphDeviceHealth>: deviceHealth
  [(Any) <Object>]: This indicates any property can be added to this object.
  [LastConnectionTime <DateTime?>]: The last time the device was connected.
 
LOCATION <IMicrosoftGraphPrinterLocation>: printerLocation
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AltitudeInMeters <Int32?>]: The altitude, in meters, that the printer is located at.
  [Building <String>]: The building that the printer is located in.
  [City <String>]: The city that the printer is located in.
  [CountryOrRegion <String>]: The country or region that the printer is located in.
  [Floor <String>]: The floor that the printer is located on. Only numerical values are supported right now.
  [FloorDescription <String>]: The description of the floor that the printer is located on.
  [FloorNumber <Int32?>]:
  [Latitude <Double?>]: The latitude that the printer is located at.
  [Longitude <Double?>]: The longitude that the printer is located at.
  [Organization <String[]>]: The organizational hierarchy that the printer belongs to. The elements should be in hierarchical order.
  [PostalCode <String>]: The postal code that the printer is located in.
  [RoomDescription <String>]: The description of the room that the printer is located in.
  [RoomName <String>]: The room that the printer is located in. Only numerical values are supported right now.
  [RoomNumber <Int32?>]:
  [Site <String>]: The site that the printer is located in.
  [StateOrProvince <String>]: The state or province that the printer is located in.
  [StreetAddress <String>]: The street address where the printer is located.
  [Subdivision <String[]>]: The subdivision that the printer is located in. The elements should be in hierarchical order.
  [Subunit <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/new-mgbetaprintconnector
#>

function New-MgBetaPrintConnector {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintConnector])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintConnector]
    # printConnector
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # The connector's version.
    ${AppVersion},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphDeviceHealth]
    # deviceHealth
    # To construct, see NOTES section for DEVICEHEALTH properties and create a hash table.
    ${DeviceHealth},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # The name of the connector.
    ${DisplayName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # The connector machine's hostname.
    ${FullyQualifiedDomainName},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterLocation]
    # printerLocation
    # To construct, see NOTES section for LOCATION properties and create a hash table.
    ${Location},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${Name},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # The connector machine's operating system version.
    ${OperatingSystem},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.DateTime]
    # The DateTimeOffset when the connector was registered.
    ${RegisteredDateTime},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\New-MgBetaPrintConnector_Create';
            CreateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintConnector_CreateExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 operations for print
.Description
Create new navigation property to operations for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintOperation
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintOperation
.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 <IMicrosoftGraphPrintOperation>: printOperation
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique identifier for an entity. Read-only.
  [CreatedDateTime <DateTime?>]: The DateTimeOffset when the operation was created. Read-only.
  [Status <IMicrosoftGraphPrintOperationStatus>]: printOperationStatus
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Description <String>]: A human-readable description of the printOperation's current processing state. Read-only.
    [State <String>]: printOperationProcessingState
 
STATUS <IMicrosoftGraphPrintOperationStatus>: printOperationStatus
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Description <String>]: A human-readable description of the printOperation's current processing state. Read-only.
  [State <String>]: printOperationProcessingState
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/new-mgbetaprintoperation
#>

function New-MgBetaPrintOperation {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintOperation])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintOperation]
    # printOperation
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.DateTime]
    # The DateTimeOffset when the operation was created.
    # Read-only.
    ${CreatedDateTime},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintOperationStatus]
    # printOperationStatus
    # To construct, see NOTES section for STATUS properties and create a hash table.
    ${Status},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\New-MgBetaPrintOperation_Create';
            CreateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintOperation_CreateExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 ref to allowedGroups for print
.Description
Create new navigation property ref to allowedGroups for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IReferenceCreate
.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.
 
BODYPARAMETER <IReferenceCreate>: .
  [(Any) <Object>]: This indicates any property can be added to this object.
  [OdataId <String>]:
 
INPUTOBJECT <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/new-mgbetaprintprintershareallowedgroupbyref
#>

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

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity]
    # 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.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IReferenceCreate]
    # .
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${OdataId},

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

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

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\New-MgBetaPrintPrinterShareAllowedGroupByRef_Create';
            CreateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintPrinterShareAllowedGroupByRef_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintPrinterShareAllowedGroupByRef_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintPrinterShareAllowedGroupByRef_CreateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 ref to allowedUsers for print
.Description
Create new navigation property ref to allowedUsers for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IReferenceCreate
.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.
 
BODYPARAMETER <IReferenceCreate>: .
  [(Any) <Object>]: This indicates any property can be added to this object.
  [OdataId <String>]:
 
INPUTOBJECT <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/new-mgbetaprintprintersharealloweduserbyref
#>

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

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity]
    # 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.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IReferenceCreate]
    # .
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${OdataId},

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

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

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\New-MgBetaPrintPrinterShareAllowedUserByRef_Create';
            CreateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintPrinterShareAllowedUserByRef_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintPrinterShareAllowedUserByRef_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintPrinterShareAllowedUserByRef_CreateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 printerShares for print
.Description
Create new navigation property to printerShares for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShare
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShare
.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 <IMicrosoftGraphPrinterShare>: printerShare
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Capabilities <IMicrosoftGraphPrinterCapabilities>]: printerCapabilities
    [(Any) <Object>]: This indicates any property can be added to this object.
    [BottomMargins <Int32[]>]: A list of supported bottom margins(in microns) for the printer.
    [Collation <Boolean?>]: True if the printer supports collating when printing muliple copies of a multi-page document; false otherwise.
    [ColorModes <String[]>]: The color modes supported by the printer. Valid values are described in the following table.
    [ContentTypes <String[]>]: A list of supported content (MIME) types that the printer supports. It is not guaranteed that the Universal Print service supports printing all of these MIME types.
    [CopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
      [(Any) <Object>]: This indicates any property can be added to this object.
      [End <Int64?>]: The inclusive upper bound of the integer range.
      [Maximum <Int64?>]:
      [Minimum <Int64?>]:
      [Start <Int64?>]: The inclusive lower bound of the integer range.
    [Dpis <Int32[]>]: The list of print resolutions in DPI that are supported by the printer.
    [DuplexModes <String[]>]: The list of duplex modes that are supported by the printer. Valid values are described in the following table.
    [FeedDirections <String[]>]:
    [FeedOrientations <String[]>]: The list of feed orientations that are supported by the printer.
    [Finishings <String[]>]: Finishing processes the printer supports for a printed document.
    [InputBins <String[]>]: Supported input bins for the printer.
    [IsColorPrintingSupported <Boolean?>]: True if color printing is supported by the printer; false otherwise. Read-only.
    [IsPageRangeSupported <Boolean?>]: True if the printer supports printing by page ranges; false otherwise.
    [LeftMargins <Int32[]>]: A list of supported left margins(in microns) for the printer.
    [MediaColors <String[]>]: The media (i.e., paper) colors supported by the printer.
    [MediaSizes <String[]>]: The media sizes supported by the printer. Supports standard size names for ISO and ANSI media sizes. Valid values are in the following table.
    [MediaTypes <String[]>]: The media types supported by the printer.
    [MultipageLayouts <String[]>]: The presentation directions supported by the printer. Supported values are described in the following table.
    [Orientations <String[]>]: The print orientations supported by the printer. Valid values are described in the following table.
    [OutputBins <String[]>]: The printer's supported output bins (trays).
    [PagesPerSheet <Int32[]>]: Supported number of Input Pages to impose upon a single Impression.
    [Qualities <String[]>]: The print qualities supported by the printer.
    [RightMargins <Int32[]>]: A list of supported right margins(in microns) for the printer.
    [Scalings <String[]>]: Supported print scalings.
    [SupportedColorConfigurations <String[]>]:
    [SupportedCopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
    [SupportedDocumentMimeTypes <String[]>]:
    [SupportedDuplexConfigurations <String[]>]:
    [SupportedFinishings <String[]>]:
    [SupportedMediaColors <String[]>]:
    [SupportedMediaSizes <String[]>]:
    [SupportedMediaTypes <String[]>]:
    [SupportedOrientations <String[]>]:
    [SupportedOutputBins <String[]>]:
    [SupportedPagesPerSheet <IMicrosoftGraphIntegerRange>]: integerRange
    [SupportedPresentationDirections <String[]>]:
    [SupportedPrintQualities <String[]>]:
    [SupportsFitPdfToPage <Boolean?>]: True if the printer supports scaling PDF pages to match the print media size; false otherwise.
    [TopMargins <Int32[]>]: A list of supported top margins(in microns) for the printer.
  [Defaults <IMicrosoftGraphPrinterDefaults>]: printerDefaults
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ColorMode <String>]: printColorMode
    [ContentType <String>]: The default content (MIME) type to use when processing documents.
    [CopiesPerJob <Int32?>]: The default number of copies printed per job.
    [DocumentMimeType <String>]:
    [Dpi <Int32?>]: The default resolution in DPI to use when printing the job.
    [DuplexConfiguration <String>]: printDuplexConfiguration
    [DuplexMode <String>]: printDuplexMode
    [Finishings <String[]>]: The default set of finishings to apply to print jobs. Valid values are described in the following table.
    [FitPdfToPage <Boolean?>]: The default fitPdfToPage setting. True to fit each page of a PDF document to a physical sheet of media; false to let the printer decide how to lay out impressions.
    [InputBin <String>]: The default input bin that serves as the paper source.
    [MediaColor <String>]: The default media (such as paper) color to print the document on.
    [MediaSize <String>]: The default media size to use. Supports standard size names for ISO and ANSI media sizes. Valid values are listed in the printerCapabilities topic.
    [MediaType <String>]: The default media (such as paper) type to print the document on.
    [MultipageLayout <String>]: printMultipageLayout
    [Orientation <String>]: printOrientation
    [OutputBin <String>]: The default output bin to place completed prints into. See the printer's capabilities for a list of supported output bins.
    [PagesPerSheet <Int32?>]: The default number of document pages to print on each sheet.
    [PdfFitToPage <Boolean?>]:
    [PresentationDirection <String>]: printPresentationDirection
    [PrintColorConfiguration <String>]: printColorConfiguration
    [PrintQuality <String>]: printQuality
    [Quality <String>]: printQuality
    [Scaling <String>]: printScaling
  [DisplayName <String>]:
  [IsAcceptingJobs <Boolean?>]:
  [Location <IMicrosoftGraphPrinterLocation>]: printerLocation
    [(Any) <Object>]: This indicates any property can be added to this object.
    [AltitudeInMeters <Int32?>]: The altitude, in meters, that the printer is located at.
    [Building <String>]: The building that the printer is located in.
    [City <String>]: The city that the printer is located in.
    [CountryOrRegion <String>]: The country or region that the printer is located in.
    [Floor <String>]: The floor that the printer is located on. Only numerical values are supported right now.
    [FloorDescription <String>]: The description of the floor that the printer is located on.
    [FloorNumber <Int32?>]:
    [Latitude <Double?>]: The latitude that the printer is located at.
    [Longitude <Double?>]: The longitude that the printer is located at.
    [Organization <String[]>]: The organizational hierarchy that the printer belongs to. The elements should be in hierarchical order.
    [PostalCode <String>]: The postal code that the printer is located in.
    [RoomDescription <String>]: The description of the room that the printer is located in.
    [RoomName <String>]: The room that the printer is located in. Only numerical values are supported right now.
    [RoomNumber <Int32?>]:
    [Site <String>]: The site that the printer is located in.
    [StateOrProvince <String>]: The state or province that the printer is located in.
    [StreetAddress <String>]: The street address where the printer is located.
    [Subdivision <String[]>]: The subdivision that the printer is located in. The elements should be in hierarchical order.
    [Subunit <String[]>]:
  [Manufacturer <String>]:
  [Model <String>]:
  [Name <String>]:
  [Status <IMicrosoftGraphPrinterStatus>]: printerStatus
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Description <String>]: A human-readable description of the printer's current processing state. Read-only.
    [Details <String[]>]: The list of details describing why the printer is in the current state. Valid values are described in the following table. Read-only.
    [ProcessingState <String>]: printerProcessingState
    [ProcessingStateDescription <String>]:
    [ProcessingStateReasons <String[]>]:
    [State <String>]: printerProcessingState
  [Id <String>]: The unique identifier for an entity. Read-only.
  [AllowAllUsers <Boolean?>]: If true, all users and groups will be granted access to this printer share. This supersedes the allow lists defined by the allowedUsers and allowedGroups navigation properties.
  [CreatedDateTime <DateTime?>]: The DateTimeOffset when the printer share was created. Read-only.
  [Printer <IMicrosoftGraphPrinter>]: printer
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Capabilities <IMicrosoftGraphPrinterCapabilities>]: printerCapabilities
    [Defaults <IMicrosoftGraphPrinterDefaults>]: printerDefaults
    [DisplayName <String>]:
    [IsAcceptingJobs <Boolean?>]:
    [Location <IMicrosoftGraphPrinterLocation>]: printerLocation
    [Manufacturer <String>]:
    [Model <String>]:
    [Name <String>]:
    [Status <IMicrosoftGraphPrinterStatus>]: printerStatus
    [Id <String>]: The unique identifier for an entity. Read-only.
    [AcceptingJobs <Boolean?>]:
    [HasPhysicalDevice <Boolean?>]: True if the printer has a physical device for printing. Read-only.
    [IsShared <Boolean?>]: True if the printer is shared; false otherwise. Read-only.
    [LastSeenDateTime <DateTime?>]: The most recent dateTimeOffset when a printer interacted with Universal Print. Read-only.
    [RegisteredDateTime <DateTime?>]: The DateTimeOffset when the printer was registered. Read-only.
    [Share <IMicrosoftGraphPrinterShare>]: printerShare
  [ViewPoint <IMicrosoftGraphPrinterShareViewpoint>]: printerShareViewpoint
    [(Any) <Object>]: This indicates any property can be added to this object.
    [LastUsedDateTime <DateTime?>]: Date and time when the printer was last used by the signed-in user. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
 
CAPABILITIES <IMicrosoftGraphPrinterCapabilities>: printerCapabilities
  [(Any) <Object>]: This indicates any property can be added to this object.
  [BottomMargins <Int32[]>]: A list of supported bottom margins(in microns) for the printer.
  [Collation <Boolean?>]: True if the printer supports collating when printing muliple copies of a multi-page document; false otherwise.
  [ColorModes <String[]>]: The color modes supported by the printer. Valid values are described in the following table.
  [ContentTypes <String[]>]: A list of supported content (MIME) types that the printer supports. It is not guaranteed that the Universal Print service supports printing all of these MIME types.
  [CopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
    [(Any) <Object>]: This indicates any property can be added to this object.
    [End <Int64?>]: The inclusive upper bound of the integer range.
    [Maximum <Int64?>]:
    [Minimum <Int64?>]:
    [Start <Int64?>]: The inclusive lower bound of the integer range.
  [Dpis <Int32[]>]: The list of print resolutions in DPI that are supported by the printer.
  [DuplexModes <String[]>]: The list of duplex modes that are supported by the printer. Valid values are described in the following table.
  [FeedDirections <String[]>]:
  [FeedOrientations <String[]>]: The list of feed orientations that are supported by the printer.
  [Finishings <String[]>]: Finishing processes the printer supports for a printed document.
  [InputBins <String[]>]: Supported input bins for the printer.
  [IsColorPrintingSupported <Boolean?>]: True if color printing is supported by the printer; false otherwise. Read-only.
  [IsPageRangeSupported <Boolean?>]: True if the printer supports printing by page ranges; false otherwise.
  [LeftMargins <Int32[]>]: A list of supported left margins(in microns) for the printer.
  [MediaColors <String[]>]: The media (i.e., paper) colors supported by the printer.
  [MediaSizes <String[]>]: The media sizes supported by the printer. Supports standard size names for ISO and ANSI media sizes. Valid values are in the following table.
  [MediaTypes <String[]>]: The media types supported by the printer.
  [MultipageLayouts <String[]>]: The presentation directions supported by the printer. Supported values are described in the following table.
  [Orientations <String[]>]: The print orientations supported by the printer. Valid values are described in the following table.
  [OutputBins <String[]>]: The printer's supported output bins (trays).
  [PagesPerSheet <Int32[]>]: Supported number of Input Pages to impose upon a single Impression.
  [Qualities <String[]>]: The print qualities supported by the printer.
  [RightMargins <Int32[]>]: A list of supported right margins(in microns) for the printer.
  [Scalings <String[]>]: Supported print scalings.
  [SupportedColorConfigurations <String[]>]:
  [SupportedCopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
  [SupportedDocumentMimeTypes <String[]>]:
  [SupportedDuplexConfigurations <String[]>]:
  [SupportedFinishings <String[]>]:
  [SupportedMediaColors <String[]>]:
  [SupportedMediaSizes <String[]>]:
  [SupportedMediaTypes <String[]>]:
  [SupportedOrientations <String[]>]:
  [SupportedOutputBins <String[]>]:
  [SupportedPagesPerSheet <IMicrosoftGraphIntegerRange>]: integerRange
  [SupportedPresentationDirections <String[]>]:
  [SupportedPrintQualities <String[]>]:
  [SupportsFitPdfToPage <Boolean?>]: True if the printer supports scaling PDF pages to match the print media size; false otherwise.
  [TopMargins <Int32[]>]: A list of supported top margins(in microns) for the printer.
 
DEFAULTS <IMicrosoftGraphPrinterDefaults>: printerDefaults
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ColorMode <String>]: printColorMode
  [ContentType <String>]: The default content (MIME) type to use when processing documents.
  [CopiesPerJob <Int32?>]: The default number of copies printed per job.
  [DocumentMimeType <String>]:
  [Dpi <Int32?>]: The default resolution in DPI to use when printing the job.
  [DuplexConfiguration <String>]: printDuplexConfiguration
  [DuplexMode <String>]: printDuplexMode
  [Finishings <String[]>]: The default set of finishings to apply to print jobs. Valid values are described in the following table.
  [FitPdfToPage <Boolean?>]: The default fitPdfToPage setting. True to fit each page of a PDF document to a physical sheet of media; false to let the printer decide how to lay out impressions.
  [InputBin <String>]: The default input bin that serves as the paper source.
  [MediaColor <String>]: The default media (such as paper) color to print the document on.
  [MediaSize <String>]: The default media size to use. Supports standard size names for ISO and ANSI media sizes. Valid values are listed in the printerCapabilities topic.
  [MediaType <String>]: The default media (such as paper) type to print the document on.
  [MultipageLayout <String>]: printMultipageLayout
  [Orientation <String>]: printOrientation
  [OutputBin <String>]: The default output bin to place completed prints into. See the printer's capabilities for a list of supported output bins.
  [PagesPerSheet <Int32?>]: The default number of document pages to print on each sheet.
  [PdfFitToPage <Boolean?>]:
  [PresentationDirection <String>]: printPresentationDirection
  [PrintColorConfiguration <String>]: printColorConfiguration
  [PrintQuality <String>]: printQuality
  [Quality <String>]: printQuality
  [Scaling <String>]: printScaling
 
LOCATION <IMicrosoftGraphPrinterLocation>: printerLocation
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AltitudeInMeters <Int32?>]: The altitude, in meters, that the printer is located at.
  [Building <String>]: The building that the printer is located in.
  [City <String>]: The city that the printer is located in.
  [CountryOrRegion <String>]: The country or region that the printer is located in.
  [Floor <String>]: The floor that the printer is located on. Only numerical values are supported right now.
  [FloorDescription <String>]: The description of the floor that the printer is located on.
  [FloorNumber <Int32?>]:
  [Latitude <Double?>]: The latitude that the printer is located at.
  [Longitude <Double?>]: The longitude that the printer is located at.
  [Organization <String[]>]: The organizational hierarchy that the printer belongs to. The elements should be in hierarchical order.
  [PostalCode <String>]: The postal code that the printer is located in.
  [RoomDescription <String>]: The description of the room that the printer is located in.
  [RoomName <String>]: The room that the printer is located in. Only numerical values are supported right now.
  [RoomNumber <Int32?>]:
  [Site <String>]: The site that the printer is located in.
  [StateOrProvince <String>]: The state or province that the printer is located in.
  [StreetAddress <String>]: The street address where the printer is located.
  [Subdivision <String[]>]: The subdivision that the printer is located in. The elements should be in hierarchical order.
  [Subunit <String[]>]:
 
PRINTER <IMicrosoftGraphPrinter>: printer
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Capabilities <IMicrosoftGraphPrinterCapabilities>]: printerCapabilities
    [(Any) <Object>]: This indicates any property can be added to this object.
    [BottomMargins <Int32[]>]: A list of supported bottom margins(in microns) for the printer.
    [Collation <Boolean?>]: True if the printer supports collating when printing muliple copies of a multi-page document; false otherwise.
    [ColorModes <String[]>]: The color modes supported by the printer. Valid values are described in the following table.
    [ContentTypes <String[]>]: A list of supported content (MIME) types that the printer supports. It is not guaranteed that the Universal Print service supports printing all of these MIME types.
    [CopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
      [(Any) <Object>]: This indicates any property can be added to this object.
      [End <Int64?>]: The inclusive upper bound of the integer range.
      [Maximum <Int64?>]:
      [Minimum <Int64?>]:
      [Start <Int64?>]: The inclusive lower bound of the integer range.
    [Dpis <Int32[]>]: The list of print resolutions in DPI that are supported by the printer.
    [DuplexModes <String[]>]: The list of duplex modes that are supported by the printer. Valid values are described in the following table.
    [FeedDirections <String[]>]:
    [FeedOrientations <String[]>]: The list of feed orientations that are supported by the printer.
    [Finishings <String[]>]: Finishing processes the printer supports for a printed document.
    [InputBins <String[]>]: Supported input bins for the printer.
    [IsColorPrintingSupported <Boolean?>]: True if color printing is supported by the printer; false otherwise. Read-only.
    [IsPageRangeSupported <Boolean?>]: True if the printer supports printing by page ranges; false otherwise.
    [LeftMargins <Int32[]>]: A list of supported left margins(in microns) for the printer.
    [MediaColors <String[]>]: The media (i.e., paper) colors supported by the printer.
    [MediaSizes <String[]>]: The media sizes supported by the printer. Supports standard size names for ISO and ANSI media sizes. Valid values are in the following table.
    [MediaTypes <String[]>]: The media types supported by the printer.
    [MultipageLayouts <String[]>]: The presentation directions supported by the printer. Supported values are described in the following table.
    [Orientations <String[]>]: The print orientations supported by the printer. Valid values are described in the following table.
    [OutputBins <String[]>]: The printer's supported output bins (trays).
    [PagesPerSheet <Int32[]>]: Supported number of Input Pages to impose upon a single Impression.
    [Qualities <String[]>]: The print qualities supported by the printer.
    [RightMargins <Int32[]>]: A list of supported right margins(in microns) for the printer.
    [Scalings <String[]>]: Supported print scalings.
    [SupportedColorConfigurations <String[]>]:
    [SupportedCopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
    [SupportedDocumentMimeTypes <String[]>]:
    [SupportedDuplexConfigurations <String[]>]:
    [SupportedFinishings <String[]>]:
    [SupportedMediaColors <String[]>]:
    [SupportedMediaSizes <String[]>]:
    [SupportedMediaTypes <String[]>]:
    [SupportedOrientations <String[]>]:
    [SupportedOutputBins <String[]>]:
    [SupportedPagesPerSheet <IMicrosoftGraphIntegerRange>]: integerRange
    [SupportedPresentationDirections <String[]>]:
    [SupportedPrintQualities <String[]>]:
    [SupportsFitPdfToPage <Boolean?>]: True if the printer supports scaling PDF pages to match the print media size; false otherwise.
    [TopMargins <Int32[]>]: A list of supported top margins(in microns) for the printer.
  [Defaults <IMicrosoftGraphPrinterDefaults>]: printerDefaults
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ColorMode <String>]: printColorMode
    [ContentType <String>]: The default content (MIME) type to use when processing documents.
    [CopiesPerJob <Int32?>]: The default number of copies printed per job.
    [DocumentMimeType <String>]:
    [Dpi <Int32?>]: The default resolution in DPI to use when printing the job.
    [DuplexConfiguration <String>]: printDuplexConfiguration
    [DuplexMode <String>]: printDuplexMode
    [Finishings <String[]>]: The default set of finishings to apply to print jobs. Valid values are described in the following table.
    [FitPdfToPage <Boolean?>]: The default fitPdfToPage setting. True to fit each page of a PDF document to a physical sheet of media; false to let the printer decide how to lay out impressions.
    [InputBin <String>]: The default input bin that serves as the paper source.
    [MediaColor <String>]: The default media (such as paper) color to print the document on.
    [MediaSize <String>]: The default media size to use. Supports standard size names for ISO and ANSI media sizes. Valid values are listed in the printerCapabilities topic.
    [MediaType <String>]: The default media (such as paper) type to print the document on.
    [MultipageLayout <String>]: printMultipageLayout
    [Orientation <String>]: printOrientation
    [OutputBin <String>]: The default output bin to place completed prints into. See the printer's capabilities for a list of supported output bins.
    [PagesPerSheet <Int32?>]: The default number of document pages to print on each sheet.
    [PdfFitToPage <Boolean?>]:
    [PresentationDirection <String>]: printPresentationDirection
    [PrintColorConfiguration <String>]: printColorConfiguration
    [PrintQuality <String>]: printQuality
    [Quality <String>]: printQuality
    [Scaling <String>]: printScaling
  [DisplayName <String>]:
  [IsAcceptingJobs <Boolean?>]:
  [Location <IMicrosoftGraphPrinterLocation>]: printerLocation
    [(Any) <Object>]: This indicates any property can be added to this object.
    [AltitudeInMeters <Int32?>]: The altitude, in meters, that the printer is located at.
    [Building <String>]: The building that the printer is located in.
    [City <String>]: The city that the printer is located in.
    [CountryOrRegion <String>]: The country or region that the printer is located in.
    [Floor <String>]: The floor that the printer is located on. Only numerical values are supported right now.
    [FloorDescription <String>]: The description of the floor that the printer is located on.
    [FloorNumber <Int32?>]:
    [Latitude <Double?>]: The latitude that the printer is located at.
    [Longitude <Double?>]: The longitude that the printer is located at.
    [Organization <String[]>]: The organizational hierarchy that the printer belongs to. The elements should be in hierarchical order.
    [PostalCode <String>]: The postal code that the printer is located in.
    [RoomDescription <String>]: The description of the room that the printer is located in.
    [RoomName <String>]: The room that the printer is located in. Only numerical values are supported right now.
    [RoomNumber <Int32?>]:
    [Site <String>]: The site that the printer is located in.
    [StateOrProvince <String>]: The state or province that the printer is located in.
    [StreetAddress <String>]: The street address where the printer is located.
    [Subdivision <String[]>]: The subdivision that the printer is located in. The elements should be in hierarchical order.
    [Subunit <String[]>]:
  [Manufacturer <String>]:
  [Model <String>]:
  [Name <String>]:
  [Status <IMicrosoftGraphPrinterStatus>]: printerStatus
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Description <String>]: A human-readable description of the printer's current processing state. Read-only.
    [Details <String[]>]: The list of details describing why the printer is in the current state. Valid values are described in the following table. Read-only.
    [ProcessingState <String>]: printerProcessingState
    [ProcessingStateDescription <String>]:
    [ProcessingStateReasons <String[]>]:
    [State <String>]: printerProcessingState
  [Id <String>]: The unique identifier for an entity. Read-only.
  [AcceptingJobs <Boolean?>]:
  [HasPhysicalDevice <Boolean?>]: True if the printer has a physical device for printing. Read-only.
  [IsShared <Boolean?>]: True if the printer is shared; false otherwise. Read-only.
  [LastSeenDateTime <DateTime?>]: The most recent dateTimeOffset when a printer interacted with Universal Print. Read-only.
  [RegisteredDateTime <DateTime?>]: The DateTimeOffset when the printer was registered. Read-only.
  [Share <IMicrosoftGraphPrinterShare>]: printerShare
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Capabilities <IMicrosoftGraphPrinterCapabilities>]: printerCapabilities
    [Defaults <IMicrosoftGraphPrinterDefaults>]: printerDefaults
    [DisplayName <String>]:
    [IsAcceptingJobs <Boolean?>]:
    [Location <IMicrosoftGraphPrinterLocation>]: printerLocation
    [Manufacturer <String>]:
    [Model <String>]:
    [Name <String>]:
    [Status <IMicrosoftGraphPrinterStatus>]: printerStatus
    [Id <String>]: The unique identifier for an entity. Read-only.
    [AllowAllUsers <Boolean?>]: If true, all users and groups will be granted access to this printer share. This supersedes the allow lists defined by the allowedUsers and allowedGroups navigation properties.
    [CreatedDateTime <DateTime?>]: The DateTimeOffset when the printer share was created. Read-only.
    [Printer <IMicrosoftGraphPrinter>]: printer
    [ViewPoint <IMicrosoftGraphPrinterShareViewpoint>]: printerShareViewpoint
      [(Any) <Object>]: This indicates any property can be added to this object.
      [LastUsedDateTime <DateTime?>]: Date and time when the printer was last used by the signed-in user. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
 
STATUS <IMicrosoftGraphPrinterStatus>: printerStatus
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Description <String>]: A human-readable description of the printer's current processing state. Read-only.
  [Details <String[]>]: The list of details describing why the printer is in the current state. Valid values are described in the following table. Read-only.
  [ProcessingState <String>]: printerProcessingState
  [ProcessingStateDescription <String>]:
  [ProcessingStateReasons <String[]>]:
  [State <String>]: printerProcessingState
 
VIEWPOINT <IMicrosoftGraphPrinterShareViewpoint>: printerShareViewpoint
  [(Any) <Object>]: This indicates any property can be added to this object.
  [LastUsedDateTime <DateTime?>]: Date and time when the printer was last used by the signed-in user. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/new-mgbetaprintprintershare
#>

function New-MgBetaPrintPrinterShare {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShare])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShare]
    # printerShare
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # If true, all users and groups will be granted access to this printer share.
    # This supersedes the allow lists defined by the allowedUsers and allowedGroups navigation properties.
    ${AllowAllUsers},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterCapabilities]
    # printerCapabilities
    # To construct, see NOTES section for CAPABILITIES properties and create a hash table.
    ${Capabilities},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.DateTime]
    # The DateTimeOffset when the printer share was created.
    # Read-only.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterDefaults]
    # printerDefaults
    # To construct, see NOTES section for DEFAULTS properties and create a hash table.
    ${Defaults},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${DisplayName},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${IsAcceptingJobs},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterLocation]
    # printerLocation
    # To construct, see NOTES section for LOCATION properties and create a hash table.
    ${Location},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${Manufacturer},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${Model},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${Name},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinter]
    # printer
    # To construct, see NOTES section for PRINTER properties and create a hash table.
    ${Printer},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterStatus]
    # printerStatus
    # To construct, see NOTES section for STATUS properties and create a hash table.
    ${Status},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShareViewpoint]
    # printerShareViewpoint
    # To construct, see NOTES section for VIEWPOINT properties and create a hash table.
    ${ViewPoint},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\New-MgBetaPrintPrinterShare_Create';
            CreateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintPrinterShare_CreateExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 a new task trigger on the specified printer.
Currently, only **one** task trigger can be specified per printer, but this limit might be removed in the future.
.Description
Create a new task trigger on the specified printer.
Currently, only **one** task trigger can be specified per printer, but this limit might be removed in the future.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskTrigger
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskTrigger
.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 <IMicrosoftGraphPrintTaskTrigger>: printTaskTrigger
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique identifier for an entity. Read-only.
  [Definition <IMicrosoftGraphPrintTaskDefinition>]: printTaskDefinition
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique identifier for an entity. Read-only.
    [CreatedBy <IMicrosoftGraphAppIdentity>]: appIdentity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [AppId <String>]: Refers to the unique identifier representing Application Id in the Azure Active Directory.
      [DisplayName <String>]: Refers to the Application Name displayed in the Azure Portal.
      [ServicePrincipalId <String>]: Refers to the unique identifier indicating Service Principal Id in Azure Active Directory for the corresponding App.
      [ServicePrincipalName <String>]: Refers to the Service Principal Name is the Application name in the tenant.
    [DisplayName <String>]: The name of the printTaskDefinition.
  [Event <String>]: printEvent
 
DEFINITION <IMicrosoftGraphPrintTaskDefinition>: printTaskDefinition
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique identifier for an entity. Read-only.
  [CreatedBy <IMicrosoftGraphAppIdentity>]: appIdentity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [AppId <String>]: Refers to the unique identifier representing Application Id in the Azure Active Directory.
    [DisplayName <String>]: Refers to the Application Name displayed in the Azure Portal.
    [ServicePrincipalId <String>]: Refers to the unique identifier indicating Service Principal Id in Azure Active Directory for the corresponding App.
    [ServicePrincipalName <String>]: Refers to the Service Principal Name is the Application name in the tenant.
  [DisplayName <String>]: The name of the printTaskDefinition.
 
INPUTOBJECT <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/new-mgbetaprintprintertasktrigger
#>

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

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity]
    # 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.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskTrigger]
    # printTaskTrigger
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskDefinition]
    # printTaskDefinition
    # To construct, see NOTES section for DEFINITION properties and create a hash table.
    ${Definition},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # printEvent
    ${Event},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\New-MgBetaPrintPrinterTaskTrigger_Create';
            CreateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintPrinterTaskTrigger_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintPrinterTaskTrigger_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintPrinterTaskTrigger_CreateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 (register) a printer with the Universal Print service.
This is a long-running operation and as such, it returns a printerCreateOperation that can be used to track and verify the registration of the printer.
.Description
Create (register) a printer with the Universal Print service.
This is a long-running operation and as such, it returns a printerCreateOperation that can be used to track and verify the registration of the printer.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IPaths18VwyqhPrintPrintersMicrosoftGraphCreatePostRequestbodyContentApplicationJsonSchema
.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.
 
BODYPARAMETER <IPaths18VwyqhPrintPrintersMicrosoftGraphCreatePostRequestbodyContentApplicationJsonSchema>: .
  [(Any) <Object>]: This indicates any property can be added to this object.
  [CertificateSigningRequest <IMicrosoftGraphPrintCertificateSigningRequest>]: printCertificateSigningRequest
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Content <String>]: A base64-encoded pkcs10 certificate request. Read-only.
    [TransportKey <String>]: The base64-encoded public portion of an asymmetric key that is generated by the client. Read-only.
  [ConnectorId <String>]:
  [DisplayName <String>]:
  [HasPhysicalDevice <Boolean?>]:
  [Manufacturer <String>]:
  [Model <String>]:
  [PhysicalDeviceId <String>]:
 
CERTIFICATESIGNINGREQUEST <IMicrosoftGraphPrintCertificateSigningRequest>: printCertificateSigningRequest
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Content <String>]: A base64-encoded pkcs10 certificate request. Read-only.
  [TransportKey <String>]: The base64-encoded public portion of an asymmetric key that is generated by the client. Read-only.
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/new-mgbetaprintprinter
#>

function New-MgBetaPrintPrinter {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded1', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create1', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IPaths18VwyqhPrintPrintersMicrosoftGraphCreatePostRequestbodyContentApplicationJsonSchema]
    # .
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintCertificateSigningRequest]
    # printCertificateSigningRequest
    # To construct, see NOTES section for CERTIFICATESIGNINGREQUEST properties and create a hash table.
    ${CertificateSigningRequest},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${ConnectorId},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${DisplayName},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${HasPhysicalDevice},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${Manufacturer},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${Model},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${PhysicalDeviceId},

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

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

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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 = @{
            Create1 = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintPrinter_Create1';
            CreateExpanded1 = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintPrinter_CreateExpanded1';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 endpoints for print
.Description
Create new navigation property to endpoints for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintServiceEndpoint
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintServiceEndpoint
.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 <IMicrosoftGraphPrintServiceEndpoint>: printServiceEndpoint
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique identifier for an entity. Read-only.
  [DisplayName <String>]: A human-readable display name for the endpoint.
  [Uri <String>]: The URI that can be used to access the service.
 
INPUTOBJECT <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/new-mgbetaprintserviceendpoint
#>

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

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity]
    # 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.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintServiceEndpoint]
    # printServiceEndpoint
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # A human-readable display name for the endpoint.
    ${DisplayName},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # The URI that can be used to access the service.
    ${Uri},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\New-MgBetaPrintServiceEndpoint_Create';
            CreateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintServiceEndpoint_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintServiceEndpoint_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintServiceEndpoint_CreateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 services for print
.Description
Create new navigation property to services for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintService
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintService
.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 <IMicrosoftGraphPrintService>: printService
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique identifier for an entity. Read-only.
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/new-mgbetaprintservice
#>

function New-MgBetaPrintService {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintService])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintService]
    # printService
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\New-MgBetaPrintService_Create';
            CreateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintService_CreateExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 ref to allowedGroups for print
.Description
Create new navigation property ref to allowedGroups for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IReferenceCreate
.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.
 
BODYPARAMETER <IReferenceCreate>: .
  [(Any) <Object>]: This indicates any property can be added to this object.
  [OdataId <String>]:
 
INPUTOBJECT <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/new-mgbetaprintshareallowedgroupbyref
#>

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

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity]
    # 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.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IReferenceCreate]
    # .
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${OdataId},

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

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

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\New-MgBetaPrintShareAllowedGroupByRef_Create';
            CreateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintShareAllowedGroupByRef_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintShareAllowedGroupByRef_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintShareAllowedGroupByRef_CreateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 ref to allowedUsers for print
.Description
Create new navigation property ref to allowedUsers for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IReferenceCreate
.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.
 
BODYPARAMETER <IReferenceCreate>: .
  [(Any) <Object>]: This indicates any property can be added to this object.
  [OdataId <String>]:
 
INPUTOBJECT <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/new-mgbetaprintsharealloweduserbyref
#>

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

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity]
    # 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.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IReferenceCreate]
    # .
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${OdataId},

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

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

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\New-MgBetaPrintShareAllowedUserByRef_Create';
            CreateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintShareAllowedUserByRef_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintShareAllowedUserByRef_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintShareAllowedUserByRef_CreateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 a new **printerShare** for the specified printer.
.Description
Create a new **printerShare** for the specified printer.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShare
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShare
.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 <IMicrosoftGraphPrinterShare>: printerShare
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Capabilities <IMicrosoftGraphPrinterCapabilities>]: printerCapabilities
    [(Any) <Object>]: This indicates any property can be added to this object.
    [BottomMargins <Int32[]>]: A list of supported bottom margins(in microns) for the printer.
    [Collation <Boolean?>]: True if the printer supports collating when printing muliple copies of a multi-page document; false otherwise.
    [ColorModes <String[]>]: The color modes supported by the printer. Valid values are described in the following table.
    [ContentTypes <String[]>]: A list of supported content (MIME) types that the printer supports. It is not guaranteed that the Universal Print service supports printing all of these MIME types.
    [CopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
      [(Any) <Object>]: This indicates any property can be added to this object.
      [End <Int64?>]: The inclusive upper bound of the integer range.
      [Maximum <Int64?>]:
      [Minimum <Int64?>]:
      [Start <Int64?>]: The inclusive lower bound of the integer range.
    [Dpis <Int32[]>]: The list of print resolutions in DPI that are supported by the printer.
    [DuplexModes <String[]>]: The list of duplex modes that are supported by the printer. Valid values are described in the following table.
    [FeedDirections <String[]>]:
    [FeedOrientations <String[]>]: The list of feed orientations that are supported by the printer.
    [Finishings <String[]>]: Finishing processes the printer supports for a printed document.
    [InputBins <String[]>]: Supported input bins for the printer.
    [IsColorPrintingSupported <Boolean?>]: True if color printing is supported by the printer; false otherwise. Read-only.
    [IsPageRangeSupported <Boolean?>]: True if the printer supports printing by page ranges; false otherwise.
    [LeftMargins <Int32[]>]: A list of supported left margins(in microns) for the printer.
    [MediaColors <String[]>]: The media (i.e., paper) colors supported by the printer.
    [MediaSizes <String[]>]: The media sizes supported by the printer. Supports standard size names for ISO and ANSI media sizes. Valid values are in the following table.
    [MediaTypes <String[]>]: The media types supported by the printer.
    [MultipageLayouts <String[]>]: The presentation directions supported by the printer. Supported values are described in the following table.
    [Orientations <String[]>]: The print orientations supported by the printer. Valid values are described in the following table.
    [OutputBins <String[]>]: The printer's supported output bins (trays).
    [PagesPerSheet <Int32[]>]: Supported number of Input Pages to impose upon a single Impression.
    [Qualities <String[]>]: The print qualities supported by the printer.
    [RightMargins <Int32[]>]: A list of supported right margins(in microns) for the printer.
    [Scalings <String[]>]: Supported print scalings.
    [SupportedColorConfigurations <String[]>]:
    [SupportedCopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
    [SupportedDocumentMimeTypes <String[]>]:
    [SupportedDuplexConfigurations <String[]>]:
    [SupportedFinishings <String[]>]:
    [SupportedMediaColors <String[]>]:
    [SupportedMediaSizes <String[]>]:
    [SupportedMediaTypes <String[]>]:
    [SupportedOrientations <String[]>]:
    [SupportedOutputBins <String[]>]:
    [SupportedPagesPerSheet <IMicrosoftGraphIntegerRange>]: integerRange
    [SupportedPresentationDirections <String[]>]:
    [SupportedPrintQualities <String[]>]:
    [SupportsFitPdfToPage <Boolean?>]: True if the printer supports scaling PDF pages to match the print media size; false otherwise.
    [TopMargins <Int32[]>]: A list of supported top margins(in microns) for the printer.
  [Defaults <IMicrosoftGraphPrinterDefaults>]: printerDefaults
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ColorMode <String>]: printColorMode
    [ContentType <String>]: The default content (MIME) type to use when processing documents.
    [CopiesPerJob <Int32?>]: The default number of copies printed per job.
    [DocumentMimeType <String>]:
    [Dpi <Int32?>]: The default resolution in DPI to use when printing the job.
    [DuplexConfiguration <String>]: printDuplexConfiguration
    [DuplexMode <String>]: printDuplexMode
    [Finishings <String[]>]: The default set of finishings to apply to print jobs. Valid values are described in the following table.
    [FitPdfToPage <Boolean?>]: The default fitPdfToPage setting. True to fit each page of a PDF document to a physical sheet of media; false to let the printer decide how to lay out impressions.
    [InputBin <String>]: The default input bin that serves as the paper source.
    [MediaColor <String>]: The default media (such as paper) color to print the document on.
    [MediaSize <String>]: The default media size to use. Supports standard size names for ISO and ANSI media sizes. Valid values are listed in the printerCapabilities topic.
    [MediaType <String>]: The default media (such as paper) type to print the document on.
    [MultipageLayout <String>]: printMultipageLayout
    [Orientation <String>]: printOrientation
    [OutputBin <String>]: The default output bin to place completed prints into. See the printer's capabilities for a list of supported output bins.
    [PagesPerSheet <Int32?>]: The default number of document pages to print on each sheet.
    [PdfFitToPage <Boolean?>]:
    [PresentationDirection <String>]: printPresentationDirection
    [PrintColorConfiguration <String>]: printColorConfiguration
    [PrintQuality <String>]: printQuality
    [Quality <String>]: printQuality
    [Scaling <String>]: printScaling
  [DisplayName <String>]:
  [IsAcceptingJobs <Boolean?>]:
  [Location <IMicrosoftGraphPrinterLocation>]: printerLocation
    [(Any) <Object>]: This indicates any property can be added to this object.
    [AltitudeInMeters <Int32?>]: The altitude, in meters, that the printer is located at.
    [Building <String>]: The building that the printer is located in.
    [City <String>]: The city that the printer is located in.
    [CountryOrRegion <String>]: The country or region that the printer is located in.
    [Floor <String>]: The floor that the printer is located on. Only numerical values are supported right now.
    [FloorDescription <String>]: The description of the floor that the printer is located on.
    [FloorNumber <Int32?>]:
    [Latitude <Double?>]: The latitude that the printer is located at.
    [Longitude <Double?>]: The longitude that the printer is located at.
    [Organization <String[]>]: The organizational hierarchy that the printer belongs to. The elements should be in hierarchical order.
    [PostalCode <String>]: The postal code that the printer is located in.
    [RoomDescription <String>]: The description of the room that the printer is located in.
    [RoomName <String>]: The room that the printer is located in. Only numerical values are supported right now.
    [RoomNumber <Int32?>]:
    [Site <String>]: The site that the printer is located in.
    [StateOrProvince <String>]: The state or province that the printer is located in.
    [StreetAddress <String>]: The street address where the printer is located.
    [Subdivision <String[]>]: The subdivision that the printer is located in. The elements should be in hierarchical order.
    [Subunit <String[]>]:
  [Manufacturer <String>]:
  [Model <String>]:
  [Name <String>]:
  [Status <IMicrosoftGraphPrinterStatus>]: printerStatus
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Description <String>]: A human-readable description of the printer's current processing state. Read-only.
    [Details <String[]>]: The list of details describing why the printer is in the current state. Valid values are described in the following table. Read-only.
    [ProcessingState <String>]: printerProcessingState
    [ProcessingStateDescription <String>]:
    [ProcessingStateReasons <String[]>]:
    [State <String>]: printerProcessingState
  [Id <String>]: The unique identifier for an entity. Read-only.
  [AllowAllUsers <Boolean?>]: If true, all users and groups will be granted access to this printer share. This supersedes the allow lists defined by the allowedUsers and allowedGroups navigation properties.
  [CreatedDateTime <DateTime?>]: The DateTimeOffset when the printer share was created. Read-only.
  [Printer <IMicrosoftGraphPrinter>]: printer
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Capabilities <IMicrosoftGraphPrinterCapabilities>]: printerCapabilities
    [Defaults <IMicrosoftGraphPrinterDefaults>]: printerDefaults
    [DisplayName <String>]:
    [IsAcceptingJobs <Boolean?>]:
    [Location <IMicrosoftGraphPrinterLocation>]: printerLocation
    [Manufacturer <String>]:
    [Model <String>]:
    [Name <String>]:
    [Status <IMicrosoftGraphPrinterStatus>]: printerStatus
    [Id <String>]: The unique identifier for an entity. Read-only.
    [AcceptingJobs <Boolean?>]:
    [HasPhysicalDevice <Boolean?>]: True if the printer has a physical device for printing. Read-only.
    [IsShared <Boolean?>]: True if the printer is shared; false otherwise. Read-only.
    [LastSeenDateTime <DateTime?>]: The most recent dateTimeOffset when a printer interacted with Universal Print. Read-only.
    [RegisteredDateTime <DateTime?>]: The DateTimeOffset when the printer was registered. Read-only.
    [Share <IMicrosoftGraphPrinterShare>]: printerShare
  [ViewPoint <IMicrosoftGraphPrinterShareViewpoint>]: printerShareViewpoint
    [(Any) <Object>]: This indicates any property can be added to this object.
    [LastUsedDateTime <DateTime?>]: Date and time when the printer was last used by the signed-in user. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
 
CAPABILITIES <IMicrosoftGraphPrinterCapabilities>: printerCapabilities
  [(Any) <Object>]: This indicates any property can be added to this object.
  [BottomMargins <Int32[]>]: A list of supported bottom margins(in microns) for the printer.
  [Collation <Boolean?>]: True if the printer supports collating when printing muliple copies of a multi-page document; false otherwise.
  [ColorModes <String[]>]: The color modes supported by the printer. Valid values are described in the following table.
  [ContentTypes <String[]>]: A list of supported content (MIME) types that the printer supports. It is not guaranteed that the Universal Print service supports printing all of these MIME types.
  [CopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
    [(Any) <Object>]: This indicates any property can be added to this object.
    [End <Int64?>]: The inclusive upper bound of the integer range.
    [Maximum <Int64?>]:
    [Minimum <Int64?>]:
    [Start <Int64?>]: The inclusive lower bound of the integer range.
  [Dpis <Int32[]>]: The list of print resolutions in DPI that are supported by the printer.
  [DuplexModes <String[]>]: The list of duplex modes that are supported by the printer. Valid values are described in the following table.
  [FeedDirections <String[]>]:
  [FeedOrientations <String[]>]: The list of feed orientations that are supported by the printer.
  [Finishings <String[]>]: Finishing processes the printer supports for a printed document.
  [InputBins <String[]>]: Supported input bins for the printer.
  [IsColorPrintingSupported <Boolean?>]: True if color printing is supported by the printer; false otherwise. Read-only.
  [IsPageRangeSupported <Boolean?>]: True if the printer supports printing by page ranges; false otherwise.
  [LeftMargins <Int32[]>]: A list of supported left margins(in microns) for the printer.
  [MediaColors <String[]>]: The media (i.e., paper) colors supported by the printer.
  [MediaSizes <String[]>]: The media sizes supported by the printer. Supports standard size names for ISO and ANSI media sizes. Valid values are in the following table.
  [MediaTypes <String[]>]: The media types supported by the printer.
  [MultipageLayouts <String[]>]: The presentation directions supported by the printer. Supported values are described in the following table.
  [Orientations <String[]>]: The print orientations supported by the printer. Valid values are described in the following table.
  [OutputBins <String[]>]: The printer's supported output bins (trays).
  [PagesPerSheet <Int32[]>]: Supported number of Input Pages to impose upon a single Impression.
  [Qualities <String[]>]: The print qualities supported by the printer.
  [RightMargins <Int32[]>]: A list of supported right margins(in microns) for the printer.
  [Scalings <String[]>]: Supported print scalings.
  [SupportedColorConfigurations <String[]>]:
  [SupportedCopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
  [SupportedDocumentMimeTypes <String[]>]:
  [SupportedDuplexConfigurations <String[]>]:
  [SupportedFinishings <String[]>]:
  [SupportedMediaColors <String[]>]:
  [SupportedMediaSizes <String[]>]:
  [SupportedMediaTypes <String[]>]:
  [SupportedOrientations <String[]>]:
  [SupportedOutputBins <String[]>]:
  [SupportedPagesPerSheet <IMicrosoftGraphIntegerRange>]: integerRange
  [SupportedPresentationDirections <String[]>]:
  [SupportedPrintQualities <String[]>]:
  [SupportsFitPdfToPage <Boolean?>]: True if the printer supports scaling PDF pages to match the print media size; false otherwise.
  [TopMargins <Int32[]>]: A list of supported top margins(in microns) for the printer.
 
DEFAULTS <IMicrosoftGraphPrinterDefaults>: printerDefaults
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ColorMode <String>]: printColorMode
  [ContentType <String>]: The default content (MIME) type to use when processing documents.
  [CopiesPerJob <Int32?>]: The default number of copies printed per job.
  [DocumentMimeType <String>]:
  [Dpi <Int32?>]: The default resolution in DPI to use when printing the job.
  [DuplexConfiguration <String>]: printDuplexConfiguration
  [DuplexMode <String>]: printDuplexMode
  [Finishings <String[]>]: The default set of finishings to apply to print jobs. Valid values are described in the following table.
  [FitPdfToPage <Boolean?>]: The default fitPdfToPage setting. True to fit each page of a PDF document to a physical sheet of media; false to let the printer decide how to lay out impressions.
  [InputBin <String>]: The default input bin that serves as the paper source.
  [MediaColor <String>]: The default media (such as paper) color to print the document on.
  [MediaSize <String>]: The default media size to use. Supports standard size names for ISO and ANSI media sizes. Valid values are listed in the printerCapabilities topic.
  [MediaType <String>]: The default media (such as paper) type to print the document on.
  [MultipageLayout <String>]: printMultipageLayout
  [Orientation <String>]: printOrientation
  [OutputBin <String>]: The default output bin to place completed prints into. See the printer's capabilities for a list of supported output bins.
  [PagesPerSheet <Int32?>]: The default number of document pages to print on each sheet.
  [PdfFitToPage <Boolean?>]:
  [PresentationDirection <String>]: printPresentationDirection
  [PrintColorConfiguration <String>]: printColorConfiguration
  [PrintQuality <String>]: printQuality
  [Quality <String>]: printQuality
  [Scaling <String>]: printScaling
 
LOCATION <IMicrosoftGraphPrinterLocation>: printerLocation
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AltitudeInMeters <Int32?>]: The altitude, in meters, that the printer is located at.
  [Building <String>]: The building that the printer is located in.
  [City <String>]: The city that the printer is located in.
  [CountryOrRegion <String>]: The country or region that the printer is located in.
  [Floor <String>]: The floor that the printer is located on. Only numerical values are supported right now.
  [FloorDescription <String>]: The description of the floor that the printer is located on.
  [FloorNumber <Int32?>]:
  [Latitude <Double?>]: The latitude that the printer is located at.
  [Longitude <Double?>]: The longitude that the printer is located at.
  [Organization <String[]>]: The organizational hierarchy that the printer belongs to. The elements should be in hierarchical order.
  [PostalCode <String>]: The postal code that the printer is located in.
  [RoomDescription <String>]: The description of the room that the printer is located in.
  [RoomName <String>]: The room that the printer is located in. Only numerical values are supported right now.
  [RoomNumber <Int32?>]:
  [Site <String>]: The site that the printer is located in.
  [StateOrProvince <String>]: The state or province that the printer is located in.
  [StreetAddress <String>]: The street address where the printer is located.
  [Subdivision <String[]>]: The subdivision that the printer is located in. The elements should be in hierarchical order.
  [Subunit <String[]>]:
 
PRINTER <IMicrosoftGraphPrinter>: printer
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Capabilities <IMicrosoftGraphPrinterCapabilities>]: printerCapabilities
    [(Any) <Object>]: This indicates any property can be added to this object.
    [BottomMargins <Int32[]>]: A list of supported bottom margins(in microns) for the printer.
    [Collation <Boolean?>]: True if the printer supports collating when printing muliple copies of a multi-page document; false otherwise.
    [ColorModes <String[]>]: The color modes supported by the printer. Valid values are described in the following table.
    [ContentTypes <String[]>]: A list of supported content (MIME) types that the printer supports. It is not guaranteed that the Universal Print service supports printing all of these MIME types.
    [CopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
      [(Any) <Object>]: This indicates any property can be added to this object.
      [End <Int64?>]: The inclusive upper bound of the integer range.
      [Maximum <Int64?>]:
      [Minimum <Int64?>]:
      [Start <Int64?>]: The inclusive lower bound of the integer range.
    [Dpis <Int32[]>]: The list of print resolutions in DPI that are supported by the printer.
    [DuplexModes <String[]>]: The list of duplex modes that are supported by the printer. Valid values are described in the following table.
    [FeedDirections <String[]>]:
    [FeedOrientations <String[]>]: The list of feed orientations that are supported by the printer.
    [Finishings <String[]>]: Finishing processes the printer supports for a printed document.
    [InputBins <String[]>]: Supported input bins for the printer.
    [IsColorPrintingSupported <Boolean?>]: True if color printing is supported by the printer; false otherwise. Read-only.
    [IsPageRangeSupported <Boolean?>]: True if the printer supports printing by page ranges; false otherwise.
    [LeftMargins <Int32[]>]: A list of supported left margins(in microns) for the printer.
    [MediaColors <String[]>]: The media (i.e., paper) colors supported by the printer.
    [MediaSizes <String[]>]: The media sizes supported by the printer. Supports standard size names for ISO and ANSI media sizes. Valid values are in the following table.
    [MediaTypes <String[]>]: The media types supported by the printer.
    [MultipageLayouts <String[]>]: The presentation directions supported by the printer. Supported values are described in the following table.
    [Orientations <String[]>]: The print orientations supported by the printer. Valid values are described in the following table.
    [OutputBins <String[]>]: The printer's supported output bins (trays).
    [PagesPerSheet <Int32[]>]: Supported number of Input Pages to impose upon a single Impression.
    [Qualities <String[]>]: The print qualities supported by the printer.
    [RightMargins <Int32[]>]: A list of supported right margins(in microns) for the printer.
    [Scalings <String[]>]: Supported print scalings.
    [SupportedColorConfigurations <String[]>]:
    [SupportedCopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
    [SupportedDocumentMimeTypes <String[]>]:
    [SupportedDuplexConfigurations <String[]>]:
    [SupportedFinishings <String[]>]:
    [SupportedMediaColors <String[]>]:
    [SupportedMediaSizes <String[]>]:
    [SupportedMediaTypes <String[]>]:
    [SupportedOrientations <String[]>]:
    [SupportedOutputBins <String[]>]:
    [SupportedPagesPerSheet <IMicrosoftGraphIntegerRange>]: integerRange
    [SupportedPresentationDirections <String[]>]:
    [SupportedPrintQualities <String[]>]:
    [SupportsFitPdfToPage <Boolean?>]: True if the printer supports scaling PDF pages to match the print media size; false otherwise.
    [TopMargins <Int32[]>]: A list of supported top margins(in microns) for the printer.
  [Defaults <IMicrosoftGraphPrinterDefaults>]: printerDefaults
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ColorMode <String>]: printColorMode
    [ContentType <String>]: The default content (MIME) type to use when processing documents.
    [CopiesPerJob <Int32?>]: The default number of copies printed per job.
    [DocumentMimeType <String>]:
    [Dpi <Int32?>]: The default resolution in DPI to use when printing the job.
    [DuplexConfiguration <String>]: printDuplexConfiguration
    [DuplexMode <String>]: printDuplexMode
    [Finishings <String[]>]: The default set of finishings to apply to print jobs. Valid values are described in the following table.
    [FitPdfToPage <Boolean?>]: The default fitPdfToPage setting. True to fit each page of a PDF document to a physical sheet of media; false to let the printer decide how to lay out impressions.
    [InputBin <String>]: The default input bin that serves as the paper source.
    [MediaColor <String>]: The default media (such as paper) color to print the document on.
    [MediaSize <String>]: The default media size to use. Supports standard size names for ISO and ANSI media sizes. Valid values are listed in the printerCapabilities topic.
    [MediaType <String>]: The default media (such as paper) type to print the document on.
    [MultipageLayout <String>]: printMultipageLayout
    [Orientation <String>]: printOrientation
    [OutputBin <String>]: The default output bin to place completed prints into. See the printer's capabilities for a list of supported output bins.
    [PagesPerSheet <Int32?>]: The default number of document pages to print on each sheet.
    [PdfFitToPage <Boolean?>]:
    [PresentationDirection <String>]: printPresentationDirection
    [PrintColorConfiguration <String>]: printColorConfiguration
    [PrintQuality <String>]: printQuality
    [Quality <String>]: printQuality
    [Scaling <String>]: printScaling
  [DisplayName <String>]:
  [IsAcceptingJobs <Boolean?>]:
  [Location <IMicrosoftGraphPrinterLocation>]: printerLocation
    [(Any) <Object>]: This indicates any property can be added to this object.
    [AltitudeInMeters <Int32?>]: The altitude, in meters, that the printer is located at.
    [Building <String>]: The building that the printer is located in.
    [City <String>]: The city that the printer is located in.
    [CountryOrRegion <String>]: The country or region that the printer is located in.
    [Floor <String>]: The floor that the printer is located on. Only numerical values are supported right now.
    [FloorDescription <String>]: The description of the floor that the printer is located on.
    [FloorNumber <Int32?>]:
    [Latitude <Double?>]: The latitude that the printer is located at.
    [Longitude <Double?>]: The longitude that the printer is located at.
    [Organization <String[]>]: The organizational hierarchy that the printer belongs to. The elements should be in hierarchical order.
    [PostalCode <String>]: The postal code that the printer is located in.
    [RoomDescription <String>]: The description of the room that the printer is located in.
    [RoomName <String>]: The room that the printer is located in. Only numerical values are supported right now.
    [RoomNumber <Int32?>]:
    [Site <String>]: The site that the printer is located in.
    [StateOrProvince <String>]: The state or province that the printer is located in.
    [StreetAddress <String>]: The street address where the printer is located.
    [Subdivision <String[]>]: The subdivision that the printer is located in. The elements should be in hierarchical order.
    [Subunit <String[]>]:
  [Manufacturer <String>]:
  [Model <String>]:
  [Name <String>]:
  [Status <IMicrosoftGraphPrinterStatus>]: printerStatus
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Description <String>]: A human-readable description of the printer's current processing state. Read-only.
    [Details <String[]>]: The list of details describing why the printer is in the current state. Valid values are described in the following table. Read-only.
    [ProcessingState <String>]: printerProcessingState
    [ProcessingStateDescription <String>]:
    [ProcessingStateReasons <String[]>]:
    [State <String>]: printerProcessingState
  [Id <String>]: The unique identifier for an entity. Read-only.
  [AcceptingJobs <Boolean?>]:
  [HasPhysicalDevice <Boolean?>]: True if the printer has a physical device for printing. Read-only.
  [IsShared <Boolean?>]: True if the printer is shared; false otherwise. Read-only.
  [LastSeenDateTime <DateTime?>]: The most recent dateTimeOffset when a printer interacted with Universal Print. Read-only.
  [RegisteredDateTime <DateTime?>]: The DateTimeOffset when the printer was registered. Read-only.
  [Share <IMicrosoftGraphPrinterShare>]: printerShare
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Capabilities <IMicrosoftGraphPrinterCapabilities>]: printerCapabilities
    [Defaults <IMicrosoftGraphPrinterDefaults>]: printerDefaults
    [DisplayName <String>]:
    [IsAcceptingJobs <Boolean?>]:
    [Location <IMicrosoftGraphPrinterLocation>]: printerLocation
    [Manufacturer <String>]:
    [Model <String>]:
    [Name <String>]:
    [Status <IMicrosoftGraphPrinterStatus>]: printerStatus
    [Id <String>]: The unique identifier for an entity. Read-only.
    [AllowAllUsers <Boolean?>]: If true, all users and groups will be granted access to this printer share. This supersedes the allow lists defined by the allowedUsers and allowedGroups navigation properties.
    [CreatedDateTime <DateTime?>]: The DateTimeOffset when the printer share was created. Read-only.
    [Printer <IMicrosoftGraphPrinter>]: printer
    [ViewPoint <IMicrosoftGraphPrinterShareViewpoint>]: printerShareViewpoint
      [(Any) <Object>]: This indicates any property can be added to this object.
      [LastUsedDateTime <DateTime?>]: Date and time when the printer was last used by the signed-in user. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
 
STATUS <IMicrosoftGraphPrinterStatus>: printerStatus
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Description <String>]: A human-readable description of the printer's current processing state. Read-only.
  [Details <String[]>]: The list of details describing why the printer is in the current state. Valid values are described in the following table. Read-only.
  [ProcessingState <String>]: printerProcessingState
  [ProcessingStateDescription <String>]:
  [ProcessingStateReasons <String[]>]:
  [State <String>]: printerProcessingState
 
VIEWPOINT <IMicrosoftGraphPrinterShareViewpoint>: printerShareViewpoint
  [(Any) <Object>]: This indicates any property can be added to this object.
  [LastUsedDateTime <DateTime?>]: Date and time when the printer was last used by the signed-in user. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/new-mgbetaprintshare
#>

function New-MgBetaPrintShare {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShare])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShare]
    # printerShare
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # If true, all users and groups will be granted access to this printer share.
    # This supersedes the allow lists defined by the allowedUsers and allowedGroups navigation properties.
    ${AllowAllUsers},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterCapabilities]
    # printerCapabilities
    # To construct, see NOTES section for CAPABILITIES properties and create a hash table.
    ${Capabilities},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.DateTime]
    # The DateTimeOffset when the printer share was created.
    # Read-only.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterDefaults]
    # printerDefaults
    # To construct, see NOTES section for DEFAULTS properties and create a hash table.
    ${Defaults},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${DisplayName},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${IsAcceptingJobs},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterLocation]
    # printerLocation
    # To construct, see NOTES section for LOCATION properties and create a hash table.
    ${Location},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${Manufacturer},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${Model},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${Name},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinter]
    # printer
    # To construct, see NOTES section for PRINTER properties and create a hash table.
    ${Printer},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterStatus]
    # printerStatus
    # To construct, see NOTES section for STATUS properties and create a hash table.
    ${Status},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShareViewpoint]
    # printerShareViewpoint
    # To construct, see NOTES section for VIEWPOINT properties and create a hash table.
    ${ViewPoint},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\New-MgBetaPrintShare_Create';
            CreateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintShare_CreateExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 tasks for print
.Description
Create new navigation property to tasks for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTask
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTask
.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 <IMicrosoftGraphPrintTask>: printTask
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique identifier for an entity. Read-only.
  [Definition <IMicrosoftGraphPrintTaskDefinition>]: printTaskDefinition
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique identifier for an entity. Read-only.
    [CreatedBy <IMicrosoftGraphAppIdentity>]: appIdentity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [AppId <String>]: Refers to the unique identifier representing Application Id in the Azure Active Directory.
      [DisplayName <String>]: Refers to the Application Name displayed in the Azure Portal.
      [ServicePrincipalId <String>]: Refers to the unique identifier indicating Service Principal Id in Azure Active Directory for the corresponding App.
      [ServicePrincipalName <String>]: Refers to the Service Principal Name is the Application name in the tenant.
    [DisplayName <String>]: The name of the printTaskDefinition.
  [ParentUrl <String>]: The URL for the print entity that triggered this task. For example, https://graph.microsoft.com/beta/print/printers/{printerId}/jobs/{jobId}. Read-only.
  [Status <IMicrosoftGraphPrintTaskStatus>]: printTaskStatus
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Description <String>]: A human-readable description of the current processing state of the printTask.
    [State <String>]: printTaskProcessingState
  [Trigger <IMicrosoftGraphPrintTaskTrigger>]: printTaskTrigger
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique identifier for an entity. Read-only.
    [Definition <IMicrosoftGraphPrintTaskDefinition>]: printTaskDefinition
    [Event <String>]: printEvent
 
DEFINITION <IMicrosoftGraphPrintTaskDefinition>: printTaskDefinition
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique identifier for an entity. Read-only.
  [CreatedBy <IMicrosoftGraphAppIdentity>]: appIdentity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [AppId <String>]: Refers to the unique identifier representing Application Id in the Azure Active Directory.
    [DisplayName <String>]: Refers to the Application Name displayed in the Azure Portal.
    [ServicePrincipalId <String>]: Refers to the unique identifier indicating Service Principal Id in Azure Active Directory for the corresponding App.
    [ServicePrincipalName <String>]: Refers to the Service Principal Name is the Application name in the tenant.
  [DisplayName <String>]: The name of the printTaskDefinition.
 
INPUTOBJECT <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
 
STATUS <IMicrosoftGraphPrintTaskStatus>: printTaskStatus
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Description <String>]: A human-readable description of the current processing state of the printTask.
  [State <String>]: printTaskProcessingState
 
TRIGGER <IMicrosoftGraphPrintTaskTrigger>: printTaskTrigger
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique identifier for an entity. Read-only.
  [Definition <IMicrosoftGraphPrintTaskDefinition>]: printTaskDefinition
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique identifier for an entity. Read-only.
    [CreatedBy <IMicrosoftGraphAppIdentity>]: appIdentity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [AppId <String>]: Refers to the unique identifier representing Application Id in the Azure Active Directory.
      [DisplayName <String>]: Refers to the Application Name displayed in the Azure Portal.
      [ServicePrincipalId <String>]: Refers to the unique identifier indicating Service Principal Id in Azure Active Directory for the corresponding App.
      [ServicePrincipalName <String>]: Refers to the Service Principal Name is the Application name in the tenant.
    [DisplayName <String>]: The name of the printTaskDefinition.
  [Event <String>]: printEvent
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/new-mgbetaprinttaskdefinitiontask
#>

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

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity]
    # 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.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTask]
    # printTask
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskDefinition]
    # printTaskDefinition
    # To construct, see NOTES section for DEFINITION properties and create a hash table.
    ${Definition},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # The URL for the print entity that triggered this task.
    # For example, https://graph.microsoft.com/beta/print/printers/{printerId}/jobs/{jobId}.
    # Read-only.
    ${ParentUrl},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskStatus]
    # printTaskStatus
    # To construct, see NOTES section for STATUS properties and create a hash table.
    ${Status},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskTrigger]
    # printTaskTrigger
    # To construct, see NOTES section for TRIGGER properties and create a hash table.
    ${Trigger},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\New-MgBetaPrintTaskDefinitionTask_Create';
            CreateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintTaskDefinitionTask_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintTaskDefinitionTask_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintTaskDefinitionTask_CreateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 a new task definition.
For details about how to use this API to add pull printing support to Universal Print, see Extending Universal Print to support pull printing.
.Description
Create a new task definition.
For details about how to use this API to add pull printing support to Universal Print, see Extending Universal Print to support pull printing.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskDefinition
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskDefinition
.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 <IMicrosoftGraphPrintTaskDefinition>: printTaskDefinition
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique identifier for an entity. Read-only.
  [CreatedBy <IMicrosoftGraphAppIdentity>]: appIdentity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [AppId <String>]: Refers to the unique identifier representing Application Id in the Azure Active Directory.
    [DisplayName <String>]: Refers to the Application Name displayed in the Azure Portal.
    [ServicePrincipalId <String>]: Refers to the unique identifier indicating Service Principal Id in Azure Active Directory for the corresponding App.
    [ServicePrincipalName <String>]: Refers to the Service Principal Name is the Application name in the tenant.
  [DisplayName <String>]: The name of the printTaskDefinition.
 
CREATEDBY <IMicrosoftGraphAppIdentity>: appIdentity
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AppId <String>]: Refers to the unique identifier representing Application Id in the Azure Active Directory.
  [DisplayName <String>]: Refers to the Application Name displayed in the Azure Portal.
  [ServicePrincipalId <String>]: Refers to the unique identifier indicating Service Principal Id in Azure Active Directory for the corresponding App.
  [ServicePrincipalName <String>]: Refers to the Service Principal Name is the Application name in the tenant.
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/new-mgbetaprinttaskdefinition
#>

function New-MgBetaPrintTaskDefinition {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskDefinition])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskDefinition]
    # printTaskDefinition
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphAppIdentity]
    # appIdentity
    # To construct, see NOTES section for CREATEDBY properties and create a hash table.
    ${CreatedBy},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # The name of the printTaskDefinition.
    ${DisplayName},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\New-MgBetaPrintTaskDefinition_Create';
            CreateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\New-MgBetaPrintTaskDefinition_CreateExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 connectors for print
.Description
Delete navigation property connectors for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/remove-mgbetaprintconnector
#>

function Remove-MgBetaPrintConnector {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printConnector
    ${PrintConnectorId},

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintConnector_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintConnector_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 operations for print
.Description
Delete navigation property operations for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/remove-mgbetaprintoperation
#>

function Remove-MgBetaPrintOperation {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printOperation
    ${PrintOperationId},

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintOperation_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintOperation_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 ref of navigation property allowedGroups for print
.Description
Delete ref of navigation property allowedGroups for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/remove-mgbetaprintprintershareallowedgroupbyref
#>

function Remove-MgBetaPrintPrinterShareAllowedGroupByRef {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of group
    ${GroupId},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printerShare
    ${PrinterShareId},

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Query')]
    [System.String]
    # Delete Uri
    ${Id},

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintPrinterShareAllowedGroupByRef_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintPrinterShareAllowedGroupByRef_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 ref of navigation property allowedUsers for print
.Description
Delete ref of navigation property allowedUsers for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/remove-mgbetaprintprintersharealloweduserbyref
#>

function Remove-MgBetaPrintPrinterShareAllowedUserByRef {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printerShare
    ${PrinterShareId},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Query')]
    [System.String]
    # Delete Uri
    ${Id},

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintPrinterShareAllowedUserByRef_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintPrinterShareAllowedUserByRef_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 printerShares for print
.Description
Delete navigation property printerShares for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/remove-mgbetaprintprintershare
#>

function Remove-MgBetaPrintPrinterShare {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printerShare
    ${PrinterShareId},

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintPrinterShare_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintPrinterShare_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 taskTriggers for print
.Description
Delete navigation property taskTriggers for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/remove-mgbetaprintprintertasktrigger
#>

function Remove-MgBetaPrintPrinterTaskTrigger {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printTaskTrigger
    ${PrintTaskTriggerId},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printer
    ${PrinterId},

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintPrinterTaskTrigger_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintPrinterTaskTrigger_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 printers for print
.Description
Delete navigation property printers for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/remove-mgbetaprintprinter
#>

function Remove-MgBetaPrintPrinter {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printer
    ${PrinterId},

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintPrinter_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintPrinter_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 endpoints for print
.Description
Delete navigation property endpoints for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/remove-mgbetaprintserviceendpoint
#>

function Remove-MgBetaPrintServiceEndpoint {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printServiceEndpoint
    ${PrintServiceEndpointId},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printService
    ${PrintServiceId},

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintServiceEndpoint_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintServiceEndpoint_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 services for print
.Description
Delete navigation property services for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/remove-mgbetaprintservice
#>

function Remove-MgBetaPrintService {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printService
    ${PrintServiceId},

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintService_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintService_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 ref of navigation property allowedGroups for print
.Description
Delete ref of navigation property allowedGroups for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/remove-mgbetaprintshareallowedgroupbyref
#>

function Remove-MgBetaPrintShareAllowedGroupByRef {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of group
    ${GroupId},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printerShare
    ${PrinterShareId},

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Query')]
    [System.String]
    # Delete Uri
    ${Id},

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintShareAllowedGroupByRef_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintShareAllowedGroupByRef_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 ref of navigation property allowedUsers for print
.Description
Delete ref of navigation property allowedUsers for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/remove-mgbetaprintsharealloweduserbyref
#>

function Remove-MgBetaPrintShareAllowedUserByRef {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printerShare
    ${PrinterShareId},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Query')]
    [System.String]
    # Delete Uri
    ${Id},

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintShareAllowedUserByRef_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintShareAllowedUserByRef_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 shares for print
.Description
Delete navigation property shares for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/remove-mgbetaprintshare
#>

function Remove-MgBetaPrintShare {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printerShare
    ${PrinterShareId},

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintShare_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintShare_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 tasks for print
.Description
Delete navigation property tasks for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/remove-mgbetaprinttaskdefinitiontask
#>

function Remove-MgBetaPrintTaskDefinitionTask {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printTaskDefinition
    ${PrintTaskDefinitionId},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printTask
    ${PrintTaskId},

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintTaskDefinitionTask_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintTaskDefinitionTask_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 taskDefinitions for print
.Description
Delete navigation property taskDefinitions for print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/remove-mgbetaprinttaskdefinition
#>

function Remove-MgBetaPrintTaskDefinition {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printTaskDefinition
    ${PrintTaskDefinitionId},

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

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

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

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintTaskDefinition_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Remove-MgBetaPrintTaskDefinition_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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
Invoke action resetDefaults
.Description
Invoke action resetDefaults
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/reset-mgbetaprintprinterdefault
#>

function Reset-MgBetaPrintPrinterDefault {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Reset', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Reset', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printer
    ${PrinterId},

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

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

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

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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 = @{
            Reset = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Reset-MgBetaPrintPrinterDefault_Reset';
            ResetViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Reset-MgBetaPrintPrinterDefault_ResetViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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
Restore a printer's default settings to the values specified by the manufacturer.
.Description
Restore a printer's default settings to the values specified by the manufacturer.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.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 <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/restore-mgbetaprintprinterfactorydefault
#>

function Restore-MgBetaPrintPrinterFactoryDefault {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Restore', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Restore', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printer
    ${PrinterId},

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

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

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

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

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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 = @{
            Restore = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Restore-MgBetaPrintPrinterFactoryDefault_Restore';
            RestoreViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Restore-MgBetaPrintPrinterFactoryDefault_RestoreViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 connectors in print
.Description
Update the navigation property connectors in print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintConnector
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintConnector
.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 <IMicrosoftGraphPrintConnector>: printConnector
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique identifier for an entity. Read-only.
  [AppVersion <String>]: The connector's version.
  [DeviceHealth <IMicrosoftGraphDeviceHealth>]: deviceHealth
    [(Any) <Object>]: This indicates any property can be added to this object.
    [LastConnectionTime <DateTime?>]: The last time the device was connected.
  [DisplayName <String>]: The name of the connector.
  [FullyQualifiedDomainName <String>]: The connector machine's hostname.
  [Location <IMicrosoftGraphPrinterLocation>]: printerLocation
    [(Any) <Object>]: This indicates any property can be added to this object.
    [AltitudeInMeters <Int32?>]: The altitude, in meters, that the printer is located at.
    [Building <String>]: The building that the printer is located in.
    [City <String>]: The city that the printer is located in.
    [CountryOrRegion <String>]: The country or region that the printer is located in.
    [Floor <String>]: The floor that the printer is located on. Only numerical values are supported right now.
    [FloorDescription <String>]: The description of the floor that the printer is located on.
    [FloorNumber <Int32?>]:
    [Latitude <Double?>]: The latitude that the printer is located at.
    [Longitude <Double?>]: The longitude that the printer is located at.
    [Organization <String[]>]: The organizational hierarchy that the printer belongs to. The elements should be in hierarchical order.
    [PostalCode <String>]: The postal code that the printer is located in.
    [RoomDescription <String>]: The description of the room that the printer is located in.
    [RoomName <String>]: The room that the printer is located in. Only numerical values are supported right now.
    [RoomNumber <Int32?>]:
    [Site <String>]: The site that the printer is located in.
    [StateOrProvince <String>]: The state or province that the printer is located in.
    [StreetAddress <String>]: The street address where the printer is located.
    [Subdivision <String[]>]: The subdivision that the printer is located in. The elements should be in hierarchical order.
    [Subunit <String[]>]:
  [Name <String>]:
  [OperatingSystem <String>]: The connector machine's operating system version.
  [RegisteredDateTime <DateTime?>]: The DateTimeOffset when the connector was registered.
 
DEVICEHEALTH <IMicrosoftGraphDeviceHealth>: deviceHealth
  [(Any) <Object>]: This indicates any property can be added to this object.
  [LastConnectionTime <DateTime?>]: The last time the device was connected.
 
INPUTOBJECT <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
 
LOCATION <IMicrosoftGraphPrinterLocation>: printerLocation
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AltitudeInMeters <Int32?>]: The altitude, in meters, that the printer is located at.
  [Building <String>]: The building that the printer is located in.
  [City <String>]: The city that the printer is located in.
  [CountryOrRegion <String>]: The country or region that the printer is located in.
  [Floor <String>]: The floor that the printer is located on. Only numerical values are supported right now.
  [FloorDescription <String>]: The description of the floor that the printer is located on.
  [FloorNumber <Int32?>]:
  [Latitude <Double?>]: The latitude that the printer is located at.
  [Longitude <Double?>]: The longitude that the printer is located at.
  [Organization <String[]>]: The organizational hierarchy that the printer belongs to. The elements should be in hierarchical order.
  [PostalCode <String>]: The postal code that the printer is located in.
  [RoomDescription <String>]: The description of the room that the printer is located in.
  [RoomName <String>]: The room that the printer is located in. Only numerical values are supported right now.
  [RoomNumber <Int32?>]:
  [Site <String>]: The site that the printer is located in.
  [StateOrProvince <String>]: The state or province that the printer is located in.
  [StreetAddress <String>]: The street address where the printer is located.
  [Subdivision <String[]>]: The subdivision that the printer is located in. The elements should be in hierarchical order.
  [Subunit <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/update-mgbetaprintconnector
#>

function Update-MgBetaPrintConnector {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintConnector])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printConnector
    ${PrintConnectorId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity]
    # 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.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintConnector]
    # printConnector
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # The connector's version.
    ${AppVersion},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphDeviceHealth]
    # deviceHealth
    # To construct, see NOTES section for DEVICEHEALTH properties and create a hash table.
    ${DeviceHealth},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # The name of the connector.
    ${DisplayName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # The connector machine's hostname.
    ${FullyQualifiedDomainName},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterLocation]
    # printerLocation
    # To construct, see NOTES section for LOCATION properties and create a hash table.
    ${Location},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${Name},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # The connector machine's operating system version.
    ${OperatingSystem},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.DateTime]
    # The DateTimeOffset when the connector was registered.
    ${RegisteredDateTime},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Update-MgBetaPrintConnector_Update';
            UpdateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintConnector_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintConnector_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintConnector_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 operations in print
.Description
Update the navigation property operations in print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintOperation
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintOperation
.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 <IMicrosoftGraphPrintOperation>: printOperation
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique identifier for an entity. Read-only.
  [CreatedDateTime <DateTime?>]: The DateTimeOffset when the operation was created. Read-only.
  [Status <IMicrosoftGraphPrintOperationStatus>]: printOperationStatus
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Description <String>]: A human-readable description of the printOperation's current processing state. Read-only.
    [State <String>]: printOperationProcessingState
 
INPUTOBJECT <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
 
STATUS <IMicrosoftGraphPrintOperationStatus>: printOperationStatus
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Description <String>]: A human-readable description of the printOperation's current processing state. Read-only.
  [State <String>]: printOperationProcessingState
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/update-mgbetaprintoperation
#>

function Update-MgBetaPrintOperation {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintOperation])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printOperation
    ${PrintOperationId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity]
    # 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.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintOperation]
    # printOperation
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.DateTime]
    # The DateTimeOffset when the operation was created.
    # Read-only.
    ${CreatedDateTime},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintOperationStatus]
    # printOperationStatus
    # To construct, see NOTES section for STATUS properties and create a hash table.
    ${Status},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Update-MgBetaPrintOperation_Update';
            UpdateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintOperation_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintOperation_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintOperation_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 printerShares in print
.Description
Update the navigation property printerShares in print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShare
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShare
.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 <IMicrosoftGraphPrinterShare>: printerShare
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Capabilities <IMicrosoftGraphPrinterCapabilities>]: printerCapabilities
    [(Any) <Object>]: This indicates any property can be added to this object.
    [BottomMargins <Int32[]>]: A list of supported bottom margins(in microns) for the printer.
    [Collation <Boolean?>]: True if the printer supports collating when printing muliple copies of a multi-page document; false otherwise.
    [ColorModes <String[]>]: The color modes supported by the printer. Valid values are described in the following table.
    [ContentTypes <String[]>]: A list of supported content (MIME) types that the printer supports. It is not guaranteed that the Universal Print service supports printing all of these MIME types.
    [CopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
      [(Any) <Object>]: This indicates any property can be added to this object.
      [End <Int64?>]: The inclusive upper bound of the integer range.
      [Maximum <Int64?>]:
      [Minimum <Int64?>]:
      [Start <Int64?>]: The inclusive lower bound of the integer range.
    [Dpis <Int32[]>]: The list of print resolutions in DPI that are supported by the printer.
    [DuplexModes <String[]>]: The list of duplex modes that are supported by the printer. Valid values are described in the following table.
    [FeedDirections <String[]>]:
    [FeedOrientations <String[]>]: The list of feed orientations that are supported by the printer.
    [Finishings <String[]>]: Finishing processes the printer supports for a printed document.
    [InputBins <String[]>]: Supported input bins for the printer.
    [IsColorPrintingSupported <Boolean?>]: True if color printing is supported by the printer; false otherwise. Read-only.
    [IsPageRangeSupported <Boolean?>]: True if the printer supports printing by page ranges; false otherwise.
    [LeftMargins <Int32[]>]: A list of supported left margins(in microns) for the printer.
    [MediaColors <String[]>]: The media (i.e., paper) colors supported by the printer.
    [MediaSizes <String[]>]: The media sizes supported by the printer. Supports standard size names for ISO and ANSI media sizes. Valid values are in the following table.
    [MediaTypes <String[]>]: The media types supported by the printer.
    [MultipageLayouts <String[]>]: The presentation directions supported by the printer. Supported values are described in the following table.
    [Orientations <String[]>]: The print orientations supported by the printer. Valid values are described in the following table.
    [OutputBins <String[]>]: The printer's supported output bins (trays).
    [PagesPerSheet <Int32[]>]: Supported number of Input Pages to impose upon a single Impression.
    [Qualities <String[]>]: The print qualities supported by the printer.
    [RightMargins <Int32[]>]: A list of supported right margins(in microns) for the printer.
    [Scalings <String[]>]: Supported print scalings.
    [SupportedColorConfigurations <String[]>]:
    [SupportedCopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
    [SupportedDocumentMimeTypes <String[]>]:
    [SupportedDuplexConfigurations <String[]>]:
    [SupportedFinishings <String[]>]:
    [SupportedMediaColors <String[]>]:
    [SupportedMediaSizes <String[]>]:
    [SupportedMediaTypes <String[]>]:
    [SupportedOrientations <String[]>]:
    [SupportedOutputBins <String[]>]:
    [SupportedPagesPerSheet <IMicrosoftGraphIntegerRange>]: integerRange
    [SupportedPresentationDirections <String[]>]:
    [SupportedPrintQualities <String[]>]:
    [SupportsFitPdfToPage <Boolean?>]: True if the printer supports scaling PDF pages to match the print media size; false otherwise.
    [TopMargins <Int32[]>]: A list of supported top margins(in microns) for the printer.
  [Defaults <IMicrosoftGraphPrinterDefaults>]: printerDefaults
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ColorMode <String>]: printColorMode
    [ContentType <String>]: The default content (MIME) type to use when processing documents.
    [CopiesPerJob <Int32?>]: The default number of copies printed per job.
    [DocumentMimeType <String>]:
    [Dpi <Int32?>]: The default resolution in DPI to use when printing the job.
    [DuplexConfiguration <String>]: printDuplexConfiguration
    [DuplexMode <String>]: printDuplexMode
    [Finishings <String[]>]: The default set of finishings to apply to print jobs. Valid values are described in the following table.
    [FitPdfToPage <Boolean?>]: The default fitPdfToPage setting. True to fit each page of a PDF document to a physical sheet of media; false to let the printer decide how to lay out impressions.
    [InputBin <String>]: The default input bin that serves as the paper source.
    [MediaColor <String>]: The default media (such as paper) color to print the document on.
    [MediaSize <String>]: The default media size to use. Supports standard size names for ISO and ANSI media sizes. Valid values are listed in the printerCapabilities topic.
    [MediaType <String>]: The default media (such as paper) type to print the document on.
    [MultipageLayout <String>]: printMultipageLayout
    [Orientation <String>]: printOrientation
    [OutputBin <String>]: The default output bin to place completed prints into. See the printer's capabilities for a list of supported output bins.
    [PagesPerSheet <Int32?>]: The default number of document pages to print on each sheet.
    [PdfFitToPage <Boolean?>]:
    [PresentationDirection <String>]: printPresentationDirection
    [PrintColorConfiguration <String>]: printColorConfiguration
    [PrintQuality <String>]: printQuality
    [Quality <String>]: printQuality
    [Scaling <String>]: printScaling
  [DisplayName <String>]:
  [IsAcceptingJobs <Boolean?>]:
  [Location <IMicrosoftGraphPrinterLocation>]: printerLocation
    [(Any) <Object>]: This indicates any property can be added to this object.
    [AltitudeInMeters <Int32?>]: The altitude, in meters, that the printer is located at.
    [Building <String>]: The building that the printer is located in.
    [City <String>]: The city that the printer is located in.
    [CountryOrRegion <String>]: The country or region that the printer is located in.
    [Floor <String>]: The floor that the printer is located on. Only numerical values are supported right now.
    [FloorDescription <String>]: The description of the floor that the printer is located on.
    [FloorNumber <Int32?>]:
    [Latitude <Double?>]: The latitude that the printer is located at.
    [Longitude <Double?>]: The longitude that the printer is located at.
    [Organization <String[]>]: The organizational hierarchy that the printer belongs to. The elements should be in hierarchical order.
    [PostalCode <String>]: The postal code that the printer is located in.
    [RoomDescription <String>]: The description of the room that the printer is located in.
    [RoomName <String>]: The room that the printer is located in. Only numerical values are supported right now.
    [RoomNumber <Int32?>]:
    [Site <String>]: The site that the printer is located in.
    [StateOrProvince <String>]: The state or province that the printer is located in.
    [StreetAddress <String>]: The street address where the printer is located.
    [Subdivision <String[]>]: The subdivision that the printer is located in. The elements should be in hierarchical order.
    [Subunit <String[]>]:
  [Manufacturer <String>]:
  [Model <String>]:
  [Name <String>]:
  [Status <IMicrosoftGraphPrinterStatus>]: printerStatus
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Description <String>]: A human-readable description of the printer's current processing state. Read-only.
    [Details <String[]>]: The list of details describing why the printer is in the current state. Valid values are described in the following table. Read-only.
    [ProcessingState <String>]: printerProcessingState
    [ProcessingStateDescription <String>]:
    [ProcessingStateReasons <String[]>]:
    [State <String>]: printerProcessingState
  [Id <String>]: The unique identifier for an entity. Read-only.
  [AllowAllUsers <Boolean?>]: If true, all users and groups will be granted access to this printer share. This supersedes the allow lists defined by the allowedUsers and allowedGroups navigation properties.
  [CreatedDateTime <DateTime?>]: The DateTimeOffset when the printer share was created. Read-only.
  [Printer <IMicrosoftGraphPrinter>]: printer
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Capabilities <IMicrosoftGraphPrinterCapabilities>]: printerCapabilities
    [Defaults <IMicrosoftGraphPrinterDefaults>]: printerDefaults
    [DisplayName <String>]:
    [IsAcceptingJobs <Boolean?>]:
    [Location <IMicrosoftGraphPrinterLocation>]: printerLocation
    [Manufacturer <String>]:
    [Model <String>]:
    [Name <String>]:
    [Status <IMicrosoftGraphPrinterStatus>]: printerStatus
    [Id <String>]: The unique identifier for an entity. Read-only.
    [AcceptingJobs <Boolean?>]:
    [HasPhysicalDevice <Boolean?>]: True if the printer has a physical device for printing. Read-only.
    [IsShared <Boolean?>]: True if the printer is shared; false otherwise. Read-only.
    [LastSeenDateTime <DateTime?>]: The most recent dateTimeOffset when a printer interacted with Universal Print. Read-only.
    [RegisteredDateTime <DateTime?>]: The DateTimeOffset when the printer was registered. Read-only.
    [Share <IMicrosoftGraphPrinterShare>]: printerShare
  [ViewPoint <IMicrosoftGraphPrinterShareViewpoint>]: printerShareViewpoint
    [(Any) <Object>]: This indicates any property can be added to this object.
    [LastUsedDateTime <DateTime?>]: Date and time when the printer was last used by the signed-in user. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
 
CAPABILITIES <IMicrosoftGraphPrinterCapabilities>: printerCapabilities
  [(Any) <Object>]: This indicates any property can be added to this object.
  [BottomMargins <Int32[]>]: A list of supported bottom margins(in microns) for the printer.
  [Collation <Boolean?>]: True if the printer supports collating when printing muliple copies of a multi-page document; false otherwise.
  [ColorModes <String[]>]: The color modes supported by the printer. Valid values are described in the following table.
  [ContentTypes <String[]>]: A list of supported content (MIME) types that the printer supports. It is not guaranteed that the Universal Print service supports printing all of these MIME types.
  [CopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
    [(Any) <Object>]: This indicates any property can be added to this object.
    [End <Int64?>]: The inclusive upper bound of the integer range.
    [Maximum <Int64?>]:
    [Minimum <Int64?>]:
    [Start <Int64?>]: The inclusive lower bound of the integer range.
  [Dpis <Int32[]>]: The list of print resolutions in DPI that are supported by the printer.
  [DuplexModes <String[]>]: The list of duplex modes that are supported by the printer. Valid values are described in the following table.
  [FeedDirections <String[]>]:
  [FeedOrientations <String[]>]: The list of feed orientations that are supported by the printer.
  [Finishings <String[]>]: Finishing processes the printer supports for a printed document.
  [InputBins <String[]>]: Supported input bins for the printer.
  [IsColorPrintingSupported <Boolean?>]: True if color printing is supported by the printer; false otherwise. Read-only.
  [IsPageRangeSupported <Boolean?>]: True if the printer supports printing by page ranges; false otherwise.
  [LeftMargins <Int32[]>]: A list of supported left margins(in microns) for the printer.
  [MediaColors <String[]>]: The media (i.e., paper) colors supported by the printer.
  [MediaSizes <String[]>]: The media sizes supported by the printer. Supports standard size names for ISO and ANSI media sizes. Valid values are in the following table.
  [MediaTypes <String[]>]: The media types supported by the printer.
  [MultipageLayouts <String[]>]: The presentation directions supported by the printer. Supported values are described in the following table.
  [Orientations <String[]>]: The print orientations supported by the printer. Valid values are described in the following table.
  [OutputBins <String[]>]: The printer's supported output bins (trays).
  [PagesPerSheet <Int32[]>]: Supported number of Input Pages to impose upon a single Impression.
  [Qualities <String[]>]: The print qualities supported by the printer.
  [RightMargins <Int32[]>]: A list of supported right margins(in microns) for the printer.
  [Scalings <String[]>]: Supported print scalings.
  [SupportedColorConfigurations <String[]>]:
  [SupportedCopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
  [SupportedDocumentMimeTypes <String[]>]:
  [SupportedDuplexConfigurations <String[]>]:
  [SupportedFinishings <String[]>]:
  [SupportedMediaColors <String[]>]:
  [SupportedMediaSizes <String[]>]:
  [SupportedMediaTypes <String[]>]:
  [SupportedOrientations <String[]>]:
  [SupportedOutputBins <String[]>]:
  [SupportedPagesPerSheet <IMicrosoftGraphIntegerRange>]: integerRange
  [SupportedPresentationDirections <String[]>]:
  [SupportedPrintQualities <String[]>]:
  [SupportsFitPdfToPage <Boolean?>]: True if the printer supports scaling PDF pages to match the print media size; false otherwise.
  [TopMargins <Int32[]>]: A list of supported top margins(in microns) for the printer.
 
DEFAULTS <IMicrosoftGraphPrinterDefaults>: printerDefaults
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ColorMode <String>]: printColorMode
  [ContentType <String>]: The default content (MIME) type to use when processing documents.
  [CopiesPerJob <Int32?>]: The default number of copies printed per job.
  [DocumentMimeType <String>]:
  [Dpi <Int32?>]: The default resolution in DPI to use when printing the job.
  [DuplexConfiguration <String>]: printDuplexConfiguration
  [DuplexMode <String>]: printDuplexMode
  [Finishings <String[]>]: The default set of finishings to apply to print jobs. Valid values are described in the following table.
  [FitPdfToPage <Boolean?>]: The default fitPdfToPage setting. True to fit each page of a PDF document to a physical sheet of media; false to let the printer decide how to lay out impressions.
  [InputBin <String>]: The default input bin that serves as the paper source.
  [MediaColor <String>]: The default media (such as paper) color to print the document on.
  [MediaSize <String>]: The default media size to use. Supports standard size names for ISO and ANSI media sizes. Valid values are listed in the printerCapabilities topic.
  [MediaType <String>]: The default media (such as paper) type to print the document on.
  [MultipageLayout <String>]: printMultipageLayout
  [Orientation <String>]: printOrientation
  [OutputBin <String>]: The default output bin to place completed prints into. See the printer's capabilities for a list of supported output bins.
  [PagesPerSheet <Int32?>]: The default number of document pages to print on each sheet.
  [PdfFitToPage <Boolean?>]:
  [PresentationDirection <String>]: printPresentationDirection
  [PrintColorConfiguration <String>]: printColorConfiguration
  [PrintQuality <String>]: printQuality
  [Quality <String>]: printQuality
  [Scaling <String>]: printScaling
 
INPUTOBJECT <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
 
LOCATION <IMicrosoftGraphPrinterLocation>: printerLocation
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AltitudeInMeters <Int32?>]: The altitude, in meters, that the printer is located at.
  [Building <String>]: The building that the printer is located in.
  [City <String>]: The city that the printer is located in.
  [CountryOrRegion <String>]: The country or region that the printer is located in.
  [Floor <String>]: The floor that the printer is located on. Only numerical values are supported right now.
  [FloorDescription <String>]: The description of the floor that the printer is located on.
  [FloorNumber <Int32?>]:
  [Latitude <Double?>]: The latitude that the printer is located at.
  [Longitude <Double?>]: The longitude that the printer is located at.
  [Organization <String[]>]: The organizational hierarchy that the printer belongs to. The elements should be in hierarchical order.
  [PostalCode <String>]: The postal code that the printer is located in.
  [RoomDescription <String>]: The description of the room that the printer is located in.
  [RoomName <String>]: The room that the printer is located in. Only numerical values are supported right now.
  [RoomNumber <Int32?>]:
  [Site <String>]: The site that the printer is located in.
  [StateOrProvince <String>]: The state or province that the printer is located in.
  [StreetAddress <String>]: The street address where the printer is located.
  [Subdivision <String[]>]: The subdivision that the printer is located in. The elements should be in hierarchical order.
  [Subunit <String[]>]:
 
PRINTER <IMicrosoftGraphPrinter>: printer
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Capabilities <IMicrosoftGraphPrinterCapabilities>]: printerCapabilities
    [(Any) <Object>]: This indicates any property can be added to this object.
    [BottomMargins <Int32[]>]: A list of supported bottom margins(in microns) for the printer.
    [Collation <Boolean?>]: True if the printer supports collating when printing muliple copies of a multi-page document; false otherwise.
    [ColorModes <String[]>]: The color modes supported by the printer. Valid values are described in the following table.
    [ContentTypes <String[]>]: A list of supported content (MIME) types that the printer supports. It is not guaranteed that the Universal Print service supports printing all of these MIME types.
    [CopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
      [(Any) <Object>]: This indicates any property can be added to this object.
      [End <Int64?>]: The inclusive upper bound of the integer range.
      [Maximum <Int64?>]:
      [Minimum <Int64?>]:
      [Start <Int64?>]: The inclusive lower bound of the integer range.
    [Dpis <Int32[]>]: The list of print resolutions in DPI that are supported by the printer.
    [DuplexModes <String[]>]: The list of duplex modes that are supported by the printer. Valid values are described in the following table.
    [FeedDirections <String[]>]:
    [FeedOrientations <String[]>]: The list of feed orientations that are supported by the printer.
    [Finishings <String[]>]: Finishing processes the printer supports for a printed document.
    [InputBins <String[]>]: Supported input bins for the printer.
    [IsColorPrintingSupported <Boolean?>]: True if color printing is supported by the printer; false otherwise. Read-only.
    [IsPageRangeSupported <Boolean?>]: True if the printer supports printing by page ranges; false otherwise.
    [LeftMargins <Int32[]>]: A list of supported left margins(in microns) for the printer.
    [MediaColors <String[]>]: The media (i.e., paper) colors supported by the printer.
    [MediaSizes <String[]>]: The media sizes supported by the printer. Supports standard size names for ISO and ANSI media sizes. Valid values are in the following table.
    [MediaTypes <String[]>]: The media types supported by the printer.
    [MultipageLayouts <String[]>]: The presentation directions supported by the printer. Supported values are described in the following table.
    [Orientations <String[]>]: The print orientations supported by the printer. Valid values are described in the following table.
    [OutputBins <String[]>]: The printer's supported output bins (trays).
    [PagesPerSheet <Int32[]>]: Supported number of Input Pages to impose upon a single Impression.
    [Qualities <String[]>]: The print qualities supported by the printer.
    [RightMargins <Int32[]>]: A list of supported right margins(in microns) for the printer.
    [Scalings <String[]>]: Supported print scalings.
    [SupportedColorConfigurations <String[]>]:
    [SupportedCopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
    [SupportedDocumentMimeTypes <String[]>]:
    [SupportedDuplexConfigurations <String[]>]:
    [SupportedFinishings <String[]>]:
    [SupportedMediaColors <String[]>]:
    [SupportedMediaSizes <String[]>]:
    [SupportedMediaTypes <String[]>]:
    [SupportedOrientations <String[]>]:
    [SupportedOutputBins <String[]>]:
    [SupportedPagesPerSheet <IMicrosoftGraphIntegerRange>]: integerRange
    [SupportedPresentationDirections <String[]>]:
    [SupportedPrintQualities <String[]>]:
    [SupportsFitPdfToPage <Boolean?>]: True if the printer supports scaling PDF pages to match the print media size; false otherwise.
    [TopMargins <Int32[]>]: A list of supported top margins(in microns) for the printer.
  [Defaults <IMicrosoftGraphPrinterDefaults>]: printerDefaults
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ColorMode <String>]: printColorMode
    [ContentType <String>]: The default content (MIME) type to use when processing documents.
    [CopiesPerJob <Int32?>]: The default number of copies printed per job.
    [DocumentMimeType <String>]:
    [Dpi <Int32?>]: The default resolution in DPI to use when printing the job.
    [DuplexConfiguration <String>]: printDuplexConfiguration
    [DuplexMode <String>]: printDuplexMode
    [Finishings <String[]>]: The default set of finishings to apply to print jobs. Valid values are described in the following table.
    [FitPdfToPage <Boolean?>]: The default fitPdfToPage setting. True to fit each page of a PDF document to a physical sheet of media; false to let the printer decide how to lay out impressions.
    [InputBin <String>]: The default input bin that serves as the paper source.
    [MediaColor <String>]: The default media (such as paper) color to print the document on.
    [MediaSize <String>]: The default media size to use. Supports standard size names for ISO and ANSI media sizes. Valid values are listed in the printerCapabilities topic.
    [MediaType <String>]: The default media (such as paper) type to print the document on.
    [MultipageLayout <String>]: printMultipageLayout
    [Orientation <String>]: printOrientation
    [OutputBin <String>]: The default output bin to place completed prints into. See the printer's capabilities for a list of supported output bins.
    [PagesPerSheet <Int32?>]: The default number of document pages to print on each sheet.
    [PdfFitToPage <Boolean?>]:
    [PresentationDirection <String>]: printPresentationDirection
    [PrintColorConfiguration <String>]: printColorConfiguration
    [PrintQuality <String>]: printQuality
    [Quality <String>]: printQuality
    [Scaling <String>]: printScaling
  [DisplayName <String>]:
  [IsAcceptingJobs <Boolean?>]:
  [Location <IMicrosoftGraphPrinterLocation>]: printerLocation
    [(Any) <Object>]: This indicates any property can be added to this object.
    [AltitudeInMeters <Int32?>]: The altitude, in meters, that the printer is located at.
    [Building <String>]: The building that the printer is located in.
    [City <String>]: The city that the printer is located in.
    [CountryOrRegion <String>]: The country or region that the printer is located in.
    [Floor <String>]: The floor that the printer is located on. Only numerical values are supported right now.
    [FloorDescription <String>]: The description of the floor that the printer is located on.
    [FloorNumber <Int32?>]:
    [Latitude <Double?>]: The latitude that the printer is located at.
    [Longitude <Double?>]: The longitude that the printer is located at.
    [Organization <String[]>]: The organizational hierarchy that the printer belongs to. The elements should be in hierarchical order.
    [PostalCode <String>]: The postal code that the printer is located in.
    [RoomDescription <String>]: The description of the room that the printer is located in.
    [RoomName <String>]: The room that the printer is located in. Only numerical values are supported right now.
    [RoomNumber <Int32?>]:
    [Site <String>]: The site that the printer is located in.
    [StateOrProvince <String>]: The state or province that the printer is located in.
    [StreetAddress <String>]: The street address where the printer is located.
    [Subdivision <String[]>]: The subdivision that the printer is located in. The elements should be in hierarchical order.
    [Subunit <String[]>]:
  [Manufacturer <String>]:
  [Model <String>]:
  [Name <String>]:
  [Status <IMicrosoftGraphPrinterStatus>]: printerStatus
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Description <String>]: A human-readable description of the printer's current processing state. Read-only.
    [Details <String[]>]: The list of details describing why the printer is in the current state. Valid values are described in the following table. Read-only.
    [ProcessingState <String>]: printerProcessingState
    [ProcessingStateDescription <String>]:
    [ProcessingStateReasons <String[]>]:
    [State <String>]: printerProcessingState
  [Id <String>]: The unique identifier for an entity. Read-only.
  [AcceptingJobs <Boolean?>]:
  [HasPhysicalDevice <Boolean?>]: True if the printer has a physical device for printing. Read-only.
  [IsShared <Boolean?>]: True if the printer is shared; false otherwise. Read-only.
  [LastSeenDateTime <DateTime?>]: The most recent dateTimeOffset when a printer interacted with Universal Print. Read-only.
  [RegisteredDateTime <DateTime?>]: The DateTimeOffset when the printer was registered. Read-only.
  [Share <IMicrosoftGraphPrinterShare>]: printerShare
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Capabilities <IMicrosoftGraphPrinterCapabilities>]: printerCapabilities
    [Defaults <IMicrosoftGraphPrinterDefaults>]: printerDefaults
    [DisplayName <String>]:
    [IsAcceptingJobs <Boolean?>]:
    [Location <IMicrosoftGraphPrinterLocation>]: printerLocation
    [Manufacturer <String>]:
    [Model <String>]:
    [Name <String>]:
    [Status <IMicrosoftGraphPrinterStatus>]: printerStatus
    [Id <String>]: The unique identifier for an entity. Read-only.
    [AllowAllUsers <Boolean?>]: If true, all users and groups will be granted access to this printer share. This supersedes the allow lists defined by the allowedUsers and allowedGroups navigation properties.
    [CreatedDateTime <DateTime?>]: The DateTimeOffset when the printer share was created. Read-only.
    [Printer <IMicrosoftGraphPrinter>]: printer
    [ViewPoint <IMicrosoftGraphPrinterShareViewpoint>]: printerShareViewpoint
      [(Any) <Object>]: This indicates any property can be added to this object.
      [LastUsedDateTime <DateTime?>]: Date and time when the printer was last used by the signed-in user. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
 
STATUS <IMicrosoftGraphPrinterStatus>: printerStatus
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Description <String>]: A human-readable description of the printer's current processing state. Read-only.
  [Details <String[]>]: The list of details describing why the printer is in the current state. Valid values are described in the following table. Read-only.
  [ProcessingState <String>]: printerProcessingState
  [ProcessingStateDescription <String>]:
  [ProcessingStateReasons <String[]>]:
  [State <String>]: printerProcessingState
 
VIEWPOINT <IMicrosoftGraphPrinterShareViewpoint>: printerShareViewpoint
  [(Any) <Object>]: This indicates any property can be added to this object.
  [LastUsedDateTime <DateTime?>]: Date and time when the printer was last used by the signed-in user. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/update-mgbetaprintprintershare
#>

function Update-MgBetaPrintPrinterShare {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShare])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printerShare
    ${PrinterShareId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity]
    # 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.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShare]
    # printerShare
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # If true, all users and groups will be granted access to this printer share.
    # This supersedes the allow lists defined by the allowedUsers and allowedGroups navigation properties.
    ${AllowAllUsers},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterCapabilities]
    # printerCapabilities
    # To construct, see NOTES section for CAPABILITIES properties and create a hash table.
    ${Capabilities},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.DateTime]
    # The DateTimeOffset when the printer share was created.
    # Read-only.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterDefaults]
    # printerDefaults
    # To construct, see NOTES section for DEFAULTS properties and create a hash table.
    ${Defaults},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${DisplayName},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${IsAcceptingJobs},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterLocation]
    # printerLocation
    # To construct, see NOTES section for LOCATION properties and create a hash table.
    ${Location},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${Manufacturer},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${Model},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${Name},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinter]
    # printer
    # To construct, see NOTES section for PRINTER properties and create a hash table.
    ${Printer},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterStatus]
    # printerStatus
    # To construct, see NOTES section for STATUS properties and create a hash table.
    ${Status},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShareViewpoint]
    # printerShareViewpoint
    # To construct, see NOTES section for VIEWPOINT properties and create a hash table.
    ${ViewPoint},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Update-MgBetaPrintPrinterShare_Update';
            UpdateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintPrinterShare_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintPrinterShare_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintPrinterShare_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 taskTriggers in print
.Description
Update the navigation property taskTriggers in print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskTrigger
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskTrigger
.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 <IMicrosoftGraphPrintTaskTrigger>: printTaskTrigger
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique identifier for an entity. Read-only.
  [Definition <IMicrosoftGraphPrintTaskDefinition>]: printTaskDefinition
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique identifier for an entity. Read-only.
    [CreatedBy <IMicrosoftGraphAppIdentity>]: appIdentity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [AppId <String>]: Refers to the unique identifier representing Application Id in the Azure Active Directory.
      [DisplayName <String>]: Refers to the Application Name displayed in the Azure Portal.
      [ServicePrincipalId <String>]: Refers to the unique identifier indicating Service Principal Id in Azure Active Directory for the corresponding App.
      [ServicePrincipalName <String>]: Refers to the Service Principal Name is the Application name in the tenant.
    [DisplayName <String>]: The name of the printTaskDefinition.
  [Event <String>]: printEvent
 
DEFINITION <IMicrosoftGraphPrintTaskDefinition>: printTaskDefinition
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique identifier for an entity. Read-only.
  [CreatedBy <IMicrosoftGraphAppIdentity>]: appIdentity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [AppId <String>]: Refers to the unique identifier representing Application Id in the Azure Active Directory.
    [DisplayName <String>]: Refers to the Application Name displayed in the Azure Portal.
    [ServicePrincipalId <String>]: Refers to the unique identifier indicating Service Principal Id in Azure Active Directory for the corresponding App.
    [ServicePrincipalName <String>]: Refers to the Service Principal Name is the Application name in the tenant.
  [DisplayName <String>]: The name of the printTaskDefinition.
 
INPUTOBJECT <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/update-mgbetaprintprintertasktrigger
#>

function Update-MgBetaPrintPrinterTaskTrigger {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskTrigger])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printTaskTrigger
    ${PrintTaskTriggerId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printer
    ${PrinterId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity]
    # 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.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskTrigger]
    # printTaskTrigger
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskDefinition]
    # printTaskDefinition
    # To construct, see NOTES section for DEFINITION properties and create a hash table.
    ${Definition},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # printEvent
    ${Event},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Update-MgBetaPrintPrinterTaskTrigger_Update';
            UpdateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintPrinterTaskTrigger_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintPrinterTaskTrigger_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintPrinterTaskTrigger_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 printers in print
.Description
Update the navigation property printers in print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinter
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinter
.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 <IMicrosoftGraphPrinter>: printer
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Capabilities <IMicrosoftGraphPrinterCapabilities>]: printerCapabilities
    [(Any) <Object>]: This indicates any property can be added to this object.
    [BottomMargins <Int32[]>]: A list of supported bottom margins(in microns) for the printer.
    [Collation <Boolean?>]: True if the printer supports collating when printing muliple copies of a multi-page document; false otherwise.
    [ColorModes <String[]>]: The color modes supported by the printer. Valid values are described in the following table.
    [ContentTypes <String[]>]: A list of supported content (MIME) types that the printer supports. It is not guaranteed that the Universal Print service supports printing all of these MIME types.
    [CopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
      [(Any) <Object>]: This indicates any property can be added to this object.
      [End <Int64?>]: The inclusive upper bound of the integer range.
      [Maximum <Int64?>]:
      [Minimum <Int64?>]:
      [Start <Int64?>]: The inclusive lower bound of the integer range.
    [Dpis <Int32[]>]: The list of print resolutions in DPI that are supported by the printer.
    [DuplexModes <String[]>]: The list of duplex modes that are supported by the printer. Valid values are described in the following table.
    [FeedDirections <String[]>]:
    [FeedOrientations <String[]>]: The list of feed orientations that are supported by the printer.
    [Finishings <String[]>]: Finishing processes the printer supports for a printed document.
    [InputBins <String[]>]: Supported input bins for the printer.
    [IsColorPrintingSupported <Boolean?>]: True if color printing is supported by the printer; false otherwise. Read-only.
    [IsPageRangeSupported <Boolean?>]: True if the printer supports printing by page ranges; false otherwise.
    [LeftMargins <Int32[]>]: A list of supported left margins(in microns) for the printer.
    [MediaColors <String[]>]: The media (i.e., paper) colors supported by the printer.
    [MediaSizes <String[]>]: The media sizes supported by the printer. Supports standard size names for ISO and ANSI media sizes. Valid values are in the following table.
    [MediaTypes <String[]>]: The media types supported by the printer.
    [MultipageLayouts <String[]>]: The presentation directions supported by the printer. Supported values are described in the following table.
    [Orientations <String[]>]: The print orientations supported by the printer. Valid values are described in the following table.
    [OutputBins <String[]>]: The printer's supported output bins (trays).
    [PagesPerSheet <Int32[]>]: Supported number of Input Pages to impose upon a single Impression.
    [Qualities <String[]>]: The print qualities supported by the printer.
    [RightMargins <Int32[]>]: A list of supported right margins(in microns) for the printer.
    [Scalings <String[]>]: Supported print scalings.
    [SupportedColorConfigurations <String[]>]:
    [SupportedCopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
    [SupportedDocumentMimeTypes <String[]>]:
    [SupportedDuplexConfigurations <String[]>]:
    [SupportedFinishings <String[]>]:
    [SupportedMediaColors <String[]>]:
    [SupportedMediaSizes <String[]>]:
    [SupportedMediaTypes <String[]>]:
    [SupportedOrientations <String[]>]:
    [SupportedOutputBins <String[]>]:
    [SupportedPagesPerSheet <IMicrosoftGraphIntegerRange>]: integerRange
    [SupportedPresentationDirections <String[]>]:
    [SupportedPrintQualities <String[]>]:
    [SupportsFitPdfToPage <Boolean?>]: True if the printer supports scaling PDF pages to match the print media size; false otherwise.
    [TopMargins <Int32[]>]: A list of supported top margins(in microns) for the printer.
  [Defaults <IMicrosoftGraphPrinterDefaults>]: printerDefaults
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ColorMode <String>]: printColorMode
    [ContentType <String>]: The default content (MIME) type to use when processing documents.
    [CopiesPerJob <Int32?>]: The default number of copies printed per job.
    [DocumentMimeType <String>]:
    [Dpi <Int32?>]: The default resolution in DPI to use when printing the job.
    [DuplexConfiguration <String>]: printDuplexConfiguration
    [DuplexMode <String>]: printDuplexMode
    [Finishings <String[]>]: The default set of finishings to apply to print jobs. Valid values are described in the following table.
    [FitPdfToPage <Boolean?>]: The default fitPdfToPage setting. True to fit each page of a PDF document to a physical sheet of media; false to let the printer decide how to lay out impressions.
    [InputBin <String>]: The default input bin that serves as the paper source.
    [MediaColor <String>]: The default media (such as paper) color to print the document on.
    [MediaSize <String>]: The default media size to use. Supports standard size names for ISO and ANSI media sizes. Valid values are listed in the printerCapabilities topic.
    [MediaType <String>]: The default media (such as paper) type to print the document on.
    [MultipageLayout <String>]: printMultipageLayout
    [Orientation <String>]: printOrientation
    [OutputBin <String>]: The default output bin to place completed prints into. See the printer's capabilities for a list of supported output bins.
    [PagesPerSheet <Int32?>]: The default number of document pages to print on each sheet.
    [PdfFitToPage <Boolean?>]:
    [PresentationDirection <String>]: printPresentationDirection
    [PrintColorConfiguration <String>]: printColorConfiguration
    [PrintQuality <String>]: printQuality
    [Quality <String>]: printQuality
    [Scaling <String>]: printScaling
  [DisplayName <String>]:
  [IsAcceptingJobs <Boolean?>]:
  [Location <IMicrosoftGraphPrinterLocation>]: printerLocation
    [(Any) <Object>]: This indicates any property can be added to this object.
    [AltitudeInMeters <Int32?>]: The altitude, in meters, that the printer is located at.
    [Building <String>]: The building that the printer is located in.
    [City <String>]: The city that the printer is located in.
    [CountryOrRegion <String>]: The country or region that the printer is located in.
    [Floor <String>]: The floor that the printer is located on. Only numerical values are supported right now.
    [FloorDescription <String>]: The description of the floor that the printer is located on.
    [FloorNumber <Int32?>]:
    [Latitude <Double?>]: The latitude that the printer is located at.
    [Longitude <Double?>]: The longitude that the printer is located at.
    [Organization <String[]>]: The organizational hierarchy that the printer belongs to. The elements should be in hierarchical order.
    [PostalCode <String>]: The postal code that the printer is located in.
    [RoomDescription <String>]: The description of the room that the printer is located in.
    [RoomName <String>]: The room that the printer is located in. Only numerical values are supported right now.
    [RoomNumber <Int32?>]:
    [Site <String>]: The site that the printer is located in.
    [StateOrProvince <String>]: The state or province that the printer is located in.
    [StreetAddress <String>]: The street address where the printer is located.
    [Subdivision <String[]>]: The subdivision that the printer is located in. The elements should be in hierarchical order.
    [Subunit <String[]>]:
  [Manufacturer <String>]:
  [Model <String>]:
  [Name <String>]:
  [Status <IMicrosoftGraphPrinterStatus>]: printerStatus
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Description <String>]: A human-readable description of the printer's current processing state. Read-only.
    [Details <String[]>]: The list of details describing why the printer is in the current state. Valid values are described in the following table. Read-only.
    [ProcessingState <String>]: printerProcessingState
    [ProcessingStateDescription <String>]:
    [ProcessingStateReasons <String[]>]:
    [State <String>]: printerProcessingState
  [Id <String>]: The unique identifier for an entity. Read-only.
  [AcceptingJobs <Boolean?>]:
  [HasPhysicalDevice <Boolean?>]: True if the printer has a physical device for printing. Read-only.
  [IsShared <Boolean?>]: True if the printer is shared; false otherwise. Read-only.
  [LastSeenDateTime <DateTime?>]: The most recent dateTimeOffset when a printer interacted with Universal Print. Read-only.
  [RegisteredDateTime <DateTime?>]: The DateTimeOffset when the printer was registered. Read-only.
  [Share <IMicrosoftGraphPrinterShare>]: printerShare
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Capabilities <IMicrosoftGraphPrinterCapabilities>]: printerCapabilities
    [Defaults <IMicrosoftGraphPrinterDefaults>]: printerDefaults
    [DisplayName <String>]:
    [IsAcceptingJobs <Boolean?>]:
    [Location <IMicrosoftGraphPrinterLocation>]: printerLocation
    [Manufacturer <String>]:
    [Model <String>]:
    [Name <String>]:
    [Status <IMicrosoftGraphPrinterStatus>]: printerStatus
    [Id <String>]: The unique identifier for an entity. Read-only.
    [AllowAllUsers <Boolean?>]: If true, all users and groups will be granted access to this printer share. This supersedes the allow lists defined by the allowedUsers and allowedGroups navigation properties.
    [CreatedDateTime <DateTime?>]: The DateTimeOffset when the printer share was created. Read-only.
    [Printer <IMicrosoftGraphPrinter>]: printer
    [ViewPoint <IMicrosoftGraphPrinterShareViewpoint>]: printerShareViewpoint
      [(Any) <Object>]: This indicates any property can be added to this object.
      [LastUsedDateTime <DateTime?>]: Date and time when the printer was last used by the signed-in user. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
 
CAPABILITIES <IMicrosoftGraphPrinterCapabilities>: printerCapabilities
  [(Any) <Object>]: This indicates any property can be added to this object.
  [BottomMargins <Int32[]>]: A list of supported bottom margins(in microns) for the printer.
  [Collation <Boolean?>]: True if the printer supports collating when printing muliple copies of a multi-page document; false otherwise.
  [ColorModes <String[]>]: The color modes supported by the printer. Valid values are described in the following table.
  [ContentTypes <String[]>]: A list of supported content (MIME) types that the printer supports. It is not guaranteed that the Universal Print service supports printing all of these MIME types.
  [CopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
    [(Any) <Object>]: This indicates any property can be added to this object.
    [End <Int64?>]: The inclusive upper bound of the integer range.
    [Maximum <Int64?>]:
    [Minimum <Int64?>]:
    [Start <Int64?>]: The inclusive lower bound of the integer range.
  [Dpis <Int32[]>]: The list of print resolutions in DPI that are supported by the printer.
  [DuplexModes <String[]>]: The list of duplex modes that are supported by the printer. Valid values are described in the following table.
  [FeedDirections <String[]>]:
  [FeedOrientations <String[]>]: The list of feed orientations that are supported by the printer.
  [Finishings <String[]>]: Finishing processes the printer supports for a printed document.
  [InputBins <String[]>]: Supported input bins for the printer.
  [IsColorPrintingSupported <Boolean?>]: True if color printing is supported by the printer; false otherwise. Read-only.
  [IsPageRangeSupported <Boolean?>]: True if the printer supports printing by page ranges; false otherwise.
  [LeftMargins <Int32[]>]: A list of supported left margins(in microns) for the printer.
  [MediaColors <String[]>]: The media (i.e., paper) colors supported by the printer.
  [MediaSizes <String[]>]: The media sizes supported by the printer. Supports standard size names for ISO and ANSI media sizes. Valid values are in the following table.
  [MediaTypes <String[]>]: The media types supported by the printer.
  [MultipageLayouts <String[]>]: The presentation directions supported by the printer. Supported values are described in the following table.
  [Orientations <String[]>]: The print orientations supported by the printer. Valid values are described in the following table.
  [OutputBins <String[]>]: The printer's supported output bins (trays).
  [PagesPerSheet <Int32[]>]: Supported number of Input Pages to impose upon a single Impression.
  [Qualities <String[]>]: The print qualities supported by the printer.
  [RightMargins <Int32[]>]: A list of supported right margins(in microns) for the printer.
  [Scalings <String[]>]: Supported print scalings.
  [SupportedColorConfigurations <String[]>]:
  [SupportedCopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
  [SupportedDocumentMimeTypes <String[]>]:
  [SupportedDuplexConfigurations <String[]>]:
  [SupportedFinishings <String[]>]:
  [SupportedMediaColors <String[]>]:
  [SupportedMediaSizes <String[]>]:
  [SupportedMediaTypes <String[]>]:
  [SupportedOrientations <String[]>]:
  [SupportedOutputBins <String[]>]:
  [SupportedPagesPerSheet <IMicrosoftGraphIntegerRange>]: integerRange
  [SupportedPresentationDirections <String[]>]:
  [SupportedPrintQualities <String[]>]:
  [SupportsFitPdfToPage <Boolean?>]: True if the printer supports scaling PDF pages to match the print media size; false otherwise.
  [TopMargins <Int32[]>]: A list of supported top margins(in microns) for the printer.
 
DEFAULTS <IMicrosoftGraphPrinterDefaults>: printerDefaults
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ColorMode <String>]: printColorMode
  [ContentType <String>]: The default content (MIME) type to use when processing documents.
  [CopiesPerJob <Int32?>]: The default number of copies printed per job.
  [DocumentMimeType <String>]:
  [Dpi <Int32?>]: The default resolution in DPI to use when printing the job.
  [DuplexConfiguration <String>]: printDuplexConfiguration
  [DuplexMode <String>]: printDuplexMode
  [Finishings <String[]>]: The default set of finishings to apply to print jobs. Valid values are described in the following table.
  [FitPdfToPage <Boolean?>]: The default fitPdfToPage setting. True to fit each page of a PDF document to a physical sheet of media; false to let the printer decide how to lay out impressions.
  [InputBin <String>]: The default input bin that serves as the paper source.
  [MediaColor <String>]: The default media (such as paper) color to print the document on.
  [MediaSize <String>]: The default media size to use. Supports standard size names for ISO and ANSI media sizes. Valid values are listed in the printerCapabilities topic.
  [MediaType <String>]: The default media (such as paper) type to print the document on.
  [MultipageLayout <String>]: printMultipageLayout
  [Orientation <String>]: printOrientation
  [OutputBin <String>]: The default output bin to place completed prints into. See the printer's capabilities for a list of supported output bins.
  [PagesPerSheet <Int32?>]: The default number of document pages to print on each sheet.
  [PdfFitToPage <Boolean?>]:
  [PresentationDirection <String>]: printPresentationDirection
  [PrintColorConfiguration <String>]: printColorConfiguration
  [PrintQuality <String>]: printQuality
  [Quality <String>]: printQuality
  [Scaling <String>]: printScaling
 
INPUTOBJECT <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
 
LOCATION <IMicrosoftGraphPrinterLocation>: printerLocation
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AltitudeInMeters <Int32?>]: The altitude, in meters, that the printer is located at.
  [Building <String>]: The building that the printer is located in.
  [City <String>]: The city that the printer is located in.
  [CountryOrRegion <String>]: The country or region that the printer is located in.
  [Floor <String>]: The floor that the printer is located on. Only numerical values are supported right now.
  [FloorDescription <String>]: The description of the floor that the printer is located on.
  [FloorNumber <Int32?>]:
  [Latitude <Double?>]: The latitude that the printer is located at.
  [Longitude <Double?>]: The longitude that the printer is located at.
  [Organization <String[]>]: The organizational hierarchy that the printer belongs to. The elements should be in hierarchical order.
  [PostalCode <String>]: The postal code that the printer is located in.
  [RoomDescription <String>]: The description of the room that the printer is located in.
  [RoomName <String>]: The room that the printer is located in. Only numerical values are supported right now.
  [RoomNumber <Int32?>]:
  [Site <String>]: The site that the printer is located in.
  [StateOrProvince <String>]: The state or province that the printer is located in.
  [StreetAddress <String>]: The street address where the printer is located.
  [Subdivision <String[]>]: The subdivision that the printer is located in. The elements should be in hierarchical order.
  [Subunit <String[]>]:
 
SHARE <IMicrosoftGraphPrinterShare>: printerShare
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Capabilities <IMicrosoftGraphPrinterCapabilities>]: printerCapabilities
    [(Any) <Object>]: This indicates any property can be added to this object.
    [BottomMargins <Int32[]>]: A list of supported bottom margins(in microns) for the printer.
    [Collation <Boolean?>]: True if the printer supports collating when printing muliple copies of a multi-page document; false otherwise.
    [ColorModes <String[]>]: The color modes supported by the printer. Valid values are described in the following table.
    [ContentTypes <String[]>]: A list of supported content (MIME) types that the printer supports. It is not guaranteed that the Universal Print service supports printing all of these MIME types.
    [CopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
      [(Any) <Object>]: This indicates any property can be added to this object.
      [End <Int64?>]: The inclusive upper bound of the integer range.
      [Maximum <Int64?>]:
      [Minimum <Int64?>]:
      [Start <Int64?>]: The inclusive lower bound of the integer range.
    [Dpis <Int32[]>]: The list of print resolutions in DPI that are supported by the printer.
    [DuplexModes <String[]>]: The list of duplex modes that are supported by the printer. Valid values are described in the following table.
    [FeedDirections <String[]>]:
    [FeedOrientations <String[]>]: The list of feed orientations that are supported by the printer.
    [Finishings <String[]>]: Finishing processes the printer supports for a printed document.
    [InputBins <String[]>]: Supported input bins for the printer.
    [IsColorPrintingSupported <Boolean?>]: True if color printing is supported by the printer; false otherwise. Read-only.
    [IsPageRangeSupported <Boolean?>]: True if the printer supports printing by page ranges; false otherwise.
    [LeftMargins <Int32[]>]: A list of supported left margins(in microns) for the printer.
    [MediaColors <String[]>]: The media (i.e., paper) colors supported by the printer.
    [MediaSizes <String[]>]: The media sizes supported by the printer. Supports standard size names for ISO and ANSI media sizes. Valid values are in the following table.
    [MediaTypes <String[]>]: The media types supported by the printer.
    [MultipageLayouts <String[]>]: The presentation directions supported by the printer. Supported values are described in the following table.
    [Orientations <String[]>]: The print orientations supported by the printer. Valid values are described in the following table.
    [OutputBins <String[]>]: The printer's supported output bins (trays).
    [PagesPerSheet <Int32[]>]: Supported number of Input Pages to impose upon a single Impression.
    [Qualities <String[]>]: The print qualities supported by the printer.
    [RightMargins <Int32[]>]: A list of supported right margins(in microns) for the printer.
    [Scalings <String[]>]: Supported print scalings.
    [SupportedColorConfigurations <String[]>]:
    [SupportedCopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
    [SupportedDocumentMimeTypes <String[]>]:
    [SupportedDuplexConfigurations <String[]>]:
    [SupportedFinishings <String[]>]:
    [SupportedMediaColors <String[]>]:
    [SupportedMediaSizes <String[]>]:
    [SupportedMediaTypes <String[]>]:
    [SupportedOrientations <String[]>]:
    [SupportedOutputBins <String[]>]:
    [SupportedPagesPerSheet <IMicrosoftGraphIntegerRange>]: integerRange
    [SupportedPresentationDirections <String[]>]:
    [SupportedPrintQualities <String[]>]:
    [SupportsFitPdfToPage <Boolean?>]: True if the printer supports scaling PDF pages to match the print media size; false otherwise.
    [TopMargins <Int32[]>]: A list of supported top margins(in microns) for the printer.
  [Defaults <IMicrosoftGraphPrinterDefaults>]: printerDefaults
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ColorMode <String>]: printColorMode
    [ContentType <String>]: The default content (MIME) type to use when processing documents.
    [CopiesPerJob <Int32?>]: The default number of copies printed per job.
    [DocumentMimeType <String>]:
    [Dpi <Int32?>]: The default resolution in DPI to use when printing the job.
    [DuplexConfiguration <String>]: printDuplexConfiguration
    [DuplexMode <String>]: printDuplexMode
    [Finishings <String[]>]: The default set of finishings to apply to print jobs. Valid values are described in the following table.
    [FitPdfToPage <Boolean?>]: The default fitPdfToPage setting. True to fit each page of a PDF document to a physical sheet of media; false to let the printer decide how to lay out impressions.
    [InputBin <String>]: The default input bin that serves as the paper source.
    [MediaColor <String>]: The default media (such as paper) color to print the document on.
    [MediaSize <String>]: The default media size to use. Supports standard size names for ISO and ANSI media sizes. Valid values are listed in the printerCapabilities topic.
    [MediaType <String>]: The default media (such as paper) type to print the document on.
    [MultipageLayout <String>]: printMultipageLayout
    [Orientation <String>]: printOrientation
    [OutputBin <String>]: The default output bin to place completed prints into. See the printer's capabilities for a list of supported output bins.
    [PagesPerSheet <Int32?>]: The default number of document pages to print on each sheet.
    [PdfFitToPage <Boolean?>]:
    [PresentationDirection <String>]: printPresentationDirection
    [PrintColorConfiguration <String>]: printColorConfiguration
    [PrintQuality <String>]: printQuality
    [Quality <String>]: printQuality
    [Scaling <String>]: printScaling
  [DisplayName <String>]:
  [IsAcceptingJobs <Boolean?>]:
  [Location <IMicrosoftGraphPrinterLocation>]: printerLocation
    [(Any) <Object>]: This indicates any property can be added to this object.
    [AltitudeInMeters <Int32?>]: The altitude, in meters, that the printer is located at.
    [Building <String>]: The building that the printer is located in.
    [City <String>]: The city that the printer is located in.
    [CountryOrRegion <String>]: The country or region that the printer is located in.
    [Floor <String>]: The floor that the printer is located on. Only numerical values are supported right now.
    [FloorDescription <String>]: The description of the floor that the printer is located on.
    [FloorNumber <Int32?>]:
    [Latitude <Double?>]: The latitude that the printer is located at.
    [Longitude <Double?>]: The longitude that the printer is located at.
    [Organization <String[]>]: The organizational hierarchy that the printer belongs to. The elements should be in hierarchical order.
    [PostalCode <String>]: The postal code that the printer is located in.
    [RoomDescription <String>]: The description of the room that the printer is located in.
    [RoomName <String>]: The room that the printer is located in. Only numerical values are supported right now.
    [RoomNumber <Int32?>]:
    [Site <String>]: The site that the printer is located in.
    [StateOrProvince <String>]: The state or province that the printer is located in.
    [StreetAddress <String>]: The street address where the printer is located.
    [Subdivision <String[]>]: The subdivision that the printer is located in. The elements should be in hierarchical order.
    [Subunit <String[]>]:
  [Manufacturer <String>]:
  [Model <String>]:
  [Name <String>]:
  [Status <IMicrosoftGraphPrinterStatus>]: printerStatus
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Description <String>]: A human-readable description of the printer's current processing state. Read-only.
    [Details <String[]>]: The list of details describing why the printer is in the current state. Valid values are described in the following table. Read-only.
    [ProcessingState <String>]: printerProcessingState
    [ProcessingStateDescription <String>]:
    [ProcessingStateReasons <String[]>]:
    [State <String>]: printerProcessingState
  [Id <String>]: The unique identifier for an entity. Read-only.
  [AllowAllUsers <Boolean?>]: If true, all users and groups will be granted access to this printer share. This supersedes the allow lists defined by the allowedUsers and allowedGroups navigation properties.
  [CreatedDateTime <DateTime?>]: The DateTimeOffset when the printer share was created. Read-only.
  [Printer <IMicrosoftGraphPrinter>]: printer
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Capabilities <IMicrosoftGraphPrinterCapabilities>]: printerCapabilities
    [Defaults <IMicrosoftGraphPrinterDefaults>]: printerDefaults
    [DisplayName <String>]:
    [IsAcceptingJobs <Boolean?>]:
    [Location <IMicrosoftGraphPrinterLocation>]: printerLocation
    [Manufacturer <String>]:
    [Model <String>]:
    [Name <String>]:
    [Status <IMicrosoftGraphPrinterStatus>]: printerStatus
    [Id <String>]: The unique identifier for an entity. Read-only.
    [AcceptingJobs <Boolean?>]:
    [HasPhysicalDevice <Boolean?>]: True if the printer has a physical device for printing. Read-only.
    [IsShared <Boolean?>]: True if the printer is shared; false otherwise. Read-only.
    [LastSeenDateTime <DateTime?>]: The most recent dateTimeOffset when a printer interacted with Universal Print. Read-only.
    [RegisteredDateTime <DateTime?>]: The DateTimeOffset when the printer was registered. Read-only.
    [Share <IMicrosoftGraphPrinterShare>]: printerShare
  [ViewPoint <IMicrosoftGraphPrinterShareViewpoint>]: printerShareViewpoint
    [(Any) <Object>]: This indicates any property can be added to this object.
    [LastUsedDateTime <DateTime?>]: Date and time when the printer was last used by the signed-in user. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
 
STATUS <IMicrosoftGraphPrinterStatus>: printerStatus
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Description <String>]: A human-readable description of the printer's current processing state. Read-only.
  [Details <String[]>]: The list of details describing why the printer is in the current state. Valid values are described in the following table. Read-only.
  [ProcessingState <String>]: printerProcessingState
  [ProcessingStateDescription <String>]:
  [ProcessingStateReasons <String[]>]:
  [State <String>]: printerProcessingState
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/update-mgbetaprintprinter
#>

function Update-MgBetaPrintPrinter {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinter])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printer
    ${PrinterId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity]
    # 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.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinter]
    # printer
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${AcceptingJobs},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterCapabilities]
    # printerCapabilities
    # To construct, see NOTES section for CAPABILITIES properties and create a hash table.
    ${Capabilities},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterDefaults]
    # printerDefaults
    # To construct, see NOTES section for DEFAULTS properties and create a hash table.
    ${Defaults},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${DisplayName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # True if the printer has a physical device for printing.
    # Read-only.
    ${HasPhysicalDevice},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${IsAcceptingJobs},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # True if the printer is shared; false otherwise.
    # Read-only.
    ${IsShared},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.DateTime]
    # The most recent dateTimeOffset when a printer interacted with Universal Print.
    # Read-only.
    ${LastSeenDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterLocation]
    # printerLocation
    # To construct, see NOTES section for LOCATION properties and create a hash table.
    ${Location},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${Manufacturer},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${Model},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${Name},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.DateTime]
    # The DateTimeOffset when the printer was registered.
    # Read-only.
    ${RegisteredDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShare]
    # printerShare
    # To construct, see NOTES section for SHARE properties and create a hash table.
    ${Share},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterStatus]
    # printerStatus
    # To construct, see NOTES section for STATUS properties and create a hash table.
    ${Status},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Update-MgBetaPrintPrinter_Update';
            UpdateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintPrinter_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintPrinter_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintPrinter_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 endpoints in print
.Description
Update the navigation property endpoints in print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintServiceEndpoint
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintServiceEndpoint
.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 <IMicrosoftGraphPrintServiceEndpoint>: printServiceEndpoint
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique identifier for an entity. Read-only.
  [DisplayName <String>]: A human-readable display name for the endpoint.
  [Uri <String>]: The URI that can be used to access the service.
 
INPUTOBJECT <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/update-mgbetaprintserviceendpoint
#>

function Update-MgBetaPrintServiceEndpoint {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintServiceEndpoint])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printServiceEndpoint
    ${PrintServiceEndpointId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printService
    ${PrintServiceId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity]
    # 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.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintServiceEndpoint]
    # printServiceEndpoint
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # A human-readable display name for the endpoint.
    ${DisplayName},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # The URI that can be used to access the service.
    ${Uri},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Update-MgBetaPrintServiceEndpoint_Update';
            UpdateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintServiceEndpoint_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintServiceEndpoint_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintServiceEndpoint_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 services in print
.Description
Update the navigation property services in print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintService
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintService
.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 <IMicrosoftGraphPrintService>: printService
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique identifier for an entity. Read-only.
 
INPUTOBJECT <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/update-mgbetaprintservice
#>

function Update-MgBetaPrintService {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintService])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printService
    ${PrintServiceId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity]
    # 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.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintService]
    # printService
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Update-MgBetaPrintService_Update';
            UpdateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintService_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintService_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintService_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 shares in print
.Description
Update the navigation property shares in print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShare
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShare
.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 <IMicrosoftGraphPrinterShare>: printerShare
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Capabilities <IMicrosoftGraphPrinterCapabilities>]: printerCapabilities
    [(Any) <Object>]: This indicates any property can be added to this object.
    [BottomMargins <Int32[]>]: A list of supported bottom margins(in microns) for the printer.
    [Collation <Boolean?>]: True if the printer supports collating when printing muliple copies of a multi-page document; false otherwise.
    [ColorModes <String[]>]: The color modes supported by the printer. Valid values are described in the following table.
    [ContentTypes <String[]>]: A list of supported content (MIME) types that the printer supports. It is not guaranteed that the Universal Print service supports printing all of these MIME types.
    [CopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
      [(Any) <Object>]: This indicates any property can be added to this object.
      [End <Int64?>]: The inclusive upper bound of the integer range.
      [Maximum <Int64?>]:
      [Minimum <Int64?>]:
      [Start <Int64?>]: The inclusive lower bound of the integer range.
    [Dpis <Int32[]>]: The list of print resolutions in DPI that are supported by the printer.
    [DuplexModes <String[]>]: The list of duplex modes that are supported by the printer. Valid values are described in the following table.
    [FeedDirections <String[]>]:
    [FeedOrientations <String[]>]: The list of feed orientations that are supported by the printer.
    [Finishings <String[]>]: Finishing processes the printer supports for a printed document.
    [InputBins <String[]>]: Supported input bins for the printer.
    [IsColorPrintingSupported <Boolean?>]: True if color printing is supported by the printer; false otherwise. Read-only.
    [IsPageRangeSupported <Boolean?>]: True if the printer supports printing by page ranges; false otherwise.
    [LeftMargins <Int32[]>]: A list of supported left margins(in microns) for the printer.
    [MediaColors <String[]>]: The media (i.e., paper) colors supported by the printer.
    [MediaSizes <String[]>]: The media sizes supported by the printer. Supports standard size names for ISO and ANSI media sizes. Valid values are in the following table.
    [MediaTypes <String[]>]: The media types supported by the printer.
    [MultipageLayouts <String[]>]: The presentation directions supported by the printer. Supported values are described in the following table.
    [Orientations <String[]>]: The print orientations supported by the printer. Valid values are described in the following table.
    [OutputBins <String[]>]: The printer's supported output bins (trays).
    [PagesPerSheet <Int32[]>]: Supported number of Input Pages to impose upon a single Impression.
    [Qualities <String[]>]: The print qualities supported by the printer.
    [RightMargins <Int32[]>]: A list of supported right margins(in microns) for the printer.
    [Scalings <String[]>]: Supported print scalings.
    [SupportedColorConfigurations <String[]>]:
    [SupportedCopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
    [SupportedDocumentMimeTypes <String[]>]:
    [SupportedDuplexConfigurations <String[]>]:
    [SupportedFinishings <String[]>]:
    [SupportedMediaColors <String[]>]:
    [SupportedMediaSizes <String[]>]:
    [SupportedMediaTypes <String[]>]:
    [SupportedOrientations <String[]>]:
    [SupportedOutputBins <String[]>]:
    [SupportedPagesPerSheet <IMicrosoftGraphIntegerRange>]: integerRange
    [SupportedPresentationDirections <String[]>]:
    [SupportedPrintQualities <String[]>]:
    [SupportsFitPdfToPage <Boolean?>]: True if the printer supports scaling PDF pages to match the print media size; false otherwise.
    [TopMargins <Int32[]>]: A list of supported top margins(in microns) for the printer.
  [Defaults <IMicrosoftGraphPrinterDefaults>]: printerDefaults
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ColorMode <String>]: printColorMode
    [ContentType <String>]: The default content (MIME) type to use when processing documents.
    [CopiesPerJob <Int32?>]: The default number of copies printed per job.
    [DocumentMimeType <String>]:
    [Dpi <Int32?>]: The default resolution in DPI to use when printing the job.
    [DuplexConfiguration <String>]: printDuplexConfiguration
    [DuplexMode <String>]: printDuplexMode
    [Finishings <String[]>]: The default set of finishings to apply to print jobs. Valid values are described in the following table.
    [FitPdfToPage <Boolean?>]: The default fitPdfToPage setting. True to fit each page of a PDF document to a physical sheet of media; false to let the printer decide how to lay out impressions.
    [InputBin <String>]: The default input bin that serves as the paper source.
    [MediaColor <String>]: The default media (such as paper) color to print the document on.
    [MediaSize <String>]: The default media size to use. Supports standard size names for ISO and ANSI media sizes. Valid values are listed in the printerCapabilities topic.
    [MediaType <String>]: The default media (such as paper) type to print the document on.
    [MultipageLayout <String>]: printMultipageLayout
    [Orientation <String>]: printOrientation
    [OutputBin <String>]: The default output bin to place completed prints into. See the printer's capabilities for a list of supported output bins.
    [PagesPerSheet <Int32?>]: The default number of document pages to print on each sheet.
    [PdfFitToPage <Boolean?>]:
    [PresentationDirection <String>]: printPresentationDirection
    [PrintColorConfiguration <String>]: printColorConfiguration
    [PrintQuality <String>]: printQuality
    [Quality <String>]: printQuality
    [Scaling <String>]: printScaling
  [DisplayName <String>]:
  [IsAcceptingJobs <Boolean?>]:
  [Location <IMicrosoftGraphPrinterLocation>]: printerLocation
    [(Any) <Object>]: This indicates any property can be added to this object.
    [AltitudeInMeters <Int32?>]: The altitude, in meters, that the printer is located at.
    [Building <String>]: The building that the printer is located in.
    [City <String>]: The city that the printer is located in.
    [CountryOrRegion <String>]: The country or region that the printer is located in.
    [Floor <String>]: The floor that the printer is located on. Only numerical values are supported right now.
    [FloorDescription <String>]: The description of the floor that the printer is located on.
    [FloorNumber <Int32?>]:
    [Latitude <Double?>]: The latitude that the printer is located at.
    [Longitude <Double?>]: The longitude that the printer is located at.
    [Organization <String[]>]: The organizational hierarchy that the printer belongs to. The elements should be in hierarchical order.
    [PostalCode <String>]: The postal code that the printer is located in.
    [RoomDescription <String>]: The description of the room that the printer is located in.
    [RoomName <String>]: The room that the printer is located in. Only numerical values are supported right now.
    [RoomNumber <Int32?>]:
    [Site <String>]: The site that the printer is located in.
    [StateOrProvince <String>]: The state or province that the printer is located in.
    [StreetAddress <String>]: The street address where the printer is located.
    [Subdivision <String[]>]: The subdivision that the printer is located in. The elements should be in hierarchical order.
    [Subunit <String[]>]:
  [Manufacturer <String>]:
  [Model <String>]:
  [Name <String>]:
  [Status <IMicrosoftGraphPrinterStatus>]: printerStatus
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Description <String>]: A human-readable description of the printer's current processing state. Read-only.
    [Details <String[]>]: The list of details describing why the printer is in the current state. Valid values are described in the following table. Read-only.
    [ProcessingState <String>]: printerProcessingState
    [ProcessingStateDescription <String>]:
    [ProcessingStateReasons <String[]>]:
    [State <String>]: printerProcessingState
  [Id <String>]: The unique identifier for an entity. Read-only.
  [AllowAllUsers <Boolean?>]: If true, all users and groups will be granted access to this printer share. This supersedes the allow lists defined by the allowedUsers and allowedGroups navigation properties.
  [CreatedDateTime <DateTime?>]: The DateTimeOffset when the printer share was created. Read-only.
  [Printer <IMicrosoftGraphPrinter>]: printer
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Capabilities <IMicrosoftGraphPrinterCapabilities>]: printerCapabilities
    [Defaults <IMicrosoftGraphPrinterDefaults>]: printerDefaults
    [DisplayName <String>]:
    [IsAcceptingJobs <Boolean?>]:
    [Location <IMicrosoftGraphPrinterLocation>]: printerLocation
    [Manufacturer <String>]:
    [Model <String>]:
    [Name <String>]:
    [Status <IMicrosoftGraphPrinterStatus>]: printerStatus
    [Id <String>]: The unique identifier for an entity. Read-only.
    [AcceptingJobs <Boolean?>]:
    [HasPhysicalDevice <Boolean?>]: True if the printer has a physical device for printing. Read-only.
    [IsShared <Boolean?>]: True if the printer is shared; false otherwise. Read-only.
    [LastSeenDateTime <DateTime?>]: The most recent dateTimeOffset when a printer interacted with Universal Print. Read-only.
    [RegisteredDateTime <DateTime?>]: The DateTimeOffset when the printer was registered. Read-only.
    [Share <IMicrosoftGraphPrinterShare>]: printerShare
  [ViewPoint <IMicrosoftGraphPrinterShareViewpoint>]: printerShareViewpoint
    [(Any) <Object>]: This indicates any property can be added to this object.
    [LastUsedDateTime <DateTime?>]: Date and time when the printer was last used by the signed-in user. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
 
CAPABILITIES <IMicrosoftGraphPrinterCapabilities>: printerCapabilities
  [(Any) <Object>]: This indicates any property can be added to this object.
  [BottomMargins <Int32[]>]: A list of supported bottom margins(in microns) for the printer.
  [Collation <Boolean?>]: True if the printer supports collating when printing muliple copies of a multi-page document; false otherwise.
  [ColorModes <String[]>]: The color modes supported by the printer. Valid values are described in the following table.
  [ContentTypes <String[]>]: A list of supported content (MIME) types that the printer supports. It is not guaranteed that the Universal Print service supports printing all of these MIME types.
  [CopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
    [(Any) <Object>]: This indicates any property can be added to this object.
    [End <Int64?>]: The inclusive upper bound of the integer range.
    [Maximum <Int64?>]:
    [Minimum <Int64?>]:
    [Start <Int64?>]: The inclusive lower bound of the integer range.
  [Dpis <Int32[]>]: The list of print resolutions in DPI that are supported by the printer.
  [DuplexModes <String[]>]: The list of duplex modes that are supported by the printer. Valid values are described in the following table.
  [FeedDirections <String[]>]:
  [FeedOrientations <String[]>]: The list of feed orientations that are supported by the printer.
  [Finishings <String[]>]: Finishing processes the printer supports for a printed document.
  [InputBins <String[]>]: Supported input bins for the printer.
  [IsColorPrintingSupported <Boolean?>]: True if color printing is supported by the printer; false otherwise. Read-only.
  [IsPageRangeSupported <Boolean?>]: True if the printer supports printing by page ranges; false otherwise.
  [LeftMargins <Int32[]>]: A list of supported left margins(in microns) for the printer.
  [MediaColors <String[]>]: The media (i.e., paper) colors supported by the printer.
  [MediaSizes <String[]>]: The media sizes supported by the printer. Supports standard size names for ISO and ANSI media sizes. Valid values are in the following table.
  [MediaTypes <String[]>]: The media types supported by the printer.
  [MultipageLayouts <String[]>]: The presentation directions supported by the printer. Supported values are described in the following table.
  [Orientations <String[]>]: The print orientations supported by the printer. Valid values are described in the following table.
  [OutputBins <String[]>]: The printer's supported output bins (trays).
  [PagesPerSheet <Int32[]>]: Supported number of Input Pages to impose upon a single Impression.
  [Qualities <String[]>]: The print qualities supported by the printer.
  [RightMargins <Int32[]>]: A list of supported right margins(in microns) for the printer.
  [Scalings <String[]>]: Supported print scalings.
  [SupportedColorConfigurations <String[]>]:
  [SupportedCopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
  [SupportedDocumentMimeTypes <String[]>]:
  [SupportedDuplexConfigurations <String[]>]:
  [SupportedFinishings <String[]>]:
  [SupportedMediaColors <String[]>]:
  [SupportedMediaSizes <String[]>]:
  [SupportedMediaTypes <String[]>]:
  [SupportedOrientations <String[]>]:
  [SupportedOutputBins <String[]>]:
  [SupportedPagesPerSheet <IMicrosoftGraphIntegerRange>]: integerRange
  [SupportedPresentationDirections <String[]>]:
  [SupportedPrintQualities <String[]>]:
  [SupportsFitPdfToPage <Boolean?>]: True if the printer supports scaling PDF pages to match the print media size; false otherwise.
  [TopMargins <Int32[]>]: A list of supported top margins(in microns) for the printer.
 
DEFAULTS <IMicrosoftGraphPrinterDefaults>: printerDefaults
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ColorMode <String>]: printColorMode
  [ContentType <String>]: The default content (MIME) type to use when processing documents.
  [CopiesPerJob <Int32?>]: The default number of copies printed per job.
  [DocumentMimeType <String>]:
  [Dpi <Int32?>]: The default resolution in DPI to use when printing the job.
  [DuplexConfiguration <String>]: printDuplexConfiguration
  [DuplexMode <String>]: printDuplexMode
  [Finishings <String[]>]: The default set of finishings to apply to print jobs. Valid values are described in the following table.
  [FitPdfToPage <Boolean?>]: The default fitPdfToPage setting. True to fit each page of a PDF document to a physical sheet of media; false to let the printer decide how to lay out impressions.
  [InputBin <String>]: The default input bin that serves as the paper source.
  [MediaColor <String>]: The default media (such as paper) color to print the document on.
  [MediaSize <String>]: The default media size to use. Supports standard size names for ISO and ANSI media sizes. Valid values are listed in the printerCapabilities topic.
  [MediaType <String>]: The default media (such as paper) type to print the document on.
  [MultipageLayout <String>]: printMultipageLayout
  [Orientation <String>]: printOrientation
  [OutputBin <String>]: The default output bin to place completed prints into. See the printer's capabilities for a list of supported output bins.
  [PagesPerSheet <Int32?>]: The default number of document pages to print on each sheet.
  [PdfFitToPage <Boolean?>]:
  [PresentationDirection <String>]: printPresentationDirection
  [PrintColorConfiguration <String>]: printColorConfiguration
  [PrintQuality <String>]: printQuality
  [Quality <String>]: printQuality
  [Scaling <String>]: printScaling
 
INPUTOBJECT <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
 
LOCATION <IMicrosoftGraphPrinterLocation>: printerLocation
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AltitudeInMeters <Int32?>]: The altitude, in meters, that the printer is located at.
  [Building <String>]: The building that the printer is located in.
  [City <String>]: The city that the printer is located in.
  [CountryOrRegion <String>]: The country or region that the printer is located in.
  [Floor <String>]: The floor that the printer is located on. Only numerical values are supported right now.
  [FloorDescription <String>]: The description of the floor that the printer is located on.
  [FloorNumber <Int32?>]:
  [Latitude <Double?>]: The latitude that the printer is located at.
  [Longitude <Double?>]: The longitude that the printer is located at.
  [Organization <String[]>]: The organizational hierarchy that the printer belongs to. The elements should be in hierarchical order.
  [PostalCode <String>]: The postal code that the printer is located in.
  [RoomDescription <String>]: The description of the room that the printer is located in.
  [RoomName <String>]: The room that the printer is located in. Only numerical values are supported right now.
  [RoomNumber <Int32?>]:
  [Site <String>]: The site that the printer is located in.
  [StateOrProvince <String>]: The state or province that the printer is located in.
  [StreetAddress <String>]: The street address where the printer is located.
  [Subdivision <String[]>]: The subdivision that the printer is located in. The elements should be in hierarchical order.
  [Subunit <String[]>]:
 
PRINTER <IMicrosoftGraphPrinter>: printer
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Capabilities <IMicrosoftGraphPrinterCapabilities>]: printerCapabilities
    [(Any) <Object>]: This indicates any property can be added to this object.
    [BottomMargins <Int32[]>]: A list of supported bottom margins(in microns) for the printer.
    [Collation <Boolean?>]: True if the printer supports collating when printing muliple copies of a multi-page document; false otherwise.
    [ColorModes <String[]>]: The color modes supported by the printer. Valid values are described in the following table.
    [ContentTypes <String[]>]: A list of supported content (MIME) types that the printer supports. It is not guaranteed that the Universal Print service supports printing all of these MIME types.
    [CopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
      [(Any) <Object>]: This indicates any property can be added to this object.
      [End <Int64?>]: The inclusive upper bound of the integer range.
      [Maximum <Int64?>]:
      [Minimum <Int64?>]:
      [Start <Int64?>]: The inclusive lower bound of the integer range.
    [Dpis <Int32[]>]: The list of print resolutions in DPI that are supported by the printer.
    [DuplexModes <String[]>]: The list of duplex modes that are supported by the printer. Valid values are described in the following table.
    [FeedDirections <String[]>]:
    [FeedOrientations <String[]>]: The list of feed orientations that are supported by the printer.
    [Finishings <String[]>]: Finishing processes the printer supports for a printed document.
    [InputBins <String[]>]: Supported input bins for the printer.
    [IsColorPrintingSupported <Boolean?>]: True if color printing is supported by the printer; false otherwise. Read-only.
    [IsPageRangeSupported <Boolean?>]: True if the printer supports printing by page ranges; false otherwise.
    [LeftMargins <Int32[]>]: A list of supported left margins(in microns) for the printer.
    [MediaColors <String[]>]: The media (i.e., paper) colors supported by the printer.
    [MediaSizes <String[]>]: The media sizes supported by the printer. Supports standard size names for ISO and ANSI media sizes. Valid values are in the following table.
    [MediaTypes <String[]>]: The media types supported by the printer.
    [MultipageLayouts <String[]>]: The presentation directions supported by the printer. Supported values are described in the following table.
    [Orientations <String[]>]: The print orientations supported by the printer. Valid values are described in the following table.
    [OutputBins <String[]>]: The printer's supported output bins (trays).
    [PagesPerSheet <Int32[]>]: Supported number of Input Pages to impose upon a single Impression.
    [Qualities <String[]>]: The print qualities supported by the printer.
    [RightMargins <Int32[]>]: A list of supported right margins(in microns) for the printer.
    [Scalings <String[]>]: Supported print scalings.
    [SupportedColorConfigurations <String[]>]:
    [SupportedCopiesPerJob <IMicrosoftGraphIntegerRange>]: integerRange
    [SupportedDocumentMimeTypes <String[]>]:
    [SupportedDuplexConfigurations <String[]>]:
    [SupportedFinishings <String[]>]:
    [SupportedMediaColors <String[]>]:
    [SupportedMediaSizes <String[]>]:
    [SupportedMediaTypes <String[]>]:
    [SupportedOrientations <String[]>]:
    [SupportedOutputBins <String[]>]:
    [SupportedPagesPerSheet <IMicrosoftGraphIntegerRange>]: integerRange
    [SupportedPresentationDirections <String[]>]:
    [SupportedPrintQualities <String[]>]:
    [SupportsFitPdfToPage <Boolean?>]: True if the printer supports scaling PDF pages to match the print media size; false otherwise.
    [TopMargins <Int32[]>]: A list of supported top margins(in microns) for the printer.
  [Defaults <IMicrosoftGraphPrinterDefaults>]: printerDefaults
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ColorMode <String>]: printColorMode
    [ContentType <String>]: The default content (MIME) type to use when processing documents.
    [CopiesPerJob <Int32?>]: The default number of copies printed per job.
    [DocumentMimeType <String>]:
    [Dpi <Int32?>]: The default resolution in DPI to use when printing the job.
    [DuplexConfiguration <String>]: printDuplexConfiguration
    [DuplexMode <String>]: printDuplexMode
    [Finishings <String[]>]: The default set of finishings to apply to print jobs. Valid values are described in the following table.
    [FitPdfToPage <Boolean?>]: The default fitPdfToPage setting. True to fit each page of a PDF document to a physical sheet of media; false to let the printer decide how to lay out impressions.
    [InputBin <String>]: The default input bin that serves as the paper source.
    [MediaColor <String>]: The default media (such as paper) color to print the document on.
    [MediaSize <String>]: The default media size to use. Supports standard size names for ISO and ANSI media sizes. Valid values are listed in the printerCapabilities topic.
    [MediaType <String>]: The default media (such as paper) type to print the document on.
    [MultipageLayout <String>]: printMultipageLayout
    [Orientation <String>]: printOrientation
    [OutputBin <String>]: The default output bin to place completed prints into. See the printer's capabilities for a list of supported output bins.
    [PagesPerSheet <Int32?>]: The default number of document pages to print on each sheet.
    [PdfFitToPage <Boolean?>]:
    [PresentationDirection <String>]: printPresentationDirection
    [PrintColorConfiguration <String>]: printColorConfiguration
    [PrintQuality <String>]: printQuality
    [Quality <String>]: printQuality
    [Scaling <String>]: printScaling
  [DisplayName <String>]:
  [IsAcceptingJobs <Boolean?>]:
  [Location <IMicrosoftGraphPrinterLocation>]: printerLocation
    [(Any) <Object>]: This indicates any property can be added to this object.
    [AltitudeInMeters <Int32?>]: The altitude, in meters, that the printer is located at.
    [Building <String>]: The building that the printer is located in.
    [City <String>]: The city that the printer is located in.
    [CountryOrRegion <String>]: The country or region that the printer is located in.
    [Floor <String>]: The floor that the printer is located on. Only numerical values are supported right now.
    [FloorDescription <String>]: The description of the floor that the printer is located on.
    [FloorNumber <Int32?>]:
    [Latitude <Double?>]: The latitude that the printer is located at.
    [Longitude <Double?>]: The longitude that the printer is located at.
    [Organization <String[]>]: The organizational hierarchy that the printer belongs to. The elements should be in hierarchical order.
    [PostalCode <String>]: The postal code that the printer is located in.
    [RoomDescription <String>]: The description of the room that the printer is located in.
    [RoomName <String>]: The room that the printer is located in. Only numerical values are supported right now.
    [RoomNumber <Int32?>]:
    [Site <String>]: The site that the printer is located in.
    [StateOrProvince <String>]: The state or province that the printer is located in.
    [StreetAddress <String>]: The street address where the printer is located.
    [Subdivision <String[]>]: The subdivision that the printer is located in. The elements should be in hierarchical order.
    [Subunit <String[]>]:
  [Manufacturer <String>]:
  [Model <String>]:
  [Name <String>]:
  [Status <IMicrosoftGraphPrinterStatus>]: printerStatus
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Description <String>]: A human-readable description of the printer's current processing state. Read-only.
    [Details <String[]>]: The list of details describing why the printer is in the current state. Valid values are described in the following table. Read-only.
    [ProcessingState <String>]: printerProcessingState
    [ProcessingStateDescription <String>]:
    [ProcessingStateReasons <String[]>]:
    [State <String>]: printerProcessingState
  [Id <String>]: The unique identifier for an entity. Read-only.
  [AcceptingJobs <Boolean?>]:
  [HasPhysicalDevice <Boolean?>]: True if the printer has a physical device for printing. Read-only.
  [IsShared <Boolean?>]: True if the printer is shared; false otherwise. Read-only.
  [LastSeenDateTime <DateTime?>]: The most recent dateTimeOffset when a printer interacted with Universal Print. Read-only.
  [RegisteredDateTime <DateTime?>]: The DateTimeOffset when the printer was registered. Read-only.
  [Share <IMicrosoftGraphPrinterShare>]: printerShare
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Capabilities <IMicrosoftGraphPrinterCapabilities>]: printerCapabilities
    [Defaults <IMicrosoftGraphPrinterDefaults>]: printerDefaults
    [DisplayName <String>]:
    [IsAcceptingJobs <Boolean?>]:
    [Location <IMicrosoftGraphPrinterLocation>]: printerLocation
    [Manufacturer <String>]:
    [Model <String>]:
    [Name <String>]:
    [Status <IMicrosoftGraphPrinterStatus>]: printerStatus
    [Id <String>]: The unique identifier for an entity. Read-only.
    [AllowAllUsers <Boolean?>]: If true, all users and groups will be granted access to this printer share. This supersedes the allow lists defined by the allowedUsers and allowedGroups navigation properties.
    [CreatedDateTime <DateTime?>]: The DateTimeOffset when the printer share was created. Read-only.
    [Printer <IMicrosoftGraphPrinter>]: printer
    [ViewPoint <IMicrosoftGraphPrinterShareViewpoint>]: printerShareViewpoint
      [(Any) <Object>]: This indicates any property can be added to this object.
      [LastUsedDateTime <DateTime?>]: Date and time when the printer was last used by the signed-in user. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
 
STATUS <IMicrosoftGraphPrinterStatus>: printerStatus
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Description <String>]: A human-readable description of the printer's current processing state. Read-only.
  [Details <String[]>]: The list of details describing why the printer is in the current state. Valid values are described in the following table. Read-only.
  [ProcessingState <String>]: printerProcessingState
  [ProcessingStateDescription <String>]:
  [ProcessingStateReasons <String[]>]:
  [State <String>]: printerProcessingState
 
VIEWPOINT <IMicrosoftGraphPrinterShareViewpoint>: printerShareViewpoint
  [(Any) <Object>]: This indicates any property can be added to this object.
  [LastUsedDateTime <DateTime?>]: Date and time when the printer was last used by the signed-in user. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/update-mgbetaprintshare
#>

function Update-MgBetaPrintShare {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShare])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printerShare
    ${PrinterShareId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity]
    # 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.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShare]
    # printerShare
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # If true, all users and groups will be granted access to this printer share.
    # This supersedes the allow lists defined by the allowedUsers and allowedGroups navigation properties.
    ${AllowAllUsers},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterCapabilities]
    # printerCapabilities
    # To construct, see NOTES section for CAPABILITIES properties and create a hash table.
    ${Capabilities},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.DateTime]
    # The DateTimeOffset when the printer share was created.
    # Read-only.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterDefaults]
    # printerDefaults
    # To construct, see NOTES section for DEFAULTS properties and create a hash table.
    ${Defaults},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${DisplayName},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${IsAcceptingJobs},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterLocation]
    # printerLocation
    # To construct, see NOTES section for LOCATION properties and create a hash table.
    ${Location},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${Manufacturer},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${Model},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${Name},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinter]
    # printer
    # To construct, see NOTES section for PRINTER properties and create a hash table.
    ${Printer},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterStatus]
    # printerStatus
    # To construct, see NOTES section for STATUS properties and create a hash table.
    ${Status},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrinterShareViewpoint]
    # printerShareViewpoint
    # To construct, see NOTES section for VIEWPOINT properties and create a hash table.
    ${ViewPoint},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Update-MgBetaPrintShare_Update';
            UpdateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintShare_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintShare_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintShare_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 tasks in print
.Description
Update the navigation property tasks in print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTask
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTask
.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 <IMicrosoftGraphPrintTask>: printTask
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique identifier for an entity. Read-only.
  [Definition <IMicrosoftGraphPrintTaskDefinition>]: printTaskDefinition
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique identifier for an entity. Read-only.
    [CreatedBy <IMicrosoftGraphAppIdentity>]: appIdentity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [AppId <String>]: Refers to the unique identifier representing Application Id in the Azure Active Directory.
      [DisplayName <String>]: Refers to the Application Name displayed in the Azure Portal.
      [ServicePrincipalId <String>]: Refers to the unique identifier indicating Service Principal Id in Azure Active Directory for the corresponding App.
      [ServicePrincipalName <String>]: Refers to the Service Principal Name is the Application name in the tenant.
    [DisplayName <String>]: The name of the printTaskDefinition.
  [ParentUrl <String>]: The URL for the print entity that triggered this task. For example, https://graph.microsoft.com/beta/print/printers/{printerId}/jobs/{jobId}. Read-only.
  [Status <IMicrosoftGraphPrintTaskStatus>]: printTaskStatus
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Description <String>]: A human-readable description of the current processing state of the printTask.
    [State <String>]: printTaskProcessingState
  [Trigger <IMicrosoftGraphPrintTaskTrigger>]: printTaskTrigger
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique identifier for an entity. Read-only.
    [Definition <IMicrosoftGraphPrintTaskDefinition>]: printTaskDefinition
    [Event <String>]: printEvent
 
DEFINITION <IMicrosoftGraphPrintTaskDefinition>: printTaskDefinition
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique identifier for an entity. Read-only.
  [CreatedBy <IMicrosoftGraphAppIdentity>]: appIdentity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [AppId <String>]: Refers to the unique identifier representing Application Id in the Azure Active Directory.
    [DisplayName <String>]: Refers to the Application Name displayed in the Azure Portal.
    [ServicePrincipalId <String>]: Refers to the unique identifier indicating Service Principal Id in Azure Active Directory for the corresponding App.
    [ServicePrincipalName <String>]: Refers to the Service Principal Name is the Application name in the tenant.
  [DisplayName <String>]: The name of the printTaskDefinition.
 
INPUTOBJECT <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
 
STATUS <IMicrosoftGraphPrintTaskStatus>: printTaskStatus
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Description <String>]: A human-readable description of the current processing state of the printTask.
  [State <String>]: printTaskProcessingState
 
TRIGGER <IMicrosoftGraphPrintTaskTrigger>: printTaskTrigger
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique identifier for an entity. Read-only.
  [Definition <IMicrosoftGraphPrintTaskDefinition>]: printTaskDefinition
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique identifier for an entity. Read-only.
    [CreatedBy <IMicrosoftGraphAppIdentity>]: appIdentity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [AppId <String>]: Refers to the unique identifier representing Application Id in the Azure Active Directory.
      [DisplayName <String>]: Refers to the Application Name displayed in the Azure Portal.
      [ServicePrincipalId <String>]: Refers to the unique identifier indicating Service Principal Id in Azure Active Directory for the corresponding App.
      [ServicePrincipalName <String>]: Refers to the Service Principal Name is the Application name in the tenant.
    [DisplayName <String>]: The name of the printTaskDefinition.
  [Event <String>]: printEvent
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/update-mgbetaprinttaskdefinitiontask
#>

function Update-MgBetaPrintTaskDefinitionTask {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTask])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printTaskDefinition
    ${PrintTaskDefinitionId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printTask
    ${PrintTaskId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity]
    # 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.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTask]
    # printTask
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskDefinition]
    # printTaskDefinition
    # To construct, see NOTES section for DEFINITION properties and create a hash table.
    ${Definition},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # The URL for the print entity that triggered this task.
    # For example, https://graph.microsoft.com/beta/print/printers/{printerId}/jobs/{jobId}.
    # Read-only.
    ${ParentUrl},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskStatus]
    # printTaskStatus
    # To construct, see NOTES section for STATUS properties and create a hash table.
    ${Status},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskTrigger]
    # printTaskTrigger
    # To construct, see NOTES section for TRIGGER properties and create a hash table.
    ${Trigger},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Update-MgBetaPrintTaskDefinitionTask_Update';
            UpdateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintTaskDefinitionTask_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintTaskDefinitionTask_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintTaskDefinitionTask_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 taskDefinitions in print
.Description
Update the navigation property taskDefinitions in print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskDefinition
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskDefinition
.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 <IMicrosoftGraphPrintTaskDefinition>: printTaskDefinition
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique identifier for an entity. Read-only.
  [CreatedBy <IMicrosoftGraphAppIdentity>]: appIdentity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [AppId <String>]: Refers to the unique identifier representing Application Id in the Azure Active Directory.
    [DisplayName <String>]: Refers to the Application Name displayed in the Azure Portal.
    [ServicePrincipalId <String>]: Refers to the unique identifier indicating Service Principal Id in Azure Active Directory for the corresponding App.
    [ServicePrincipalName <String>]: Refers to the Service Principal Name is the Application name in the tenant.
  [DisplayName <String>]: The name of the printTaskDefinition.
 
CREATEDBY <IMicrosoftGraphAppIdentity>: appIdentity
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AppId <String>]: Refers to the unique identifier representing Application Id in the Azure Active Directory.
  [DisplayName <String>]: Refers to the Application Name displayed in the Azure Portal.
  [ServicePrincipalId <String>]: Refers to the unique identifier indicating Service Principal Id in Azure Active Directory for the corresponding App.
  [ServicePrincipalName <String>]: Refers to the Service Principal Name is the Application name in the tenant.
 
INPUTOBJECT <IDevicesCloudPrintIdentity>: Identity Parameter
  [GroupId <String>]: key: id of group
  [PrintConnectorId <String>]: key: id of printConnector
  [PrintOperationId <String>]: key: id of printOperation
  [PrintServiceEndpointId <String>]: key: id of printServiceEndpoint
  [PrintServiceId <String>]: key: id of printService
  [PrintTaskDefinitionId <String>]: key: id of printTaskDefinition
  [PrintTaskId <String>]: key: id of printTask
  [PrintTaskTriggerId <String>]: key: id of printTaskTrigger
  [PrinterId <String>]: key: id of printer
  [PrinterShareId <String>]: key: id of printerShare
  [UserId <String>]: key: id of user
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/update-mgbetaprinttaskdefinition
#>

function Update-MgBetaPrintTaskDefinition {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskDefinition])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # key: id of printTaskDefinition
    ${PrintTaskDefinitionId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [Microsoft.Graph.Beta.PowerShell.Models.IDevicesCloudPrintIdentity]
    # 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.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintTaskDefinition]
    # printTaskDefinition
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphAppIdentity]
    # appIdentity
    # To construct, see NOTES section for CREATEDBY properties and create a hash table.
    ${CreatedBy},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # The name of the printTaskDefinition.
    ${DisplayName},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Update-MgBetaPrintTaskDefinition_Update';
            UpdateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintTaskDefinition_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintTaskDefinition_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrintTaskDefinition_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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 print
.Description
Update print
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrint
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrint
.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 <IMicrosoftGraphPrint>: print
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Reports <IMicrosoftGraphReportRoot>]: reportRoot
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique identifier for an entity. Read-only.
    [AuthenticationMethods <IMicrosoftGraphAuthenticationMethodsRoot>]: authenticationMethodsRoot
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Id <String>]: The unique identifier for an entity. Read-only.
    [Security <IMicrosoftGraphSecurityReportsRoot>]: securityReportsRoot
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Id <String>]: The unique identifier for an entity. Read-only.
  [Settings <IMicrosoftGraphPrintSettings>]: printSettings
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DocumentConversionEnabled <Boolean?>]: Specifies whether document conversion is enabled for the tenant. If document conversion is enabled, Universal Print service will automatically convert documents into a format compatible with the printer (xps to pdf) when needed.
 
REPORTS <IMicrosoftGraphReportRoot>: reportRoot
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique identifier for an entity. Read-only.
  [AuthenticationMethods <IMicrosoftGraphAuthenticationMethodsRoot>]: authenticationMethodsRoot
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique identifier for an entity. Read-only.
  [Security <IMicrosoftGraphSecurityReportsRoot>]: securityReportsRoot
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: The unique identifier for an entity. Read-only.
 
SETTINGS <IMicrosoftGraphPrintSettings>: printSettings
  [(Any) <Object>]: This indicates any property can be added to this object.
  [DocumentConversionEnabled <Boolean?>]: Specifies whether document conversion is enabled for the tenant. If document conversion is enabled, Universal Print service will automatically convert documents into a format compatible with the printer (xps to pdf) when needed.
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.beta.devices.cloudprint/update-mgbetaprint
#>

function Update-MgBetaPrint {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrint])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrint]
    # print
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphReportRoot]
    # reportRoot
    # To construct, see NOTES section for REPORTS properties and create a hash table.
    ${Reports},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphPrintSettings]
    # printSettings
    # To construct, see NOTES section for SETTINGS properties and create a hash table.
    ${Settings},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.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.Beta.Devices.CloudPrint.private\Update-MgBetaPrint_Update';
            UpdateExpanded = 'Microsoft.Graph.Beta.Devices.CloudPrint.private\Update-MgBetaPrint_UpdateExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.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
# MIInqgYJKoZIhvcNAQcCoIInmzCCJ5cCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCA1HYDLtuc5aAhI
# bol5fbrHfz/zw/uXrYH7za+gaOmGZKCCDYEwggX/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/BvW1taslScxMNelDNMYIZfzCCGXsCAQEwgZUwfjELMAkG
# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z
# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAsyOtZamvdHJTgAAAAACzDAN
# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor
# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgBVZ6SgEo
# aw+lMFNqD06wzzfYj6DC2t9r9fgMWrOxGREwQgYKKwYBBAGCNwIBDDE0MDKgFIAS
# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN
# BgkqhkiG9w0BAQEFAASCAQB9FkqMmBs1raHHUyUZb+Z551EK/UhZEwYvqZo2KuC+
# UK94z7mm90L5Pyj+Hg69tYTmVc9GGd2a9R9wVlpE4SxnHzXggQLSr5JHXsJ/uV4Y
# ND0+6XXOLigvH1i4w80J7TstSqlH4f4DH77j4AHkba4ahCJBclU23qi/tSYvP9nR
# /j76cybqMn45mc4y5IG+ZLYJzgSMRWigWZwB4xwvcxbamN8Acp5DQZdc7ow+OAis
# Ph4wHDhLnkJg2rPMt8DGOPL68d9XutvLfPQormZ0DW+qcjwiumlZpwKd25D6fP29
# aAc+wrVe2GVuxf8EM8LZCMqxNQKadGcV0RgfJoVro4kwoYIXCTCCFwUGCisGAQQB
# gjcDAwExghb1MIIW8QYJKoZIhvcNAQcCoIIW4jCCFt4CAQMxDzANBglghkgBZQME
# AgEFADCCAVUGCyqGSIb3DQEJEAEEoIIBRASCAUAwggE8AgEBBgorBgEEAYRZCgMB
# MDEwDQYJYIZIAWUDBAIBBQAEIJq+w7sfZqd2LYTobgEHjoc1gb7pMs4ie1gZcjd0
# MkCTAgZjc3zYF0UYEzIwMjIxMjIwMDExMjM0LjE3N1owBIACAfSggdSkgdEwgc4x
# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1p
# Y3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMg
# VFNTIEVTTjo0NjJGLUUzMTktM0YyMDElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt
# U3RhbXAgU2VydmljZaCCEVwwggcQMIIE+KADAgECAhMzAAABpAfP44+jum/WAAEA
# AAGkMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo
# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y
# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw
# MB4XDTIyMDMwMjE4NTExOFoXDTIzMDUxMTE4NTExOFowgc4xCzAJBgNVBAYTAlVT
# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVy
# YXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjo0NjJG
# LUUzMTktM0YyMDElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vydmlj
# ZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMBHjgD6FPy81PUhcOIV
# Gh4bOSaq634Y+TjW2hNF9BlnWxLJCEuMiV6YF5x6YTM7T1ZLM6NnH0whPypiz3bV
# ZRmwgGyTURKfVyPJ89R3WaZ/HMvcAJZnCMgL+mOpxE94gwQJD/qo8UquOrCKCY/f
# cjchxV8yMkfIqP69HnWfW0ratk+I2GZF2ISFyRtvEuxJvacIFDFkQXj3H+Xy9IHz
# Nqqi+g54iQjOAN6s3s68mi6rqv6+D9DPVPg1ev6worI3FlYzrPLCIunsbtYt3Xw3
# aHKMfA+SH8CV4iqJ/eEZUP1uFJT50MAPNQlIwWERa6cccSVB5mN2YgHf8zDUqQU4
# k2/DWw+14iLkwrgNlfdZ38V3xmxC9mZc9YnwFc32xi0czPzN15C8wiZEIqCddxbw
# imc+0LtPKandRXk2hMfwg0XpZaJxDfLTgvYjVU5PXTgB10mhWAA/YosgbB8KzvAx
# XPnrEnYg3XLWkgBZ+lOrHvqiszlFCGQC9rKPVFPCCsey356VhfcXlvwAJauAk7V0
# nLVTgwi/5ILyHffEuZYDnrx6a+snqDTHL/ZqRsB5HHq0XBo/i7BVuMXnSSXlFCo3
# On8IOl8JOKQ4CrIlri9qWJYMxsSICscotgODoYOO4lmXltKOB0l0IAhEXwSSKID5
# QAa9wTpIagea2hzjI6SUY1W/AgMBAAGjggE2MIIBMjAdBgNVHQ4EFgQU4tATn6z4
# CBL2xZQd0jjN6SnjJMIwHwYDVR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIw
# XwYDVR0fBFgwVjBUoFKgUIZOaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9w
# cy9jcmwvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3Js
# MGwGCCsGAQUFBwEBBGAwXjBcBggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3Nv
# ZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB
# JTIwMjAxMCgxKS5jcnQwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcD
# CDANBgkqhkiG9w0BAQsFAAOCAgEACVYcUNEMlyTuPDBGhiZ1U548ssF6J2g9QElW
# Eb2cZ4dL0+5G8721/giRtTPvgxQhDF5rJCjHGj8nFSqOE8fnYz9vgb2YclYHvkoK
# WUJODxjhWS+S06ZLR/nDS85HeDAD0FGduAA80Q7vGzknKW2jxoNHTb74KQEMWiUK
# 1M2PDN+eISPXPhPudGVGLbIEAk1Goj5VjzbQuLKhm2Tk4a22rkXkeE98gyNojHlB
# hHbb7nex3zGBTBGkVtwt2ud7qN2rcpuJhsJ/vL/0XYLtyOk7eSQZdfye0TT1/qj1
# 8iSXHsIXDhHOuTKqBiiatoo4Unwk7uGyM0lv38Ztr+YpajSP+p0PEMRH9RdfrKRm
# 4bHV5CmOTIzAmc49YZt40hhlVwlClFA4M+zn3cyLmEGwfNqD693hD5W3vcpnhf3x
# hZbVWTVpJH1CPGTmR4y5U9kxwysK8VlfCFRwYUa5640KsgIv1tJhF9LXemWIPEnu
# w9JnzHZ3iSw5dbTSXp9HmdOJIzsO+/tjQwZWBSFqnayaGv3Y8w1KYiQJS8cKJhwn
# hGgBPbyan+E5D9TyY9dKlZ3FikstwM4hKYGEUlg3tqaWEilWwa9SaNetNxjSfgah
# 782qzbjTQhwDgc6Jf07F2ak0YMnNJFHsBb1NPw77dhmo9ki8vrLOB++d6Gm2Z/jD
# pDOSst8wggdxMIIFWaADAgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3
# DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G
# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIw
# MAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAx
# MDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVT
# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1l
# LVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
# 5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/
# XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1
# hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7
# M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3K
# Ni1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy
# 1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF80
# 3RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQc
# NIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahha
# YQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkL
# iWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV
# 2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIG
# CSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUp
# zxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBT
# MFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jv
# c29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYI
# KwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGG
# MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186a
# GMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3Br
# aS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsG
# AQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29t
# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcN
# AQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1
# OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYA
# A7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbz
# aN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6L
# GYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3m
# Sj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0
# SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxko
# JLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFm
# PWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC482
# 2rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7
# vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYICzzCC
# AjgCAQEwgfyhgdSkgdEwgc4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y
# YXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNv
# MSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjo0NjJGLUUzMTktM0YyMDElMCMGA1UE
# AxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUA
# NBwo4pNrfEL6DVo+tw96vGJvLp+ggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEG
# A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj
# cm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFt
# cCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIFAOdLdhYwIhgPMjAyMjEyMjAwMzQ1
# MjZaGA8yMDIyMTIyMTAzNDUyNlowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA50t2
# FgIBADAHAgEAAgImczAHAgEAAgIQ9TAKAgUA50zHlgIBADA2BgorBgEEAYRZCgQC
# MSgwJjAMBgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqG
# SIb3DQEBBQUAA4GBACwFYl9zdZGtgA1rWQ6vx0X6bFziZXHDNyNxkHx4Kra5WH8e
# 3y4T5HfUbg+BCZk4/GNkwtKn6XXD2N3mlLZQLp6A1kX9XXL2g7jyTBdkGSO6rFow
# cL78TgRhq4FwY/agoWgPKV8Lu+JDe/5sgHOf+bmdubSgBWz4v1gvP3/fo6EyMYIE
# DTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x
# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv
# bjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAGk
# B8/jj6O6b9YAAQAAAaQwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzEN
# BgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQg+Qu9l3Vzhe4r4J+SHXdsCzJg
# crgRl5C6tJ4gnc0W/wIwgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHkMIG9BCAF/OCj
# ISZwpMBJ8MJ3WwMCF3qOa5YHFG6J4uHjaup5+DCBmDCBgKR+MHwxCzAJBgNVBAYT
# AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD
# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBU
# aW1lLVN0YW1wIFBDQSAyMDEwAhMzAAABpAfP44+jum/WAAEAAAGkMCIEIEGaZjDj
# A1XeIUjNSbmERFqSjXy3KeaFg4XTXccTjb3QMA0GCSqGSIb3DQEBCwUABIICAFtA
# jo1DesArBmxGcv4QSZ7rl/adZXONnZtraFOvC4s4qNj8D7wGR3d5uhocmeEG9uRi
# +CZgASI3q3ZcsB9OOYXOKGXNoGn7GdzqLVHEMoOb1/1BOqWvBRwMV31KZJuSHuGa
# jWc0/+fgUZx0uabpPq17WksOmtsaiPlbQgM9wq5hVsqKjyA7iY6KYKlbrjZJ5qb9
# aQipreZMtdXnP5f2XeYPoAxH9jcakNozgmj2eMCRGc191owDUuYjlrbcl5KdRbvX
# iBEr+JhtXDbCTm3pyRjCe2t+D3pnzC7K8fSd8l6FpAj/3Z16WCuVVH7NevKmspOa
# PZuXN86sg/RGRWGKXnDBH+z9qHksnntryvHmUMCamyA4m5NOpFaGZBjJivNscM+s
# xpvOpImXNq0y+NiLIjnL8GNiPGzgABwKR2PiYOFGCa3e549tcoewHwICIyh7ePOv
# V/r1T/kBm9x2mf+Xg5gb4tjisfxu/SIAd8ul5YqnN4R9LD1Blui3I8qIqDbqVeiF
# R+kDJlmOnjnp/kzMz9cro1z/VNCj8zi2C5NkcSqUIjxonE+3HuEr+cdFkl6WpYee
# zb2pzFaxXNnx4wNphD3rJEceqmiPq9URWzTytPSUvKzt/T3d276mm8jp5XFaSxQY
# F9wYijFoUxhOr/gVp3BK5zRGu5u1Grz+IGTXxkJi
# SIG # End signature block