exports/ProxyCmdletDefinitions.ps1


# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Invoke action apply
.Description
Invoke action apply
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/add-mgserviceprincipalsynchronizationjob
.Inputs
Microsoft.Graph.PowerShell.Models.IBodyParameterServicePrincipalsSynchronizationJobsApplyRequestBody
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.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 <IBodyParameterServicePrincipalsSynchronizationJobsApplyRequestBody>: HELP MESSAGE MISSING
  [ObjectId <String>]:
  [RuleId <String>]:
  [TypeName <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/add-mgserviceprincipalsynchronizationjob
#>

function Add-MgServicePrincipalSynchronizationJob {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='ApplyExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Apply', Mandatory)]
    [Parameter(ParameterSetName='ApplyExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Apply', Mandatory)]
    [Parameter(ParameterSetName='ApplyExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: synchronizationJob-id of synchronizationJob
    ${SynchronizationJobId},

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

    [Parameter(ParameterSetName='Apply', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='ApplyViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IBodyParameterServicePrincipalsSynchronizationJobsApplyRequestBody]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='ApplyExpanded')]
    [Parameter(ParameterSetName='ApplyViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${ObjectId},

    [Parameter(ParameterSetName='ApplyExpanded')]
    [Parameter(ParameterSetName='ApplyViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${RuleId},

    [Parameter(ParameterSetName='ApplyExpanded')]
    [Parameter(ParameterSetName='ApplyViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${TypeName},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Apply = 'Microsoft.Graph.Identity.ServicePrincipal.private\Add-MgServicePrincipalSynchronizationJob_Apply';
            ApplyExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Add-MgServicePrincipalSynchronizationJob_ApplyExpanded';
            ApplyViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Add-MgServicePrincipalSynchronizationJob_ApplyViaIdentity';
            ApplyViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Add-MgServicePrincipalSynchronizationJob_ApplyViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get appRoleAssignedTo from servicePrincipals
.Description
Get appRoleAssignedTo from servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalapproleassignedto
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalapproleassignedto
#>

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Management.Automation.SwitchParameter]
    # Include count of items
    ${Count},

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalAppRoleAssignedTo_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalAppRoleAssignedTo_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalAppRoleAssignedTo_List';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get appRoleAssignments from servicePrincipals
.Description
Get appRoleAssignments from servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalapproleassignment
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalapproleassignment
#>

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Management.Automation.SwitchParameter]
    # Include count of items
    ${Count},

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalAppRoleAssignment_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalAppRoleAssignment_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalAppRoleAssignment_List';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get createdObjects from servicePrincipals
.Description
Get createdObjects from servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalcreatedobject
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalcreatedobject
#>

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Management.Automation.SwitchParameter]
    # Include count of items
    ${Count},

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalCreatedObject_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalCreatedObject_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalCreatedObject_List';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Invoke function delta
.Description
Invoke function delta
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipaldelta
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePrincipal
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipaldelta
#>

function Get-MgServicePrincipalDelta {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePrincipal])]
[CmdletBinding(DefaultParameterSetName='Delta', PositionalBinding=$false)]
param(
    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Delta = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalDelta_Delta';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get licenseDetails from servicePrincipals
.Description
Get licenseDetails from servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipallicensedetail
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLicenseDetails
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipallicensedetail
#>

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Management.Automation.SwitchParameter]
    # Include count of items
    ${Count},

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalLicenseDetail_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalLicenseDetail_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalLicenseDetail_List';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get memberOf from servicePrincipals
.Description
Get memberOf from servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalmember
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalmember
#>

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Management.Automation.SwitchParameter]
    # Include count of items
    ${Count},

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMember_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMember_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMember_List';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get oauth2PermissionGrants from servicePrincipals
.Description
Get oauth2PermissionGrants from servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipaloauth2permissiongrant
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphOAuth2PermissionGrant
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipaloauth2permissiongrant
#>

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Management.Automation.SwitchParameter]
    # Include count of items
    ${Count},

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOauth2PermissionGrant_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOauth2PermissionGrant_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOauth2PermissionGrant_List';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get ownedObjects from servicePrincipals
.Description
Get ownedObjects from servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalownedobject
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalownedobject
#>

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Management.Automation.SwitchParameter]
    # Include count of items
    ${Count},

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOwnedObject_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOwnedObject_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOwnedObject_List';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get owners from servicePrincipals
.Description
Get owners from servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalowner
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalowner
#>

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Management.Automation.SwitchParameter]
    # Include count of items
    ${Count},

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOwner_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOwner_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOwner_List';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Invoke action getPasswordSingleSignOnCredentials
.Description
Invoke action getPasswordSingleSignOnCredentials
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalpasswordsinglesignoncredentials
.Inputs
Microsoft.Graph.PowerShell.Models.IBodyParameterServicePrincipalsGetPasswordSingleSignOnCredentialsRequestBody
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPasswordSingleSignOnCredentialSet
.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 <IBodyParameterServicePrincipalsGetPasswordSingleSignOnCredentialsRequestBody>: HELP MESSAGE MISSING
  [Id <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalpasswordsinglesignoncredentials
#>

function Get-MgServicePrincipalPasswordSingleSignOnCredentials {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPasswordSingleSignOnCredentialSet])]
[CmdletBinding(DefaultParameterSetName='GetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='GetExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

    [Parameter(ParameterSetName='Get', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IBodyParameterServicePrincipalsGetPasswordSingleSignOnCredentialsRequestBody]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='GetExpanded')]
    [Parameter(ParameterSetName='GetViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Id},

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalPasswordSingleSignOnCredentials_Get';
            GetExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalPasswordSingleSignOnCredentials_GetExpanded';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalPasswordSingleSignOnCredentials_GetViaIdentity';
            GetViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalPasswordSingleSignOnCredentials_GetViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get policies from servicePrincipals
.Description
Get policies from servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalpolicy
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalpolicy
#>

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Management.Automation.SwitchParameter]
    # Include count of items
    ${Count},

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalPolicy_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalPolicy_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalPolicy_List';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get directories from servicePrincipals
.Description
Get directories from servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalsynchronizationjobschemadirectory
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalsynchronizationjobschemadirectory
#>

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Management.Automation.SwitchParameter]
    # Include count of items
    ${Count},

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationJobSchemaDirectory_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationJobSchemaDirectory_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationJobSchemaDirectory_List';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get schema from servicePrincipals
.Description
Get schema from servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalsynchronizationjobschema
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationSchema
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalsynchronizationjobschema
#>

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationJobSchema_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationJobSchema_GetViaIdentity';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get jobs from servicePrincipals
.Description
Get jobs from servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalsynchronizationjob
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationJob
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalsynchronizationjob
#>

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Management.Automation.SwitchParameter]
    # Include count of items
    ${Count},

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationJob_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationJob_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationJob_List';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get directories from servicePrincipals
.Description
Get directories from servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalsynchronizationtemplateschemadirectory
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalsynchronizationtemplateschemadirectory
#>

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

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Management.Automation.SwitchParameter]
    # Include count of items
    ${Count},

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationTemplateSchemaDirectory_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationTemplateSchemaDirectory_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationTemplateSchemaDirectory_List';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get schema from servicePrincipals
.Description
Get schema from servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalsynchronizationtemplateschema
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationSchema
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalsynchronizationtemplateschema
#>

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationTemplateSchema_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationTemplateSchema_GetViaIdentity';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get templates from servicePrincipals
.Description
Get templates from servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalsynchronizationtemplate
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationTemplate
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalsynchronizationtemplate
#>

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Management.Automation.SwitchParameter]
    # Include count of items
    ${Count},

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationTemplate_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationTemplate_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationTemplate_List';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get synchronization from servicePrincipals
.Description
Get synchronization from servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalsynchronization
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronization
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalsynchronization
#>

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronization_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronization_GetViaIdentity';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get transitiveMemberOf from servicePrincipals
.Description
Get transitiveMemberOf from servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipaltransitivemember
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipaltransitivemember
#>

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

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

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

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

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Management.Automation.SwitchParameter]
    # Include count of items
    ${Count},

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalTransitiveMember_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalTransitiveMember_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalTransitiveMember_List';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get entity from servicePrincipals by key
.Description
Get entity from servicePrincipals by key
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipal
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePrincipal
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipal
#>

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipal_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipal_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipal_List';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Invoke function filterOperators
.Description
Invoke function filterOperators
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/invoke-mgfilterserviceprincipalsynchronizationjobschemaoperator
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphFilterOperatorSchema
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/invoke-mgfilterserviceprincipalsynchronizationjobschemaoperator
#>

function Invoke-MgFilterServicePrincipalSynchronizationJobSchemaOperator {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphFilterOperatorSchema])]
[CmdletBinding(DefaultParameterSetName='Filter', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Filter', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Filter', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: synchronizationJob-id of synchronizationJob
    ${SynchronizationJobId},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Filter = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgFilterServicePrincipalSynchronizationJobSchemaOperator_Filter';
            FilterViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgFilterServicePrincipalSynchronizationJobSchemaOperator_FilterViaIdentity';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Invoke function filterOperators
.Description
Invoke function filterOperators
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/invoke-mgfilterserviceprincipalsynchronizationtemplateschemaoperator
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphFilterOperatorSchema
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/invoke-mgfilterserviceprincipalsynchronizationtemplateschemaoperator
#>

function Invoke-MgFilterServicePrincipalSynchronizationTemplateSchemaOperator {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphFilterOperatorSchema])]
[CmdletBinding(DefaultParameterSetName='Filter', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Filter', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Filter', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: synchronizationTemplate-id of synchronizationTemplate
    ${SynchronizationTemplateId},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Filter = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgFilterServicePrincipalSynchronizationTemplateSchemaOperator_Filter';
            FilterViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgFilterServicePrincipalSynchronizationTemplateSchemaOperator_FilterViaIdentity';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Invoke function functions
.Description
Invoke function functions
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/invoke-mgfunctionserviceprincipalsynchronizationjobschema
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAttributeMappingFunctionSchema
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/invoke-mgfunctionserviceprincipalsynchronizationjobschema
#>

function Invoke-MgFunctionServicePrincipalSynchronizationJobSchema {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAttributeMappingFunctionSchema])]
[CmdletBinding(DefaultParameterSetName='Functions', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Functions', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Functions', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: synchronizationJob-id of synchronizationJob
    ${SynchronizationJobId},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Functions = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgFunctionServicePrincipalSynchronizationJobSchema_Functions';
            FunctionsViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgFunctionServicePrincipalSynchronizationJobSchema_FunctionsViaIdentity';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Invoke function functions
.Description
Invoke function functions
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/invoke-mgfunctionserviceprincipalsynchronizationtemplateschema
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAttributeMappingFunctionSchema
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/invoke-mgfunctionserviceprincipalsynchronizationtemplateschema
#>

function Invoke-MgFunctionServicePrincipalSynchronizationTemplateSchema {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAttributeMappingFunctionSchema])]
[CmdletBinding(DefaultParameterSetName='Functions', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Functions', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Functions', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: synchronizationTemplate-id of synchronizationTemplate
    ${SynchronizationTemplateId},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Functions = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgFunctionServicePrincipalSynchronizationTemplateSchema_Functions';
            FunctionsViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgFunctionServicePrincipalSynchronizationTemplateSchema_FunctionsViaIdentity';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Invoke action parseExpression
.Description
Invoke action parseExpression
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/invoke-mgparseserviceprincipalsynchronizationjobschemaexpression
.Inputs
Microsoft.Graph.PowerShell.Models.IBodyParameterServicePrincipalsSynchronizationJobsSchemaParseExpressionRequestBody
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphParseExpressionResponse
.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 <IBodyParameterServicePrincipalsSynchronizationJobsSchemaParseExpressionRequestBody>: HELP MESSAGE MISSING
  [DefinitionAttributes <IMicrosoftGraphAttributeDefinition[]>]:
    [Anchor <Boolean?>]:
    [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Key <String>]:
      [Value <String>]:
    [CaseExact <Boolean?>]:
    [DefaultValue <String>]:
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Multivalued <Boolean?>]:
    [Mutability <String>]: mutability
    [Name <String>]:
    [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
      [ReferencedObjectName <String>]:
      [ReferencedProperty <String>]:
    [Required <Boolean?>]:
    [Type <String>]: attributeType
  [DefinitionMetadata <IMicrosoftGraphMetadataEntry[]>]:
  [DefinitionName <String>]:
  [DefinitionSupportedApis <String[]>]:
  [Expression <String>]:
  [TargetAttributeDefinitionAnchor <Boolean?>]:
  [TargetAttributeDefinitionApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
  [TargetAttributeDefinitionCaseExact <Boolean?>]:
  [TargetAttributeDefinitionDefaultValue <String>]:
  [TargetAttributeDefinitionMetadata <IMicrosoftGraphMetadataEntry[]>]:
  [TargetAttributeDefinitionMultivalued <Boolean?>]:
  [TargetAttributeDefinitionMutability <String>]: mutability
  [TargetAttributeDefinitionName <String>]:
  [TargetAttributeDefinitionReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
  [TargetAttributeDefinitionRequired <Boolean?>]:
  [TargetAttributeDefinitionType <String>]: attributeType
  [TestInputObjectProperties <IMicrosoftGraphStringKeyObjectValuePair[]>]:
    [Key <String>]:
 
DEFINITIONATTRIBUTES <IMicrosoftGraphAttributeDefinition[]>: HELP MESSAGE MISSING
  [Anchor <Boolean?>]:
  [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Key <String>]:
    [Value <String>]:
  [CaseExact <Boolean?>]:
  [DefaultValue <String>]:
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Key <String>]:
    [Value <String>]:
  [Multivalued <Boolean?>]:
  [Mutability <String>]: mutability
  [Name <String>]:
  [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
    [ReferencedObjectName <String>]:
    [ReferencedProperty <String>]:
  [Required <Boolean?>]:
  [Type <String>]: attributeType
 
DEFINITIONMETADATA <IMicrosoftGraphMetadataEntry[]>: HELP MESSAGE MISSING
  [Key <String>]:
  [Value <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
 
TARGETATTRIBUTEDEFINITIONAPIEXPRESSIONS <IMicrosoftGraphStringKeyStringValuePair[]>: HELP MESSAGE MISSING
  [Key <String>]:
  [Value <String>]:
 
TARGETATTRIBUTEDEFINITIONMETADATA <IMicrosoftGraphMetadataEntry[]>: HELP MESSAGE MISSING
  [Key <String>]:
  [Value <String>]:
 
TARGETATTRIBUTEDEFINITIONREFERENCEDOBJECTS <IMicrosoftGraphReferencedObject[]>: HELP MESSAGE MISSING
  [ReferencedObjectName <String>]:
  [ReferencedProperty <String>]:
 
TESTINPUTOBJECTPROPERTIES <IMicrosoftGraphStringKeyObjectValuePair[]>: HELP MESSAGE MISSING
  [Key <String>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/invoke-mgparseserviceprincipalsynchronizationjobschemaexpression
#>

function Invoke-MgParseServicePrincipalSynchronizationJobSchemaExpression {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphParseExpressionResponse])]
[CmdletBinding(DefaultParameterSetName='ParseExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Parse', Mandatory)]
    [Parameter(ParameterSetName='ParseExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Parse', Mandatory)]
    [Parameter(ParameterSetName='ParseExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: synchronizationJob-id of synchronizationJob
    ${SynchronizationJobId},

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

    [Parameter(ParameterSetName='Parse', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='ParseViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IBodyParameterServicePrincipalsSynchronizationJobsSchemaParseExpressionRequestBody]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAttributeDefinition[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for DEFINITIONATTRIBUTES properties and create a hash table.
    ${DefinitionAttributes},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphMetadataEntry[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for DEFINITIONMETADATA properties and create a hash table.
    ${DefinitionMetadata},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${DefinitionName},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # HELP MESSAGE MISSING
    ${DefinitionSupportedApis},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Expression},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # HELP MESSAGE MISSING
    ${TargetAttributeDefinitionAnchor},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphStringKeyStringValuePair[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for TARGETATTRIBUTEDEFINITIONAPIEXPRESSIONS properties and create a hash table.
    ${TargetAttributeDefinitionApiExpressions},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # HELP MESSAGE MISSING
    ${TargetAttributeDefinitionCaseExact},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${TargetAttributeDefinitionDefaultValue},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphMetadataEntry[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for TARGETATTRIBUTEDEFINITIONMETADATA properties and create a hash table.
    ${TargetAttributeDefinitionMetadata},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # HELP MESSAGE MISSING
    ${TargetAttributeDefinitionMultivalued},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # mutability
    ${TargetAttributeDefinitionMutability},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${TargetAttributeDefinitionName},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphReferencedObject[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for TARGETATTRIBUTEDEFINITIONREFERENCEDOBJECTS properties and create a hash table.
    ${TargetAttributeDefinitionReferencedObjects},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # HELP MESSAGE MISSING
    ${TargetAttributeDefinitionRequired},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # attributeType
    ${TargetAttributeDefinitionType},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphStringKeyObjectValuePair[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for TESTINPUTOBJECTPROPERTIES properties and create a hash table.
    ${TestInputObjectProperties},

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Parse = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgParseServicePrincipalSynchronizationJobSchemaExpression_Parse';
            ParseExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgParseServicePrincipalSynchronizationJobSchemaExpression_ParseExpanded';
            ParseViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgParseServicePrincipalSynchronizationJobSchemaExpression_ParseViaIdentity';
            ParseViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgParseServicePrincipalSynchronizationJobSchemaExpression_ParseViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Invoke action parseExpression
.Description
Invoke action parseExpression
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/invoke-mgparseserviceprincipalsynchronizationtemplateschemaexpression
.Inputs
Microsoft.Graph.PowerShell.Models.IBodyParameterServicePrincipalsSynchronizationTemplatesSchemaParseExpressionRequestBody
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphParseExpressionResponse
.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 <IBodyParameterServicePrincipalsSynchronizationTemplatesSchemaParseExpressionRequestBody>: HELP MESSAGE MISSING
  [DefinitionAttributes <IMicrosoftGraphAttributeDefinition[]>]:
    [Anchor <Boolean?>]:
    [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Key <String>]:
      [Value <String>]:
    [CaseExact <Boolean?>]:
    [DefaultValue <String>]:
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Multivalued <Boolean?>]:
    [Mutability <String>]: mutability
    [Name <String>]:
    [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
      [ReferencedObjectName <String>]:
      [ReferencedProperty <String>]:
    [Required <Boolean?>]:
    [Type <String>]: attributeType
  [DefinitionMetadata <IMicrosoftGraphMetadataEntry[]>]:
  [DefinitionName <String>]:
  [DefinitionSupportedApis <String[]>]:
  [Expression <String>]:
  [TargetAttributeDefinitionAnchor <Boolean?>]:
  [TargetAttributeDefinitionApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
  [TargetAttributeDefinitionCaseExact <Boolean?>]:
  [TargetAttributeDefinitionDefaultValue <String>]:
  [TargetAttributeDefinitionMetadata <IMicrosoftGraphMetadataEntry[]>]:
  [TargetAttributeDefinitionMultivalued <Boolean?>]:
  [TargetAttributeDefinitionMutability <String>]: mutability
  [TargetAttributeDefinitionName <String>]:
  [TargetAttributeDefinitionReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
  [TargetAttributeDefinitionRequired <Boolean?>]:
  [TargetAttributeDefinitionType <String>]: attributeType
  [TestInputObjectProperties <IMicrosoftGraphStringKeyObjectValuePair[]>]:
    [Key <String>]:
 
DEFINITIONATTRIBUTES <IMicrosoftGraphAttributeDefinition[]>: HELP MESSAGE MISSING
  [Anchor <Boolean?>]:
  [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Key <String>]:
    [Value <String>]:
  [CaseExact <Boolean?>]:
  [DefaultValue <String>]:
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Key <String>]:
    [Value <String>]:
  [Multivalued <Boolean?>]:
  [Mutability <String>]: mutability
  [Name <String>]:
  [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
    [ReferencedObjectName <String>]:
    [ReferencedProperty <String>]:
  [Required <Boolean?>]:
  [Type <String>]: attributeType
 
DEFINITIONMETADATA <IMicrosoftGraphMetadataEntry[]>: HELP MESSAGE MISSING
  [Key <String>]:
  [Value <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
 
TARGETATTRIBUTEDEFINITIONAPIEXPRESSIONS <IMicrosoftGraphStringKeyStringValuePair[]>: HELP MESSAGE MISSING
  [Key <String>]:
  [Value <String>]:
 
TARGETATTRIBUTEDEFINITIONMETADATA <IMicrosoftGraphMetadataEntry[]>: HELP MESSAGE MISSING
  [Key <String>]:
  [Value <String>]:
 
TARGETATTRIBUTEDEFINITIONREFERENCEDOBJECTS <IMicrosoftGraphReferencedObject[]>: HELP MESSAGE MISSING
  [ReferencedObjectName <String>]:
  [ReferencedProperty <String>]:
 
TESTINPUTOBJECTPROPERTIES <IMicrosoftGraphStringKeyObjectValuePair[]>: HELP MESSAGE MISSING
  [Key <String>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/invoke-mgparseserviceprincipalsynchronizationtemplateschemaexpression
#>

function Invoke-MgParseServicePrincipalSynchronizationTemplateSchemaExpression {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphParseExpressionResponse])]
[CmdletBinding(DefaultParameterSetName='ParseExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Parse', Mandatory)]
    [Parameter(ParameterSetName='ParseExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Parse', Mandatory)]
    [Parameter(ParameterSetName='ParseExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: synchronizationTemplate-id of synchronizationTemplate
    ${SynchronizationTemplateId},

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

    [Parameter(ParameterSetName='Parse', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='ParseViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IBodyParameterServicePrincipalsSynchronizationTemplatesSchemaParseExpressionRequestBody]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAttributeDefinition[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for DEFINITIONATTRIBUTES properties and create a hash table.
    ${DefinitionAttributes},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphMetadataEntry[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for DEFINITIONMETADATA properties and create a hash table.
    ${DefinitionMetadata},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${DefinitionName},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # HELP MESSAGE MISSING
    ${DefinitionSupportedApis},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Expression},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # HELP MESSAGE MISSING
    ${TargetAttributeDefinitionAnchor},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphStringKeyStringValuePair[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for TARGETATTRIBUTEDEFINITIONAPIEXPRESSIONS properties and create a hash table.
    ${TargetAttributeDefinitionApiExpressions},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # HELP MESSAGE MISSING
    ${TargetAttributeDefinitionCaseExact},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${TargetAttributeDefinitionDefaultValue},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphMetadataEntry[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for TARGETATTRIBUTEDEFINITIONMETADATA properties and create a hash table.
    ${TargetAttributeDefinitionMetadata},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # HELP MESSAGE MISSING
    ${TargetAttributeDefinitionMultivalued},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # mutability
    ${TargetAttributeDefinitionMutability},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${TargetAttributeDefinitionName},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphReferencedObject[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for TARGETATTRIBUTEDEFINITIONREFERENCEDOBJECTS properties and create a hash table.
    ${TargetAttributeDefinitionReferencedObjects},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # HELP MESSAGE MISSING
    ${TargetAttributeDefinitionRequired},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # attributeType
    ${TargetAttributeDefinitionType},

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphStringKeyObjectValuePair[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for TESTINPUTOBJECTPROPERTIES properties and create a hash table.
    ${TestInputObjectProperties},

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Parse = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgParseServicePrincipalSynchronizationTemplateSchemaExpression_Parse';
            ParseExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgParseServicePrincipalSynchronizationTemplateSchemaExpression_ParseExpanded';
            ParseViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgParseServicePrincipalSynchronizationTemplateSchemaExpression_ParseViaIdentity';
            ParseViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgParseServicePrincipalSynchronizationTemplateSchemaExpression_ParseViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Create new navigation property to appRoleAssignedTo for servicePrincipals
.Description
Create new navigation property to appRoleAssignedTo for servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalapproleassignedto
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment
.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 <IMicrosoftGraphAppRoleAssignment>: HELP MESSAGE MISSING
  [Id <String>]:
  [AppRoleId <String>]:
  [CreationTimestamp <DateTime?>]:
  [PrincipalDisplayName <String>]:
  [PrincipalId <String>]:
  [PrincipalType <String>]:
  [ResourceDisplayName <String>]:
  [ResourceId <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalapproleassignedto
#>

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${AppRoleId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # HELP MESSAGE MISSING
    ${CreationTimestamp},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${PrincipalDisplayName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${PrincipalId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${PrincipalType},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${ResourceDisplayName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${ResourceId},

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Create = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalAppRoleAssignedTo_Create';
            CreateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalAppRoleAssignedTo_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalAppRoleAssignedTo_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalAppRoleAssignedTo_CreateViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Create new navigation property to appRoleAssignments for servicePrincipals
.Description
Create new navigation property to appRoleAssignments for servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalapproleassignment
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment
.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 <IMicrosoftGraphAppRoleAssignment>: HELP MESSAGE MISSING
  [Id <String>]:
  [AppRoleId <String>]:
  [CreationTimestamp <DateTime?>]:
  [PrincipalDisplayName <String>]:
  [PrincipalId <String>]:
  [PrincipalType <String>]:
  [ResourceDisplayName <String>]:
  [ResourceId <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalapproleassignment
#>

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${AppRoleId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # HELP MESSAGE MISSING
    ${CreationTimestamp},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${PrincipalDisplayName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${PrincipalId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${PrincipalType},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${ResourceDisplayName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${ResourceId},

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Create = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalAppRoleAssignment_Create';
            CreateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalAppRoleAssignment_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalAppRoleAssignment_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalAppRoleAssignment_CreateViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Create new navigation property to licenseDetails for servicePrincipals
.Description
Create new navigation property to licenseDetails for servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipallicensedetail
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLicenseDetails
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLicenseDetails
.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 <IMicrosoftGraphLicenseDetails>: HELP MESSAGE MISSING
  [Id <String>]:
  [ServicePlans <IMicrosoftGraphServicePlanInfo[]>]:
    [AppliesTo <String>]:
    [ProvisioningStatus <String>]:
    [ServicePlanId <String>]:
    [ServicePlanName <String>]:
  [SkuId <String>]:
  [SkuPartNumber <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
 
SERVICEPLANS <IMicrosoftGraphServicePlanInfo[]>: HELP MESSAGE MISSING
  [AppliesTo <String>]:
  [ProvisioningStatus <String>]:
  [ServicePlanId <String>]:
  [ServicePlanName <String>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipallicensedetail
#>

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePlanInfo[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for SERVICEPLANS properties and create a hash table.
    ${ServicePlans},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${SkuId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${SkuPartNumber},

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Create = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalLicenseDetail_Create';
            CreateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalLicenseDetail_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalLicenseDetail_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalLicenseDetail_CreateViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Invoke action createPasswordSingleSignOnCredentials
.Description
Invoke action createPasswordSingleSignOnCredentials
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalpasswordsinglesignoncredentials
.Inputs
Microsoft.Graph.PowerShell.Models.IBodyParameterServicePrincipalsCreatePasswordSingleSignOnCredentialsRequestBody
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPasswordSingleSignOnCredentialSet
.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 <IBodyParameterServicePrincipalsCreatePasswordSingleSignOnCredentialsRequestBody>: HELP MESSAGE MISSING
  [Credentials <IMicrosoftGraphCredential[]>]:
    [FieldId <String>]:
    [Type <String>]:
    [Value <String>]:
  [Id <String>]:
 
CREDENTIALS <IMicrosoftGraphCredential[]>: HELP MESSAGE MISSING
  [FieldId <String>]:
  [Type <String>]:
  [Value <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalpasswordsinglesignoncredentials
#>

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphCredential[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for CREDENTIALS properties and create a hash table.
    ${Credentials},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Id},

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Create = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalPasswordSingleSignOnCredentials_Create';
            CreateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalPasswordSingleSignOnCredentials_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalPasswordSingleSignOnCredentials_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalPasswordSingleSignOnCredentials_CreateViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Create new navigation property to directories for servicePrincipals
.Description
Create new navigation property to directories for servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalsynchronizationjobschemadirectory
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition
.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 <IMicrosoftGraphDirectoryDefinition>: HELP MESSAGE MISSING
  [Id <String>]:
  [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
  [DiscoveryDateTime <DateTime?>]:
  [Name <String>]:
  [Objects <IMicrosoftGraphObjectDefinition[]>]:
    [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
      [Anchor <Boolean?>]:
      [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
        [Key <String>]:
        [Value <String>]:
      [CaseExact <Boolean?>]:
      [DefaultValue <String>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Key <String>]:
        [Value <String>]:
      [Multivalued <Boolean?>]:
      [Mutability <String>]: mutability
      [Name <String>]:
      [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
        [ReferencedObjectName <String>]:
        [ReferencedProperty <String>]:
      [Required <Boolean?>]:
      [Type <String>]: attributeType
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Name <String>]:
    [SupportedApis <String[]>]:
  [ReadOnly <Boolean?>]:
  [Version <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
 
OBJECTS <IMicrosoftGraphObjectDefinition[]>: HELP MESSAGE MISSING
  [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
    [Anchor <Boolean?>]:
    [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Key <String>]:
      [Value <String>]:
    [CaseExact <Boolean?>]:
    [DefaultValue <String>]:
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Multivalued <Boolean?>]:
    [Mutability <String>]: mutability
    [Name <String>]:
    [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
      [ReferencedObjectName <String>]:
      [ReferencedProperty <String>]:
    [Required <Boolean?>]:
    [Type <String>]: attributeType
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
  [Name <String>]:
  [SupportedApis <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalsynchronizationjobschemadirectory
#>

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

    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: synchronizationJob-id of synchronizationJob
    ${SynchronizationJobId},

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # HELP MESSAGE MISSING
    ${DiscoveryDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Id},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphObjectDefinition[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for OBJECTS properties and create a hash table.
    ${Objects},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # HELP MESSAGE MISSING
    ${ReadOnly},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Version},

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Create = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationJobSchemaDirectory_Create';
            CreateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationJobSchemaDirectory_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationJobSchemaDirectory_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationJobSchemaDirectory_CreateViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Create new navigation property to jobs for servicePrincipals
.Description
Create new navigation property to jobs for servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalsynchronizationjob
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationJob
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationJob
.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 <IMicrosoftGraphSynchronizationJob>: HELP MESSAGE MISSING
  [Id <String>]:
  [ScheduleExpiration <DateTime?>]:
  [ScheduleInterval <TimeSpan?>]:
  [ScheduleState <String>]: synchronizationScheduleState
  [SchemaDirectories <IMicrosoftGraphDirectoryDefinition[]>]:
    [Id <String>]:
    [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
    [DiscoveryDateTime <DateTime?>]:
    [Name <String>]:
    [Objects <IMicrosoftGraphObjectDefinition[]>]:
      [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
        [Anchor <Boolean?>]:
        [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
          [Key <String>]:
          [Value <String>]:
        [CaseExact <Boolean?>]:
        [DefaultValue <String>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
          [Key <String>]:
          [Value <String>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [SchemaId <String>]:
  [SchemaProvisioningTaskIdentifier <String>]:
  [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [SchemaVersion <String>]:
  [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
    [Code <String>]: synchronizationStatusCode
    [CountSuccessiveCompleteFailures <Int64?>]:
    [EscrowsPruned <Boolean?>]:
    [LastExecutionActivityIdentifier <String>]:
    [LastExecutionCountEntitled <Int64?>]:
    [LastExecutionCountEntitledForProvisioning <Int64?>]:
    [LastExecutionCountEscrowed <Int64?>]:
    [LastExecutionCountEscrowedRaw <Int64?>]:
    [LastExecutionCountExported <Int64?>]:
    [LastExecutionCountExports <Int64?>]:
    [LastExecutionCountImported <Int64?>]:
    [LastExecutionCountImportedDeltas <Int64?>]:
    [LastExecutionCountImportedReferenceDeltas <Int64?>]:
    [LastExecutionErrorCode <String>]:
    [LastExecutionErrorMessage <String>]:
    [LastExecutionErrorTenantActionable <Boolean?>]:
    [LastExecutionState <String>]: synchronizationTaskExecutionResult
    [LastExecutionTimeBegan <DateTime?>]:
    [LastExecutionTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionActivityIdentifier <String>]:
    [LastSuccessfulExecutionCountEntitled <Int64?>]:
    [LastSuccessfulExecutionCountEntitledForProvisioning <Int64?>]:
    [LastSuccessfulExecutionCountEscrowed <Int64?>]:
    [LastSuccessfulExecutionCountEscrowedRaw <Int64?>]:
    [LastSuccessfulExecutionCountExported <Int64?>]:
    [LastSuccessfulExecutionCountExports <Int64?>]:
    [LastSuccessfulExecutionCountImported <Int64?>]:
    [LastSuccessfulExecutionCountImportedDeltas <Int64?>]:
    [LastSuccessfulExecutionCountImportedReferenceDeltas <Int64?>]:
    [LastSuccessfulExecutionErrorCode <String>]:
    [LastSuccessfulExecutionErrorMessage <String>]:
    [LastSuccessfulExecutionErrorTenantActionable <Boolean?>]:
    [LastSuccessfulExecutionState <String>]: synchronizationTaskExecutionResult
    [LastSuccessfulExecutionTimeBegan <DateTime?>]:
    [LastSuccessfulExecutionTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionWithExportActivityIdentifier <String>]:
    [LastSuccessfulExecutionWithExportCountEntitled <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEntitledForProvisioning <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEscrowed <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEscrowedRaw <Int64?>]:
    [LastSuccessfulExecutionWithExportCountExported <Int64?>]:
    [LastSuccessfulExecutionWithExportCountExports <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImported <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImportedDeltas <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImportedReferenceDeltas <Int64?>]:
    [LastSuccessfulExecutionWithExportState <String>]: synchronizationTaskExecutionResult
    [LastSuccessfulExecutionWithExportTimeBegan <DateTime?>]:
    [LastSuccessfulExecutionWithExportTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionWithExportsErrorCode <String>]:
    [LastSuccessfulExecutionWithExportsErrorMessage <String>]:
    [LastSuccessfulExecutionWithExportsErrorTenantActionable <Boolean?>]:
    [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
      [CompletedUnits <Int64?>]:
      [ProgressObservationDateTime <DateTime?>]:
      [TotalUnits <Int64?>]:
      [Units <String>]:
    [QuarantineCurrentBegan <DateTime?>]:
    [QuarantineNextAttempt <DateTime?>]:
    [QuarantineReason <String>]: quarantineReason
    [QuarantineSeriesBegan <DateTime?>]:
    [QuarantineSeriesCount <Int64?>]:
    [SteadyStateFirstAchievedTime <DateTime?>]:
    [SteadyStateLastAchievedTime <DateTime?>]:
    [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
      [Key <String>]:
      [Value <Int64?>]:
    [TroubleshootingUrl <String>]:
  [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
    [Name <String>]:
    [Value <String>]:
  [TemplateId <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
 
SCHEMADIRECTORIES <IMicrosoftGraphDirectoryDefinition[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
  [DiscoveryDateTime <DateTime?>]:
  [Name <String>]:
  [Objects <IMicrosoftGraphObjectDefinition[]>]:
    [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
      [Anchor <Boolean?>]:
      [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
        [Key <String>]:
        [Value <String>]:
      [CaseExact <Boolean?>]:
      [DefaultValue <String>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Key <String>]:
        [Value <String>]:
      [Multivalued <Boolean?>]:
      [Mutability <String>]: mutability
      [Name <String>]:
      [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
        [ReferencedObjectName <String>]:
        [ReferencedProperty <String>]:
      [Required <Boolean?>]:
      [Type <String>]: attributeType
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Name <String>]:
    [SupportedApis <String[]>]:
  [ReadOnly <Boolean?>]:
  [Version <String>]:
 
SCHEMASYNCHRONIZATIONRULES <IMicrosoftGraphSynchronizationRule[]>: HELP MESSAGE MISSING
  [Editable <Boolean?>]:
  [Id <String>]:
  [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Key <String>]:
    [Value <String>]:
  [Name <String>]:
  [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
    [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
      [DefaultValue <String>]:
      [ExportMissingReferences <Boolean?>]:
      [FlowBehavior <String>]: attributeFlowBehavior
      [FlowType <String>]: attributeFlowType
      [MatchingPriority <Int32?>]:
      [SourceExpression <String>]:
      [SourceName <String>]:
      [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [Key <String>]:
        [ValueExpression <String>]:
        [ValueName <String>]:
        [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [ValueType <String>]: attributeMappingSourceType
      [SourceType <String>]: attributeMappingSourceType
      [TargetAttributeName <String>]:
    [Enabled <Boolean?>]:
    [FlowTypes <String>]: objectFlowTypes
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Name <String>]:
    [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [Clauses <IMicrosoftGraphFilterClause[]>]:
        [OperatorName <String>]:
        [SourceOperandName <String>]:
        [TargetOperandValues <String[]>]:
      [Name <String>]:
    [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
    [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
    [SourceObjectName <String>]:
    [TargetObjectName <String>]:
  [Priority <Int32?>]:
  [SourceDirectoryName <String>]:
  [TargetDirectoryName <String>]:
 
STATUS <IMicrosoftGraphSynchronizationStatus>: synchronizationStatus
  [Code <String>]: synchronizationStatusCode
  [CountSuccessiveCompleteFailures <Int64?>]:
  [EscrowsPruned <Boolean?>]:
  [LastExecutionActivityIdentifier <String>]:
  [LastExecutionCountEntitled <Int64?>]:
  [LastExecutionCountEntitledForProvisioning <Int64?>]:
  [LastExecutionCountEscrowed <Int64?>]:
  [LastExecutionCountEscrowedRaw <Int64?>]:
  [LastExecutionCountExported <Int64?>]:
  [LastExecutionCountExports <Int64?>]:
  [LastExecutionCountImported <Int64?>]:
  [LastExecutionCountImportedDeltas <Int64?>]:
  [LastExecutionCountImportedReferenceDeltas <Int64?>]:
  [LastExecutionErrorCode <String>]:
  [LastExecutionErrorMessage <String>]:
  [LastExecutionErrorTenantActionable <Boolean?>]:
  [LastExecutionState <String>]: synchronizationTaskExecutionResult
  [LastExecutionTimeBegan <DateTime?>]:
  [LastExecutionTimeEnded <DateTime?>]:
  [LastSuccessfulExecutionActivityIdentifier <String>]:
  [LastSuccessfulExecutionCountEntitled <Int64?>]:
  [LastSuccessfulExecutionCountEntitledForProvisioning <Int64?>]:
  [LastSuccessfulExecutionCountEscrowed <Int64?>]:
  [LastSuccessfulExecutionCountEscrowedRaw <Int64?>]:
  [LastSuccessfulExecutionCountExported <Int64?>]:
  [LastSuccessfulExecutionCountExports <Int64?>]:
  [LastSuccessfulExecutionCountImported <Int64?>]:
  [LastSuccessfulExecutionCountImportedDeltas <Int64?>]:
  [LastSuccessfulExecutionCountImportedReferenceDeltas <Int64?>]:
  [LastSuccessfulExecutionErrorCode <String>]:
  [LastSuccessfulExecutionErrorMessage <String>]:
  [LastSuccessfulExecutionErrorTenantActionable <Boolean?>]:
  [LastSuccessfulExecutionState <String>]: synchronizationTaskExecutionResult
  [LastSuccessfulExecutionTimeBegan <DateTime?>]:
  [LastSuccessfulExecutionTimeEnded <DateTime?>]:
  [LastSuccessfulExecutionWithExportActivityIdentifier <String>]:
  [LastSuccessfulExecutionWithExportCountEntitled <Int64?>]:
  [LastSuccessfulExecutionWithExportCountEntitledForProvisioning <Int64?>]:
  [LastSuccessfulExecutionWithExportCountEscrowed <Int64?>]:
  [LastSuccessfulExecutionWithExportCountEscrowedRaw <Int64?>]:
  [LastSuccessfulExecutionWithExportCountExported <Int64?>]:
  [LastSuccessfulExecutionWithExportCountExports <Int64?>]:
  [LastSuccessfulExecutionWithExportCountImported <Int64?>]:
  [LastSuccessfulExecutionWithExportCountImportedDeltas <Int64?>]:
  [LastSuccessfulExecutionWithExportCountImportedReferenceDeltas <Int64?>]:
  [LastSuccessfulExecutionWithExportState <String>]: synchronizationTaskExecutionResult
  [LastSuccessfulExecutionWithExportTimeBegan <DateTime?>]:
  [LastSuccessfulExecutionWithExportTimeEnded <DateTime?>]:
  [LastSuccessfulExecutionWithExportsErrorCode <String>]:
  [LastSuccessfulExecutionWithExportsErrorMessage <String>]:
  [LastSuccessfulExecutionWithExportsErrorTenantActionable <Boolean?>]:
  [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
    [CompletedUnits <Int64?>]:
    [ProgressObservationDateTime <DateTime?>]:
    [TotalUnits <Int64?>]:
    [Units <String>]:
  [QuarantineCurrentBegan <DateTime?>]:
  [QuarantineNextAttempt <DateTime?>]:
  [QuarantineReason <String>]: quarantineReason
  [QuarantineSeriesBegan <DateTime?>]:
  [QuarantineSeriesCount <Int64?>]:
  [SteadyStateFirstAchievedTime <DateTime?>]:
  [SteadyStateLastAchievedTime <DateTime?>]:
  [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
    [Key <String>]:
    [Value <Int64?>]:
  [TroubleshootingUrl <String>]:
 
SYNCHRONIZATIONJOBSETTINGS <IMicrosoftGraphKeyValuePair[]>: HELP MESSAGE MISSING
  [Name <String>]:
  [Value <String>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalsynchronizationjob
#>

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # HELP MESSAGE MISSING
    ${ScheduleExpiration},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.TimeSpan]
    # HELP MESSAGE MISSING
    ${ScheduleInterval},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for SCHEMADIRECTORIES properties and create a hash table.
    ${SchemaDirectories},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${SchemaId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${SchemaProvisioningTaskIdentifier},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationRule[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for SCHEMASYNCHRONIZATIONRULES properties and create a hash table.
    ${SchemaSynchronizationRules},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${SchemaVersion},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphKeyValuePair[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for SYNCHRONIZATIONJOBSETTINGS properties and create a hash table.
    ${SynchronizationJobSettings},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${TemplateId},

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Create = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationJob_Create';
            CreateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationJob_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationJob_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationJob_CreateViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Create new navigation property to directories for servicePrincipals
.Description
Create new navigation property to directories for servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalsynchronizationtemplateschemadirectory
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition
.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 <IMicrosoftGraphDirectoryDefinition>: HELP MESSAGE MISSING
  [Id <String>]:
  [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
  [DiscoveryDateTime <DateTime?>]:
  [Name <String>]:
  [Objects <IMicrosoftGraphObjectDefinition[]>]:
    [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
      [Anchor <Boolean?>]:
      [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
        [Key <String>]:
        [Value <String>]:
      [CaseExact <Boolean?>]:
      [DefaultValue <String>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Key <String>]:
        [Value <String>]:
      [Multivalued <Boolean?>]:
      [Mutability <String>]: mutability
      [Name <String>]:
      [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
        [ReferencedObjectName <String>]:
        [ReferencedProperty <String>]:
      [Required <Boolean?>]:
      [Type <String>]: attributeType
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Name <String>]:
    [SupportedApis <String[]>]:
  [ReadOnly <Boolean?>]:
  [Version <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
 
OBJECTS <IMicrosoftGraphObjectDefinition[]>: HELP MESSAGE MISSING
  [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
    [Anchor <Boolean?>]:
    [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Key <String>]:
      [Value <String>]:
    [CaseExact <Boolean?>]:
    [DefaultValue <String>]:
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Multivalued <Boolean?>]:
    [Mutability <String>]: mutability
    [Name <String>]:
    [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
      [ReferencedObjectName <String>]:
      [ReferencedProperty <String>]:
    [Required <Boolean?>]:
    [Type <String>]: attributeType
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
  [Name <String>]:
  [SupportedApis <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalsynchronizationtemplateschemadirectory
#>

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

    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: synchronizationTemplate-id of synchronizationTemplate
    ${SynchronizationTemplateId},

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # HELP MESSAGE MISSING
    ${DiscoveryDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Id},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphObjectDefinition[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for OBJECTS properties and create a hash table.
    ${Objects},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # HELP MESSAGE MISSING
    ${ReadOnly},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Version},

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Create = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationTemplateSchemaDirectory_Create';
            CreateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationTemplateSchemaDirectory_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationTemplateSchemaDirectory_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationTemplateSchemaDirectory_CreateViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Create new navigation property to templates for servicePrincipals
.Description
Create new navigation property to templates for servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalsynchronizationtemplate
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationTemplate
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationTemplate
.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 <IMicrosoftGraphSynchronizationTemplate>: HELP MESSAGE MISSING
  [Id <String>]:
  [ApplicationId <String>]:
  [Default <Boolean?>]:
  [Description <String>]:
  [Discoverable <Boolean?>]:
  [FactoryTag <String>]:
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Key <String>]:
    [Value <String>]:
  [SchemaDirectories <IMicrosoftGraphDirectoryDefinition[]>]:
    [Id <String>]:
    [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
    [DiscoveryDateTime <DateTime?>]:
    [Name <String>]:
    [Objects <IMicrosoftGraphObjectDefinition[]>]:
      [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
        [Anchor <Boolean?>]:
        [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
          [Key <String>]:
          [Value <String>]:
        [CaseExact <Boolean?>]:
        [DefaultValue <String>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [SchemaId <String>]:
  [SchemaProvisioningTaskIdentifier <String>]:
  [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [SchemaVersion <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
 
METADATA <IMicrosoftGraphMetadataEntry[]>: HELP MESSAGE MISSING
  [Key <String>]:
  [Value <String>]:
 
SCHEMADIRECTORIES <IMicrosoftGraphDirectoryDefinition[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
  [DiscoveryDateTime <DateTime?>]:
  [Name <String>]:
  [Objects <IMicrosoftGraphObjectDefinition[]>]:
    [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
      [Anchor <Boolean?>]:
      [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
        [Key <String>]:
        [Value <String>]:
      [CaseExact <Boolean?>]:
      [DefaultValue <String>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Key <String>]:
        [Value <String>]:
      [Multivalued <Boolean?>]:
      [Mutability <String>]: mutability
      [Name <String>]:
      [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
        [ReferencedObjectName <String>]:
        [ReferencedProperty <String>]:
      [Required <Boolean?>]:
      [Type <String>]: attributeType
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Name <String>]:
    [SupportedApis <String[]>]:
  [ReadOnly <Boolean?>]:
  [Version <String>]:
 
SCHEMASYNCHRONIZATIONRULES <IMicrosoftGraphSynchronizationRule[]>: HELP MESSAGE MISSING
  [Editable <Boolean?>]:
  [Id <String>]:
  [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Key <String>]:
    [Value <String>]:
  [Name <String>]:
  [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
    [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
      [DefaultValue <String>]:
      [ExportMissingReferences <Boolean?>]:
      [FlowBehavior <String>]: attributeFlowBehavior
      [FlowType <String>]: attributeFlowType
      [MatchingPriority <Int32?>]:
      [SourceExpression <String>]:
      [SourceName <String>]:
      [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [Key <String>]:
        [ValueExpression <String>]:
        [ValueName <String>]:
        [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [ValueType <String>]: attributeMappingSourceType
      [SourceType <String>]: attributeMappingSourceType
      [TargetAttributeName <String>]:
    [Enabled <Boolean?>]:
    [FlowTypes <String>]: objectFlowTypes
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Name <String>]:
    [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [Clauses <IMicrosoftGraphFilterClause[]>]:
        [OperatorName <String>]:
        [SourceOperandName <String>]:
        [TargetOperandValues <String[]>]:
      [Name <String>]:
    [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
    [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
    [SourceObjectName <String>]:
    [TargetObjectName <String>]:
  [Priority <Int32?>]:
  [SourceDirectoryName <String>]:
  [TargetDirectoryName <String>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalsynchronizationtemplate
#>

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${ApplicationId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # HELP MESSAGE MISSING
    ${Default},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Description},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # HELP MESSAGE MISSING
    ${Discoverable},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${FactoryTag},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphMetadataEntry[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for METADATA properties and create a hash table.
    ${Metadata},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for SCHEMADIRECTORIES properties and create a hash table.
    ${SchemaDirectories},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${SchemaId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${SchemaProvisioningTaskIdentifier},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationRule[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for SCHEMASYNCHRONIZATIONRULES properties and create a hash table.
    ${SchemaSynchronizationRules},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${SchemaVersion},

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Create = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationTemplate_Create';
            CreateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationTemplate_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationTemplate_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationTemplate_CreateViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Add new entity to servicePrincipals
.Description
Add new entity to servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipal
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePrincipal
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePrincipal
.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.
 
ADDINS <IMicrosoftGraphAddIn[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [Properties <IMicrosoftGraphKeyValue[]>]:
    [Key <String>]:
    [Value <String>]:
  [Type <String>]:
 
APPROLEASSIGNEDTO <IMicrosoftGraphAppRoleAssignment[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [AppRoleId <String>]:
  [CreationTimestamp <DateTime?>]:
  [PrincipalDisplayName <String>]:
  [PrincipalId <String>]:
  [PrincipalType <String>]:
  [ResourceDisplayName <String>]:
  [ResourceId <String>]:
 
APPROLEASSIGNMENTS <IMicrosoftGraphAppRoleAssignment[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [AppRoleId <String>]:
  [CreationTimestamp <DateTime?>]:
  [PrincipalDisplayName <String>]:
  [PrincipalId <String>]:
  [PrincipalType <String>]:
  [ResourceDisplayName <String>]:
  [ResourceId <String>]:
 
APPROLES <IMicrosoftGraphAppRole[]>: HELP MESSAGE MISSING
  [AllowedMemberTypes <String[]>]:
  [Description <String>]:
  [DisplayName <String>]:
  [Id <String>]:
  [IsEnabled <Boolean?>]:
  [Origin <String>]:
  [Value <String>]:
 
BODYPARAMETER <IMicrosoftGraphServicePrincipal>: HELP MESSAGE MISSING
  [Id <String>]:
  [DeletedDateTime <DateTime?>]:
  [AccountEnabled <Boolean?>]:
  [AddIns <IMicrosoftGraphAddIn[]>]:
    [Id <String>]:
    [Properties <IMicrosoftGraphKeyValue[]>]:
      [Key <String>]:
      [Value <String>]:
    [Type <String>]:
  [AppDisplayName <String>]:
  [AppId <String>]:
  [AppOwnerOrganizationId <String>]:
  [AppRoleAssignedTo <IMicrosoftGraphAppRoleAssignment[]>]:
    [Id <String>]:
    [AppRoleId <String>]:
    [CreationTimestamp <DateTime?>]:
    [PrincipalDisplayName <String>]:
    [PrincipalId <String>]:
    [PrincipalType <String>]:
    [ResourceDisplayName <String>]:
    [ResourceId <String>]:
  [AppRoleAssignmentRequired <Boolean?>]:
  [AppRoleAssignments <IMicrosoftGraphAppRoleAssignment[]>]:
  [AppRoles <IMicrosoftGraphAppRole[]>]:
    [AllowedMemberTypes <String[]>]:
    [Description <String>]:
    [DisplayName <String>]:
    [Id <String>]:
    [IsEnabled <Boolean?>]:
    [Origin <String>]:
    [Value <String>]:
  [ApplicationTemplateId <String>]:
  [CreatedObjects <IMicrosoftGraphDirectoryObject[]>]:
    [Id <String>]:
    [DeletedDateTime <DateTime?>]:
  [DisplayName <String>]:
  [Homepage <String>]:
  [InfoLogoUrl <String>]:
  [InfoMarketingUrl <String>]:
  [InfoPrivacyStatementUrl <String>]:
  [InfoSupportUrl <String>]:
  [InfoTermsOfServiceUrl <String>]:
  [KeyCredentials <IMicrosoftGraphKeyCredential[]>]:
    [CustomKeyIdentifier <Byte[]>]:
    [DisplayName <String>]:
    [EndDateTime <DateTime?>]:
    [Key <Byte[]>]:
    [KeyId <String>]:
    [StartDateTime <DateTime?>]:
    [Type <String>]:
    [Usage <String>]:
  [LicenseDetails <IMicrosoftGraphLicenseDetails[]>]:
    [Id <String>]:
    [ServicePlans <IMicrosoftGraphServicePlanInfo[]>]:
      [AppliesTo <String>]:
      [ProvisioningStatus <String>]:
      [ServicePlanId <String>]:
      [ServicePlanName <String>]:
    [SkuId <String>]:
    [SkuPartNumber <String>]:
  [LogoutUrl <String>]:
  [MemberOf <IMicrosoftGraphDirectoryObject[]>]:
  [NotificationEmailAddresses <String[]>]:
  [Oauth2PermissionGrants <IMicrosoftGraphOAuth2PermissionGrant[]>]:
    [Id <String>]:
    [ClientId <String>]:
    [ConsentType <String>]:
    [ExpiryTime <DateTime?>]:
    [PrincipalId <String>]:
    [ResourceId <String>]:
    [Scope <String>]:
    [StartTime <DateTime?>]:
  [OwnedObjects <IMicrosoftGraphDirectoryObject[]>]:
  [Owners <IMicrosoftGraphDirectoryObject[]>]:
  [PasswordCredentials <IMicrosoftGraphPasswordCredential[]>]:
    [CustomKeyIdentifier <Byte[]>]:
    [DisplayName <String>]:
    [EndDateTime <DateTime?>]:
    [Hint <String>]:
    [KeyId <String>]:
    [SecretText <String>]:
    [StartDateTime <DateTime?>]:
  [Policies <IMicrosoftGraphDirectoryObject[]>]:
  [PreferredTokenSigningKeyThumbprint <String>]:
  [PublishedPermissionScopes <IMicrosoftGraphPermissionScope[]>]:
    [AdminConsentDescription <String>]:
    [AdminConsentDisplayName <String>]:
    [Id <String>]:
    [IsEnabled <Boolean?>]:
    [Origin <String>]:
    [Type <String>]:
    [UserConsentDescription <String>]:
    [UserConsentDisplayName <String>]:
    [Value <String>]:
  [PublisherName <String>]:
  [ReplyUrls <String[]>]:
  [SamlMetadataUrl <String>]:
  [ServicePrincipalNames <String[]>]:
  [SynchronizationId <String>]:
  [SynchronizationJobs <IMicrosoftGraphSynchronizationJob[]>]:
    [Id <String>]:
    [ScheduleExpiration <DateTime?>]:
    [ScheduleInterval <TimeSpan?>]:
    [ScheduleState <String>]: synchronizationScheduleState
    [SchemaDirectories <IMicrosoftGraphDirectoryDefinition[]>]:
      [Id <String>]:
      [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
      [DiscoveryDateTime <DateTime?>]:
      [Name <String>]:
      [Objects <IMicrosoftGraphObjectDefinition[]>]:
        [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
          [Anchor <Boolean?>]:
          [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
            [Key <String>]:
            [Value <String>]:
          [CaseExact <Boolean?>]:
          [DefaultValue <String>]:
          [Metadata <IMicrosoftGraphMetadataEntry[]>]:
            [Key <String>]:
            [Value <String>]:
          [Multivalued <Boolean?>]:
          [Mutability <String>]: mutability
          [Name <String>]:
          [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
            [ReferencedObjectName <String>]:
            [ReferencedProperty <String>]:
          [Required <Boolean?>]:
          [Type <String>]: attributeType
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Name <String>]:
        [SupportedApis <String[]>]:
      [ReadOnly <Boolean?>]:
      [Version <String>]:
    [SchemaId <String>]:
    [SchemaProvisioningTaskIdentifier <String>]:
    [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
      [Editable <Boolean?>]:
      [Id <String>]:
      [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Name <String>]:
      [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
        [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
          [DefaultValue <String>]:
          [ExportMissingReferences <Boolean?>]:
          [FlowBehavior <String>]: attributeFlowBehavior
          [FlowType <String>]: attributeFlowType
          [MatchingPriority <Int32?>]:
          [SourceExpression <String>]:
          [SourceName <String>]:
          [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
            [Key <String>]:
            [ValueExpression <String>]:
            [ValueName <String>]:
            [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
            [ValueType <String>]: attributeMappingSourceType
          [SourceType <String>]: attributeMappingSourceType
          [TargetAttributeName <String>]:
        [Enabled <Boolean?>]:
        [FlowTypes <String>]: objectFlowTypes
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Name <String>]:
        [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
          [Clauses <IMicrosoftGraphFilterClause[]>]:
            [OperatorName <String>]:
            [SourceOperandName <String>]:
            [TargetOperandValues <String[]>]:
          [Name <String>]:
        [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
        [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [SourceObjectName <String>]:
        [TargetObjectName <String>]:
      [Priority <Int32?>]:
      [SourceDirectoryName <String>]:
      [TargetDirectoryName <String>]:
    [SchemaVersion <String>]:
    [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
      [Code <String>]: synchronizationStatusCode
      [CountSuccessiveCompleteFailures <Int64?>]:
      [EscrowsPruned <Boolean?>]:
      [LastExecutionActivityIdentifier <String>]:
      [LastExecutionCountEntitled <Int64?>]:
      [LastExecutionCountEntitledForProvisioning <Int64?>]:
      [LastExecutionCountEscrowed <Int64?>]:
      [LastExecutionCountEscrowedRaw <Int64?>]:
      [LastExecutionCountExported <Int64?>]:
      [LastExecutionCountExports <Int64?>]:
      [LastExecutionCountImported <Int64?>]:
      [LastExecutionCountImportedDeltas <Int64?>]:
      [LastExecutionCountImportedReferenceDeltas <Int64?>]:
      [LastExecutionErrorCode <String>]:
      [LastExecutionErrorMessage <String>]:
      [LastExecutionErrorTenantActionable <Boolean?>]:
      [LastExecutionState <String>]: synchronizationTaskExecutionResult
      [LastExecutionTimeBegan <DateTime?>]:
      [LastExecutionTimeEnded <DateTime?>]:
      [LastSuccessfulExecutionActivityIdentifier <String>]:
      [LastSuccessfulExecutionCountEntitled <Int64?>]:
      [LastSuccessfulExecutionCountEntitledForProvisioning <Int64?>]:
      [LastSuccessfulExecutionCountEscrowed <Int64?>]:
      [LastSuccessfulExecutionCountEscrowedRaw <Int64?>]:
      [LastSuccessfulExecutionCountExported <Int64?>]:
      [LastSuccessfulExecutionCountExports <Int64?>]:
      [LastSuccessfulExecutionCountImported <Int64?>]:
      [LastSuccessfulExecutionCountImportedDeltas <Int64?>]:
      [LastSuccessfulExecutionCountImportedReferenceDeltas <Int64?>]:
      [LastSuccessfulExecutionErrorCode <String>]:
      [LastSuccessfulExecutionErrorMessage <String>]:
      [LastSuccessfulExecutionErrorTenantActionable <Boolean?>]:
      [LastSuccessfulExecutionState <String>]: synchronizationTaskExecutionResult
      [LastSuccessfulExecutionTimeBegan <DateTime?>]:
      [LastSuccessfulExecutionTimeEnded <DateTime?>]:
      [LastSuccessfulExecutionWithExportActivityIdentifier <String>]:
      [LastSuccessfulExecutionWithExportCountEntitled <Int64?>]:
      [LastSuccessfulExecutionWithExportCountEntitledForProvisioning <Int64?>]:
      [LastSuccessfulExecutionWithExportCountEscrowed <Int64?>]:
      [LastSuccessfulExecutionWithExportCountEscrowedRaw <Int64?>]:
      [LastSuccessfulExecutionWithExportCountExported <Int64?>]:
      [LastSuccessfulExecutionWithExportCountExports <Int64?>]:
      [LastSuccessfulExecutionWithExportCountImported <Int64?>]:
      [LastSuccessfulExecutionWithExportCountImportedDeltas <Int64?>]:
      [LastSuccessfulExecutionWithExportCountImportedReferenceDeltas <Int64?>]:
      [LastSuccessfulExecutionWithExportState <String>]: synchronizationTaskExecutionResult
      [LastSuccessfulExecutionWithExportTimeBegan <DateTime?>]:
      [LastSuccessfulExecutionWithExportTimeEnded <DateTime?>]:
      [LastSuccessfulExecutionWithExportsErrorCode <String>]:
      [LastSuccessfulExecutionWithExportsErrorMessage <String>]:
      [LastSuccessfulExecutionWithExportsErrorTenantActionable <Boolean?>]:
      [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
        [CompletedUnits <Int64?>]:
        [ProgressObservationDateTime <DateTime?>]:
        [TotalUnits <Int64?>]:
        [Units <String>]:
      [QuarantineCurrentBegan <DateTime?>]:
      [QuarantineNextAttempt <DateTime?>]:
      [QuarantineReason <String>]: quarantineReason
      [QuarantineSeriesBegan <DateTime?>]:
      [QuarantineSeriesCount <Int64?>]:
      [SteadyStateFirstAchievedTime <DateTime?>]:
      [SteadyStateLastAchievedTime <DateTime?>]:
      [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
        [Key <String>]:
        [Value <Int64?>]:
      [TroubleshootingUrl <String>]:
    [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
      [Name <String>]:
      [Value <String>]:
    [TemplateId <String>]:
  [SynchronizationSecrets <IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]>]:
    [Key <String>]: synchronizationSecret
    [Value <String>]:
  [SynchronizationTemplates <IMicrosoftGraphSynchronizationTemplate[]>]:
    [Id <String>]:
    [ApplicationId <String>]:
    [Default <Boolean?>]:
    [Description <String>]:
    [Discoverable <Boolean?>]:
    [FactoryTag <String>]:
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [SchemaDirectories <IMicrosoftGraphDirectoryDefinition[]>]:
    [SchemaId <String>]:
    [SchemaProvisioningTaskIdentifier <String>]:
    [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [SchemaVersion <String>]:
  [Tags <String[]>]:
  [TransitiveMemberOf <IMicrosoftGraphDirectoryObject[]>]:
 
CREATEDOBJECTS <IMicrosoftGraphDirectoryObject[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [DeletedDateTime <DateTime?>]:
 
KEYCREDENTIALS <IMicrosoftGraphKeyCredential[]>: HELP MESSAGE MISSING
  [CustomKeyIdentifier <Byte[]>]:
  [DisplayName <String>]:
  [EndDateTime <DateTime?>]:
  [Key <Byte[]>]:
  [KeyId <String>]:
  [StartDateTime <DateTime?>]:
  [Type <String>]:
  [Usage <String>]:
 
LICENSEDETAILS <IMicrosoftGraphLicenseDetails[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [ServicePlans <IMicrosoftGraphServicePlanInfo[]>]:
    [AppliesTo <String>]:
    [ProvisioningStatus <String>]:
    [ServicePlanId <String>]:
    [ServicePlanName <String>]:
  [SkuId <String>]:
  [SkuPartNumber <String>]:
 
MEMBEROF <IMicrosoftGraphDirectoryObject[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [DeletedDateTime <DateTime?>]:
 
OAUTH2PERMISSIONGRANTS <IMicrosoftGraphOAuth2PermissionGrant[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [ClientId <String>]:
  [ConsentType <String>]:
  [ExpiryTime <DateTime?>]:
  [PrincipalId <String>]:
  [ResourceId <String>]:
  [Scope <String>]:
  [StartTime <DateTime?>]:
 
OWNEDOBJECTS <IMicrosoftGraphDirectoryObject[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [DeletedDateTime <DateTime?>]:
 
OWNERS <IMicrosoftGraphDirectoryObject[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [DeletedDateTime <DateTime?>]:
 
PASSWORDCREDENTIALS <IMicrosoftGraphPasswordCredential[]>: HELP MESSAGE MISSING
  [CustomKeyIdentifier <Byte[]>]:
  [DisplayName <String>]:
  [EndDateTime <DateTime?>]:
  [Hint <String>]:
  [KeyId <String>]:
  [SecretText <String>]:
  [StartDateTime <DateTime?>]:
 
POLICIES <IMicrosoftGraphDirectoryObject[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [DeletedDateTime <DateTime?>]:
 
PUBLISHEDPERMISSIONSCOPES <IMicrosoftGraphPermissionScope[]>: HELP MESSAGE MISSING
  [AdminConsentDescription <String>]:
  [AdminConsentDisplayName <String>]:
  [Id <String>]:
  [IsEnabled <Boolean?>]:
  [Origin <String>]:
  [Type <String>]:
  [UserConsentDescription <String>]:
  [UserConsentDisplayName <String>]:
  [Value <String>]:
 
SYNCHRONIZATIONJOBS <IMicrosoftGraphSynchronizationJob[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [ScheduleExpiration <DateTime?>]:
  [ScheduleInterval <TimeSpan?>]:
  [ScheduleState <String>]: synchronizationScheduleState
  [SchemaDirectories <IMicrosoftGraphDirectoryDefinition[]>]:
    [Id <String>]:
    [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
    [DiscoveryDateTime <DateTime?>]:
    [Name <String>]:
    [Objects <IMicrosoftGraphObjectDefinition[]>]:
      [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
        [Anchor <Boolean?>]:
        [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
          [Key <String>]:
          [Value <String>]:
        [CaseExact <Boolean?>]:
        [DefaultValue <String>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
          [Key <String>]:
          [Value <String>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [SchemaId <String>]:
  [SchemaProvisioningTaskIdentifier <String>]:
  [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [SchemaVersion <String>]:
  [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
    [Code <String>]: synchronizationStatusCode
    [CountSuccessiveCompleteFailures <Int64?>]:
    [EscrowsPruned <Boolean?>]:
    [LastExecutionActivityIdentifier <String>]:
    [LastExecutionCountEntitled <Int64?>]:
    [LastExecutionCountEntitledForProvisioning <Int64?>]:
    [LastExecutionCountEscrowed <Int64?>]:
    [LastExecutionCountEscrowedRaw <Int64?>]:
    [LastExecutionCountExported <Int64?>]:
    [LastExecutionCountExports <Int64?>]:
    [LastExecutionCountImported <Int64?>]:
    [LastExecutionCountImportedDeltas <Int64?>]:
    [LastExecutionCountImportedReferenceDeltas <Int64?>]:
    [LastExecutionErrorCode <String>]:
    [LastExecutionErrorMessage <String>]:
    [LastExecutionErrorTenantActionable <Boolean?>]:
    [LastExecutionState <String>]: synchronizationTaskExecutionResult
    [LastExecutionTimeBegan <DateTime?>]:
    [LastExecutionTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionActivityIdentifier <String>]:
    [LastSuccessfulExecutionCountEntitled <Int64?>]:
    [LastSuccessfulExecutionCountEntitledForProvisioning <Int64?>]:
    [LastSuccessfulExecutionCountEscrowed <Int64?>]:
    [LastSuccessfulExecutionCountEscrowedRaw <Int64?>]:
    [LastSuccessfulExecutionCountExported <Int64?>]:
    [LastSuccessfulExecutionCountExports <Int64?>]:
    [LastSuccessfulExecutionCountImported <Int64?>]:
    [LastSuccessfulExecutionCountImportedDeltas <Int64?>]:
    [LastSuccessfulExecutionCountImportedReferenceDeltas <Int64?>]:
    [LastSuccessfulExecutionErrorCode <String>]:
    [LastSuccessfulExecutionErrorMessage <String>]:
    [LastSuccessfulExecutionErrorTenantActionable <Boolean?>]:
    [LastSuccessfulExecutionState <String>]: synchronizationTaskExecutionResult
    [LastSuccessfulExecutionTimeBegan <DateTime?>]:
    [LastSuccessfulExecutionTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionWithExportActivityIdentifier <String>]:
    [LastSuccessfulExecutionWithExportCountEntitled <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEntitledForProvisioning <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEscrowed <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEscrowedRaw <Int64?>]:
    [LastSuccessfulExecutionWithExportCountExported <Int64?>]:
    [LastSuccessfulExecutionWithExportCountExports <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImported <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImportedDeltas <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImportedReferenceDeltas <Int64?>]:
    [LastSuccessfulExecutionWithExportState <String>]: synchronizationTaskExecutionResult
    [LastSuccessfulExecutionWithExportTimeBegan <DateTime?>]:
    [LastSuccessfulExecutionWithExportTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionWithExportsErrorCode <String>]:
    [LastSuccessfulExecutionWithExportsErrorMessage <String>]:
    [LastSuccessfulExecutionWithExportsErrorTenantActionable <Boolean?>]:
    [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
      [CompletedUnits <Int64?>]:
      [ProgressObservationDateTime <DateTime?>]:
      [TotalUnits <Int64?>]:
      [Units <String>]:
    [QuarantineCurrentBegan <DateTime?>]:
    [QuarantineNextAttempt <DateTime?>]:
    [QuarantineReason <String>]: quarantineReason
    [QuarantineSeriesBegan <DateTime?>]:
    [QuarantineSeriesCount <Int64?>]:
    [SteadyStateFirstAchievedTime <DateTime?>]:
    [SteadyStateLastAchievedTime <DateTime?>]:
    [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
      [Key <String>]:
      [Value <Int64?>]:
    [TroubleshootingUrl <String>]:
  [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
    [Name <String>]:
    [Value <String>]:
  [TemplateId <String>]:
 
SYNCHRONIZATIONSECRETS <IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]>: HELP MESSAGE MISSING
  [Key <String>]: synchronizationSecret
  [Value <String>]:
 
SYNCHRONIZATIONTEMPLATES <IMicrosoftGraphSynchronizationTemplate[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [ApplicationId <String>]:
  [Default <Boolean?>]:
  [Description <String>]:
  [Discoverable <Boolean?>]:
  [FactoryTag <String>]:
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Key <String>]:
    [Value <String>]:
  [SchemaDirectories <IMicrosoftGraphDirectoryDefinition[]>]:
    [Id <String>]:
    [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
    [DiscoveryDateTime <DateTime?>]:
    [Name <String>]:
    [Objects <IMicrosoftGraphObjectDefinition[]>]:
      [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
        [Anchor <Boolean?>]:
        [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
          [Key <String>]:
          [Value <String>]:
        [CaseExact <Boolean?>]:
        [DefaultValue <String>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [SchemaId <String>]:
  [SchemaProvisioningTaskIdentifier <String>]:
  [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [SchemaVersion <String>]:
 
TRANSITIVEMEMBEROF <IMicrosoftGraphDirectoryObject[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [DeletedDateTime <DateTime?>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipal
#>

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAddIn[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for ADDINS properties and create a hash table.
    ${AddIns},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${AppDisplayName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${AppId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${AppOwnerOrganizationId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for APPROLEASSIGNEDTO properties and create a hash table.
    ${AppRoleAssignedTo},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for APPROLEASSIGNMENTS properties and create a hash table.
    ${AppRoleAssignments},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRole[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for APPROLES properties and create a hash table.
    ${AppRoles},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${ApplicationTemplateId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for CREATEDOBJECTS properties and create a hash table.
    ${CreatedObjects},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # HELP MESSAGE MISSING
    ${DeletedDateTime},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Homepage},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${InfoLogoUrl},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${InfoMarketingUrl},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${InfoPrivacyStatementUrl},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${InfoSupportUrl},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${InfoTermsOfServiceUrl},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphKeyCredential[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for KEYCREDENTIALS properties and create a hash table.
    ${KeyCredentials},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLicenseDetails[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for LICENSEDETAILS properties and create a hash table.
    ${LicenseDetails},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${LogoutUrl},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for MEMBEROF properties and create a hash table.
    ${MemberOf},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # HELP MESSAGE MISSING
    ${NotificationEmailAddresses},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphOAuth2PermissionGrant[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for OAUTH2PERMISSIONGRANTS properties and create a hash table.
    ${Oauth2PermissionGrants},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for OWNEDOBJECTS properties and create a hash table.
    ${OwnedObjects},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for OWNERS properties and create a hash table.
    ${Owners},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPasswordCredential[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for PASSWORDCREDENTIALS properties and create a hash table.
    ${PasswordCredentials},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for POLICIES properties and create a hash table.
    ${Policies},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${PreferredTokenSigningKeyThumbprint},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPermissionScope[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for PUBLISHEDPERMISSIONSCOPES properties and create a hash table.
    ${PublishedPermissionScopes},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${PublisherName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # HELP MESSAGE MISSING
    ${ReplyUrls},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${SamlMetadataUrl},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # HELP MESSAGE MISSING
    ${ServicePrincipalNames},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${SynchronizationId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationJob[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for SYNCHRONIZATIONJOBS properties and create a hash table.
    ${SynchronizationJobs},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for SYNCHRONIZATIONSECRETS properties and create a hash table.
    ${SynchronizationSecrets},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationTemplate[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for SYNCHRONIZATIONTEMPLATES properties and create a hash table.
    ${SynchronizationTemplates},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # HELP MESSAGE MISSING
    ${Tags},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for TRANSITIVEMEMBEROF properties and create a hash table.
    ${TransitiveMemberOf},

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Create = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipal_Create';
            CreateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipal_CreateExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Invoke function Ping
.Description
Invoke function Ping
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/ping-mgserviceprincipalssynchronization
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
System.String
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/ping-mgserviceprincipalssynchronization
#>

function Ping-MgServicePrincipalsSynchronization {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='Ping', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Ping', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Ping = 'Microsoft.Graph.Identity.ServicePrincipal.private\Ping-MgServicePrincipalsSynchronization_Ping';
            PingViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Ping-MgServicePrincipalsSynchronization_PingViaIdentity';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Invoke action deletePasswordSingleSignOnCredentials
.Description
Invoke action deletePasswordSingleSignOnCredentials
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/remove-mgserviceprincipalpasswordsinglesignoncredentials
.Inputs
Microsoft.Graph.PowerShell.Models.IBodyParameterServicePrincipalsDeletePasswordSingleSignOnCredentialsRequestBody
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.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 <IBodyParameterServicePrincipalsDeletePasswordSingleSignOnCredentialsRequestBody>: HELP MESSAGE MISSING
  [Id <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/remove-mgserviceprincipalpasswordsinglesignoncredentials
#>

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

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

    [Parameter(ParameterSetName='Delete', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IBodyParameterServicePrincipalsDeletePasswordSingleSignOnCredentialsRequestBody]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='DeleteExpanded')]
    [Parameter(ParameterSetName='DeleteViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Id},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Delete = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipalPasswordSingleSignOnCredentials_Delete';
            DeleteExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipalPasswordSingleSignOnCredentials_DeleteExpanded';
            DeleteViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipalPasswordSingleSignOnCredentials_DeleteViaIdentity';
            DeleteViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipalPasswordSingleSignOnCredentials_DeleteViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Delete entity from servicePrincipals
.Description
Delete entity from servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/remove-mgserviceprincipal
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/remove-mgserviceprincipal
#>

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Delete = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipal_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipal_DeleteViaIdentity';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Invoke action restart
.Description
Invoke action restart
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/restart-mgserviceprincipalsynchronizationjob
.Inputs
Microsoft.Graph.PowerShell.Models.IBodyParameterServicePrincipalsSynchronizationJobsRestartRequestBody
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.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 <IBodyParameterServicePrincipalsSynchronizationJobsRestartRequestBody>: HELP MESSAGE MISSING
  [CriterionResetScope <String>]: synchronizationJobRestartScope
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/restart-mgserviceprincipalsynchronizationjob
#>

function Restart-MgServicePrincipalSynchronizationJob {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='RestartExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Restart', Mandatory)]
    [Parameter(ParameterSetName='RestartExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Restart', Mandatory)]
    [Parameter(ParameterSetName='RestartExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: synchronizationJob-id of synchronizationJob
    ${SynchronizationJobId},

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

    [Parameter(ParameterSetName='Restart', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='RestartViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IBodyParameterServicePrincipalsSynchronizationJobsRestartRequestBody]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='RestartExpanded')]
    [Parameter(ParameterSetName='RestartViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # synchronizationJobRestartScope
    ${CriterionResetScope},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Restart = 'Microsoft.Graph.Identity.ServicePrincipal.private\Restart-MgServicePrincipalSynchronizationJob_Restart';
            RestartExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Restart-MgServicePrincipalSynchronizationJob_RestartExpanded';
            RestartViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Restart-MgServicePrincipalSynchronizationJob_RestartViaIdentity';
            RestartViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Restart-MgServicePrincipalSynchronizationJob_RestartViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Invoke action start
.Description
Invoke action start
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/start-mgserviceprincipalsynchronizationjob
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/start-mgserviceprincipalsynchronizationjob
#>

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

    [Parameter(ParameterSetName='Start', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: synchronizationJob-id of synchronizationJob
    ${SynchronizationJobId},

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Start = 'Microsoft.Graph.Identity.ServicePrincipal.private\Start-MgServicePrincipalSynchronizationJob_Start';
            StartViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Start-MgServicePrincipalSynchronizationJob_StartViaIdentity';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Invoke action stop
.Description
Invoke action stop
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/stop-mgserviceprincipalsynchronizationjob
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/stop-mgserviceprincipalsynchronizationjob
#>

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

    [Parameter(ParameterSetName='Stop', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: synchronizationJob-id of synchronizationJob
    ${SynchronizationJobId},

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Stop = 'Microsoft.Graph.Identity.ServicePrincipal.private\Stop-MgServicePrincipalSynchronizationJob_Stop';
            StopViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Stop-MgServicePrincipalSynchronizationJob_StopViaIdentity';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Invoke action pause
.Description
Invoke action pause
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/suspend-mgserviceprincipalsynchronizationjob
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.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 <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/suspend-mgserviceprincipalsynchronizationjob
#>

function Suspend-MgServicePrincipalSynchronizationJob {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Pause', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Pause', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Pause', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: synchronizationJob-id of synchronizationJob
    ${SynchronizationJobId},

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Pause = 'Microsoft.Graph.Identity.ServicePrincipal.private\Suspend-MgServicePrincipalSynchronizationJob_Pause';
            PauseViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Suspend-MgServicePrincipalSynchronizationJob_PauseViaIdentity';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Invoke action validateCredentials
.Description
Invoke action validateCredentials
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/test-mgserviceprincipalsynchronizationjobcredentials
.Inputs
Microsoft.Graph.PowerShell.Models.IBodyParameterServicePrincipalsSynchronizationJobsValidateCredentialsRequestBody
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.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 <IBodyParameterServicePrincipalsSynchronizationJobsValidateCredentialsRequestBody>: HELP MESSAGE MISSING
  [ApplicationIdentifier <String>]:
  [Credentials <IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]>]:
    [Key <String>]: synchronizationSecret
    [Value <String>]:
  [TemplateId <String>]:
  [UseSavedCredentials <Boolean?>]:
 
CREDENTIALS <IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]>: HELP MESSAGE MISSING
  [Key <String>]: synchronizationSecret
  [Value <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/test-mgserviceprincipalsynchronizationjobcredentials
#>

function Test-MgServicePrincipalSynchronizationJobCredentials {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='ValidateExpanded1', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Validate', Mandatory)]
    [Parameter(ParameterSetName='Validate1', Mandatory)]
    [Parameter(ParameterSetName='ValidateExpanded', Mandatory)]
    [Parameter(ParameterSetName='ValidateExpanded1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Validate', Mandatory)]
    [Parameter(ParameterSetName='ValidateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: synchronizationJob-id of synchronizationJob
    ${SynchronizationJobId},

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

    [Parameter(ParameterSetName='Validate', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='Validate1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='ValidateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IBodyParameterServicePrincipalsSynchronizationJobsValidateCredentialsRequestBody]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='ValidateExpanded')]
    [Parameter(ParameterSetName='ValidateExpanded1')]
    [Parameter(ParameterSetName='ValidateViaIdentityExpanded')]
    [Parameter(ParameterSetName='ValidateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${ApplicationIdentifier},

    [Parameter(ParameterSetName='ValidateExpanded')]
    [Parameter(ParameterSetName='ValidateExpanded1')]
    [Parameter(ParameterSetName='ValidateViaIdentityExpanded')]
    [Parameter(ParameterSetName='ValidateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for CREDENTIALS properties and create a hash table.
    ${Credentials},

    [Parameter(ParameterSetName='ValidateExpanded')]
    [Parameter(ParameterSetName='ValidateExpanded1')]
    [Parameter(ParameterSetName='ValidateViaIdentityExpanded')]
    [Parameter(ParameterSetName='ValidateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${TemplateId},

    [Parameter(ParameterSetName='ValidateExpanded')]
    [Parameter(ParameterSetName='ValidateExpanded1')]
    [Parameter(ParameterSetName='ValidateViaIdentityExpanded')]
    [Parameter(ParameterSetName='ValidateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # HELP MESSAGE MISSING
    ${UseSavedCredentials},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Validate = 'Microsoft.Graph.Identity.ServicePrincipal.private\Test-MgServicePrincipalSynchronizationJobCredentials_Validate';
            Validate1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Test-MgServicePrincipalSynchronizationJobCredentials_Validate1';
            ValidateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Test-MgServicePrincipalSynchronizationJobCredentials_ValidateExpanded';
            ValidateExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Test-MgServicePrincipalSynchronizationJobCredentials_ValidateExpanded1';
            ValidateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Test-MgServicePrincipalSynchronizationJobCredentials_ValidateViaIdentity';
            ValidateViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Test-MgServicePrincipalSynchronizationJobCredentials_ValidateViaIdentity1';
            ValidateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Test-MgServicePrincipalSynchronizationJobCredentials_ValidateViaIdentityExpanded';
            ValidateViaIdentityExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Test-MgServicePrincipalSynchronizationJobCredentials_ValidateViaIdentityExpanded1';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Update the navigation property appRoleAssignedTo in servicePrincipals
.Description
Update the navigation property appRoleAssignedTo in servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalapproleassignedto
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment
.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 <IMicrosoftGraphAppRoleAssignment>: HELP MESSAGE MISSING
  [Id <String>]:
  [AppRoleId <String>]:
  [CreationTimestamp <DateTime?>]:
  [PrincipalDisplayName <String>]:
  [PrincipalId <String>]:
  [PrincipalType <String>]:
  [ResourceDisplayName <String>]:
  [ResourceId <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalapproleassignedto
#>

function Update-MgServicePrincipalAppRoleAssignedTo {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: appRoleAssignment-id of appRoleAssignment
    ${AppRoleAssignmentId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${AppRoleId},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # HELP MESSAGE MISSING
    ${CreationTimestamp},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${PrincipalDisplayName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${PrincipalId},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${PrincipalType},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${ResourceDisplayName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${ResourceId},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Update = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalAppRoleAssignedTo_Update';
            UpdateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalAppRoleAssignedTo_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalAppRoleAssignedTo_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalAppRoleAssignedTo_UpdateViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Update the navigation property appRoleAssignments in servicePrincipals
.Description
Update the navigation property appRoleAssignments in servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalapproleassignment
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment
.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 <IMicrosoftGraphAppRoleAssignment>: HELP MESSAGE MISSING
  [Id <String>]:
  [AppRoleId <String>]:
  [CreationTimestamp <DateTime?>]:
  [PrincipalDisplayName <String>]:
  [PrincipalId <String>]:
  [PrincipalType <String>]:
  [ResourceDisplayName <String>]:
  [ResourceId <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalapproleassignment
#>

function Update-MgServicePrincipalAppRoleAssignment {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: appRoleAssignment-id of appRoleAssignment
    ${AppRoleAssignmentId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${AppRoleId},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # HELP MESSAGE MISSING
    ${CreationTimestamp},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${PrincipalDisplayName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${PrincipalId},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${PrincipalType},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${ResourceDisplayName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${ResourceId},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Update = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalAppRoleAssignment_Update';
            UpdateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalAppRoleAssignment_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalAppRoleAssignment_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalAppRoleAssignment_UpdateViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Update the navigation property licenseDetails in servicePrincipals
.Description
Update the navigation property licenseDetails in servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipallicensedetail
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLicenseDetails
.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 <IMicrosoftGraphLicenseDetails>: HELP MESSAGE MISSING
  [Id <String>]:
  [ServicePlans <IMicrosoftGraphServicePlanInfo[]>]:
    [AppliesTo <String>]:
    [ProvisioningStatus <String>]:
    [ServicePlanId <String>]:
    [ServicePlanName <String>]:
  [SkuId <String>]:
  [SkuPartNumber <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
 
SERVICEPLANS <IMicrosoftGraphServicePlanInfo[]>: HELP MESSAGE MISSING
  [AppliesTo <String>]:
  [ProvisioningStatus <String>]:
  [ServicePlanId <String>]:
  [ServicePlanName <String>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipallicensedetail
#>

function Update-MgServicePrincipalLicenseDetail {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: licenseDetails-id of licenseDetails
    ${LicenseDetailsId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLicenseDetails]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePlanInfo[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for SERVICEPLANS properties and create a hash table.
    ${ServicePlans},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${SkuId},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${SkuPartNumber},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Update = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalLicenseDetail_Update';
            UpdateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalLicenseDetail_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalLicenseDetail_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalLicenseDetail_UpdateViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Invoke action updatePasswordSingleSignOnCredentials
.Description
Invoke action updatePasswordSingleSignOnCredentials
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalpasswordsinglesignoncredentials
.Inputs
Microsoft.Graph.PowerShell.Models.IBodyParameterServicePrincipalsUpdatePasswordSingleSignOnCredentialsRequestBody
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.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 <IBodyParameterServicePrincipalsUpdatePasswordSingleSignOnCredentialsRequestBody>: HELP MESSAGE MISSING
  [Credentials <IMicrosoftGraphCredential[]>]:
    [FieldId <String>]:
    [Type <String>]:
    [Value <String>]:
  [Id <String>]:
 
CREDENTIALS <IMicrosoftGraphCredential[]>: HELP MESSAGE MISSING
  [FieldId <String>]:
  [Type <String>]:
  [Value <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalpasswordsinglesignoncredentials
#>

function Update-MgServicePrincipalPasswordSingleSignOnCredentials {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IBodyParameterServicePrincipalsUpdatePasswordSingleSignOnCredentialsRequestBody]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphCredential[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for CREDENTIALS properties and create a hash table.
    ${Credentials},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Id},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Update = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalPasswordSingleSignOnCredentials_Update';
            UpdateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalPasswordSingleSignOnCredentials_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalPasswordSingleSignOnCredentials_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalPasswordSingleSignOnCredentials_UpdateViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Update the navigation property directories in servicePrincipals
.Description
Update the navigation property directories in servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalsynchronizationjobschemadirectory
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition
.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 <IMicrosoftGraphDirectoryDefinition>: HELP MESSAGE MISSING
  [Id <String>]:
  [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
  [DiscoveryDateTime <DateTime?>]:
  [Name <String>]:
  [Objects <IMicrosoftGraphObjectDefinition[]>]:
    [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
      [Anchor <Boolean?>]:
      [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
        [Key <String>]:
        [Value <String>]:
      [CaseExact <Boolean?>]:
      [DefaultValue <String>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Key <String>]:
        [Value <String>]:
      [Multivalued <Boolean?>]:
      [Mutability <String>]: mutability
      [Name <String>]:
      [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
        [ReferencedObjectName <String>]:
        [ReferencedProperty <String>]:
      [Required <Boolean?>]:
      [Type <String>]: attributeType
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Name <String>]:
    [SupportedApis <String[]>]:
  [ReadOnly <Boolean?>]:
  [Version <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
 
OBJECTS <IMicrosoftGraphObjectDefinition[]>: HELP MESSAGE MISSING
  [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
    [Anchor <Boolean?>]:
    [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Key <String>]:
      [Value <String>]:
    [CaseExact <Boolean?>]:
    [DefaultValue <String>]:
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Multivalued <Boolean?>]:
    [Mutability <String>]: mutability
    [Name <String>]:
    [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
      [ReferencedObjectName <String>]:
      [ReferencedProperty <String>]:
    [Required <Boolean?>]:
    [Type <String>]: attributeType
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
  [Name <String>]:
  [SupportedApis <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalsynchronizationjobschemadirectory
#>

function Update-MgServicePrincipalSynchronizationJobSchemaDirectory {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: directoryDefinition-id of directoryDefinition
    ${DirectoryDefinitionId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: synchronizationJob-id of synchronizationJob
    ${SynchronizationJobId},

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # HELP MESSAGE MISSING
    ${DiscoveryDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Id},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphObjectDefinition[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for OBJECTS properties and create a hash table.
    ${Objects},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Version},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Update = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationJobSchemaDirectory_Update';
            UpdateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationJobSchemaDirectory_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationJobSchemaDirectory_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationJobSchemaDirectory_UpdateViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Update the navigation property schema in servicePrincipals
.Description
Update the navigation property schema in servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalsynchronizationjobschema
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationSchema
.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 <IMicrosoftGraphSynchronizationSchema>: HELP MESSAGE MISSING
  [Id <String>]:
  [Directories <IMicrosoftGraphDirectoryDefinition[]>]:
    [Id <String>]:
    [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
    [DiscoveryDateTime <DateTime?>]:
    [Name <String>]:
    [Objects <IMicrosoftGraphObjectDefinition[]>]:
      [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
        [Anchor <Boolean?>]:
        [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
          [Key <String>]:
          [Value <String>]:
        [CaseExact <Boolean?>]:
        [DefaultValue <String>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
          [Key <String>]:
          [Value <String>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [ProvisioningTaskIdentifier <String>]:
  [SynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [Version <String>]:
 
DIRECTORIES <IMicrosoftGraphDirectoryDefinition[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
  [DiscoveryDateTime <DateTime?>]:
  [Name <String>]:
  [Objects <IMicrosoftGraphObjectDefinition[]>]:
    [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
      [Anchor <Boolean?>]:
      [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
        [Key <String>]:
        [Value <String>]:
      [CaseExact <Boolean?>]:
      [DefaultValue <String>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Key <String>]:
        [Value <String>]:
      [Multivalued <Boolean?>]:
      [Mutability <String>]: mutability
      [Name <String>]:
      [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
        [ReferencedObjectName <String>]:
        [ReferencedProperty <String>]:
      [Required <Boolean?>]:
      [Type <String>]: attributeType
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Name <String>]:
    [SupportedApis <String[]>]:
  [ReadOnly <Boolean?>]:
  [Version <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
 
SYNCHRONIZATIONRULES <IMicrosoftGraphSynchronizationRule[]>: HELP MESSAGE MISSING
  [Editable <Boolean?>]:
  [Id <String>]:
  [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Key <String>]:
    [Value <String>]:
  [Name <String>]:
  [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
    [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
      [DefaultValue <String>]:
      [ExportMissingReferences <Boolean?>]:
      [FlowBehavior <String>]: attributeFlowBehavior
      [FlowType <String>]: attributeFlowType
      [MatchingPriority <Int32?>]:
      [SourceExpression <String>]:
      [SourceName <String>]:
      [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [Key <String>]:
        [ValueExpression <String>]:
        [ValueName <String>]:
        [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [ValueType <String>]: attributeMappingSourceType
      [SourceType <String>]: attributeMappingSourceType
      [TargetAttributeName <String>]:
    [Enabled <Boolean?>]:
    [FlowTypes <String>]: objectFlowTypes
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Name <String>]:
    [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [Clauses <IMicrosoftGraphFilterClause[]>]:
        [OperatorName <String>]:
        [SourceOperandName <String>]:
        [TargetOperandValues <String[]>]:
      [Name <String>]:
    [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
    [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
    [SourceObjectName <String>]:
    [TargetObjectName <String>]:
  [Priority <Int32?>]:
  [SourceDirectoryName <String>]:
  [TargetDirectoryName <String>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalsynchronizationjobschema
#>

function Update-MgServicePrincipalSynchronizationJobSchema {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: synchronizationJob-id of synchronizationJob
    ${SynchronizationJobId},

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationSchema]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for DIRECTORIES properties and create a hash table.
    ${Directories},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${ProvisioningTaskIdentifier},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationRule[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for SYNCHRONIZATIONRULES properties and create a hash table.
    ${SynchronizationRules},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Version},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Update = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationJobSchema_Update';
            UpdateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationJobSchema_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationJobSchema_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationJobSchema_UpdateViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Update the navigation property jobs in servicePrincipals
.Description
Update the navigation property jobs in servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalsynchronizationjob
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationJob
.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 <IMicrosoftGraphSynchronizationJob>: HELP MESSAGE MISSING
  [Id <String>]:
  [ScheduleExpiration <DateTime?>]:
  [ScheduleInterval <TimeSpan?>]:
  [ScheduleState <String>]: synchronizationScheduleState
  [SchemaDirectories <IMicrosoftGraphDirectoryDefinition[]>]:
    [Id <String>]:
    [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
    [DiscoveryDateTime <DateTime?>]:
    [Name <String>]:
    [Objects <IMicrosoftGraphObjectDefinition[]>]:
      [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
        [Anchor <Boolean?>]:
        [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
          [Key <String>]:
          [Value <String>]:
        [CaseExact <Boolean?>]:
        [DefaultValue <String>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
          [Key <String>]:
          [Value <String>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [SchemaId <String>]:
  [SchemaProvisioningTaskIdentifier <String>]:
  [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [SchemaVersion <String>]:
  [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
    [Code <String>]: synchronizationStatusCode
    [CountSuccessiveCompleteFailures <Int64?>]:
    [EscrowsPruned <Boolean?>]:
    [LastExecutionActivityIdentifier <String>]:
    [LastExecutionCountEntitled <Int64?>]:
    [LastExecutionCountEntitledForProvisioning <Int64?>]:
    [LastExecutionCountEscrowed <Int64?>]:
    [LastExecutionCountEscrowedRaw <Int64?>]:
    [LastExecutionCountExported <Int64?>]:
    [LastExecutionCountExports <Int64?>]:
    [LastExecutionCountImported <Int64?>]:
    [LastExecutionCountImportedDeltas <Int64?>]:
    [LastExecutionCountImportedReferenceDeltas <Int64?>]:
    [LastExecutionErrorCode <String>]:
    [LastExecutionErrorMessage <String>]:
    [LastExecutionErrorTenantActionable <Boolean?>]:
    [LastExecutionState <String>]: synchronizationTaskExecutionResult
    [LastExecutionTimeBegan <DateTime?>]:
    [LastExecutionTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionActivityIdentifier <String>]:
    [LastSuccessfulExecutionCountEntitled <Int64?>]:
    [LastSuccessfulExecutionCountEntitledForProvisioning <Int64?>]:
    [LastSuccessfulExecutionCountEscrowed <Int64?>]:
    [LastSuccessfulExecutionCountEscrowedRaw <Int64?>]:
    [LastSuccessfulExecutionCountExported <Int64?>]:
    [LastSuccessfulExecutionCountExports <Int64?>]:
    [LastSuccessfulExecutionCountImported <Int64?>]:
    [LastSuccessfulExecutionCountImportedDeltas <Int64?>]:
    [LastSuccessfulExecutionCountImportedReferenceDeltas <Int64?>]:
    [LastSuccessfulExecutionErrorCode <String>]:
    [LastSuccessfulExecutionErrorMessage <String>]:
    [LastSuccessfulExecutionErrorTenantActionable <Boolean?>]:
    [LastSuccessfulExecutionState <String>]: synchronizationTaskExecutionResult
    [LastSuccessfulExecutionTimeBegan <DateTime?>]:
    [LastSuccessfulExecutionTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionWithExportActivityIdentifier <String>]:
    [LastSuccessfulExecutionWithExportCountEntitled <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEntitledForProvisioning <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEscrowed <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEscrowedRaw <Int64?>]:
    [LastSuccessfulExecutionWithExportCountExported <Int64?>]:
    [LastSuccessfulExecutionWithExportCountExports <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImported <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImportedDeltas <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImportedReferenceDeltas <Int64?>]:
    [LastSuccessfulExecutionWithExportState <String>]: synchronizationTaskExecutionResult
    [LastSuccessfulExecutionWithExportTimeBegan <DateTime?>]:
    [LastSuccessfulExecutionWithExportTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionWithExportsErrorCode <String>]:
    [LastSuccessfulExecutionWithExportsErrorMessage <String>]:
    [LastSuccessfulExecutionWithExportsErrorTenantActionable <Boolean?>]:
    [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
      [CompletedUnits <Int64?>]:
      [ProgressObservationDateTime <DateTime?>]:
      [TotalUnits <Int64?>]:
      [Units <String>]:
    [QuarantineCurrentBegan <DateTime?>]:
    [QuarantineNextAttempt <DateTime?>]:
    [QuarantineReason <String>]: quarantineReason
    [QuarantineSeriesBegan <DateTime?>]:
    [QuarantineSeriesCount <Int64?>]:
    [SteadyStateFirstAchievedTime <DateTime?>]:
    [SteadyStateLastAchievedTime <DateTime?>]:
    [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
      [Key <String>]:
      [Value <Int64?>]:
    [TroubleshootingUrl <String>]:
  [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
    [Name <String>]:
    [Value <String>]:
  [TemplateId <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
 
SCHEMADIRECTORIES <IMicrosoftGraphDirectoryDefinition[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
  [DiscoveryDateTime <DateTime?>]:
  [Name <String>]:
  [Objects <IMicrosoftGraphObjectDefinition[]>]:
    [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
      [Anchor <Boolean?>]:
      [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
        [Key <String>]:
        [Value <String>]:
      [CaseExact <Boolean?>]:
      [DefaultValue <String>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Key <String>]:
        [Value <String>]:
      [Multivalued <Boolean?>]:
      [Mutability <String>]: mutability
      [Name <String>]:
      [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
        [ReferencedObjectName <String>]:
        [ReferencedProperty <String>]:
      [Required <Boolean?>]:
      [Type <String>]: attributeType
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Name <String>]:
    [SupportedApis <String[]>]:
  [ReadOnly <Boolean?>]:
  [Version <String>]:
 
SCHEMASYNCHRONIZATIONRULES <IMicrosoftGraphSynchronizationRule[]>: HELP MESSAGE MISSING
  [Editable <Boolean?>]:
  [Id <String>]:
  [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Key <String>]:
    [Value <String>]:
  [Name <String>]:
  [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
    [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
      [DefaultValue <String>]:
      [ExportMissingReferences <Boolean?>]:
      [FlowBehavior <String>]: attributeFlowBehavior
      [FlowType <String>]: attributeFlowType
      [MatchingPriority <Int32?>]:
      [SourceExpression <String>]:
      [SourceName <String>]:
      [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [Key <String>]:
        [ValueExpression <String>]:
        [ValueName <String>]:
        [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [ValueType <String>]: attributeMappingSourceType
      [SourceType <String>]: attributeMappingSourceType
      [TargetAttributeName <String>]:
    [Enabled <Boolean?>]:
    [FlowTypes <String>]: objectFlowTypes
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Name <String>]:
    [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [Clauses <IMicrosoftGraphFilterClause[]>]:
        [OperatorName <String>]:
        [SourceOperandName <String>]:
        [TargetOperandValues <String[]>]:
      [Name <String>]:
    [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
    [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
    [SourceObjectName <String>]:
    [TargetObjectName <String>]:
  [Priority <Int32?>]:
  [SourceDirectoryName <String>]:
  [TargetDirectoryName <String>]:
 
STATUS <IMicrosoftGraphSynchronizationStatus>: synchronizationStatus
  [Code <String>]: synchronizationStatusCode
  [CountSuccessiveCompleteFailures <Int64?>]:
  [EscrowsPruned <Boolean?>]:
  [LastExecutionActivityIdentifier <String>]:
  [LastExecutionCountEntitled <Int64?>]:
  [LastExecutionCountEntitledForProvisioning <Int64?>]:
  [LastExecutionCountEscrowed <Int64?>]:
  [LastExecutionCountEscrowedRaw <Int64?>]:
  [LastExecutionCountExported <Int64?>]:
  [LastExecutionCountExports <Int64?>]:
  [LastExecutionCountImported <Int64?>]:
  [LastExecutionCountImportedDeltas <Int64?>]:
  [LastExecutionCountImportedReferenceDeltas <Int64?>]:
  [LastExecutionErrorCode <String>]:
  [LastExecutionErrorMessage <String>]:
  [LastExecutionErrorTenantActionable <Boolean?>]:
  [LastExecutionState <String>]: synchronizationTaskExecutionResult
  [LastExecutionTimeBegan <DateTime?>]:
  [LastExecutionTimeEnded <DateTime?>]:
  [LastSuccessfulExecutionActivityIdentifier <String>]:
  [LastSuccessfulExecutionCountEntitled <Int64?>]:
  [LastSuccessfulExecutionCountEntitledForProvisioning <Int64?>]:
  [LastSuccessfulExecutionCountEscrowed <Int64?>]:
  [LastSuccessfulExecutionCountEscrowedRaw <Int64?>]:
  [LastSuccessfulExecutionCountExported <Int64?>]:
  [LastSuccessfulExecutionCountExports <Int64?>]:
  [LastSuccessfulExecutionCountImported <Int64?>]:
  [LastSuccessfulExecutionCountImportedDeltas <Int64?>]:
  [LastSuccessfulExecutionCountImportedReferenceDeltas <Int64?>]:
  [LastSuccessfulExecutionErrorCode <String>]:
  [LastSuccessfulExecutionErrorMessage <String>]:
  [LastSuccessfulExecutionErrorTenantActionable <Boolean?>]:
  [LastSuccessfulExecutionState <String>]: synchronizationTaskExecutionResult
  [LastSuccessfulExecutionTimeBegan <DateTime?>]:
  [LastSuccessfulExecutionTimeEnded <DateTime?>]:
  [LastSuccessfulExecutionWithExportActivityIdentifier <String>]:
  [LastSuccessfulExecutionWithExportCountEntitled <Int64?>]:
  [LastSuccessfulExecutionWithExportCountEntitledForProvisioning <Int64?>]:
  [LastSuccessfulExecutionWithExportCountEscrowed <Int64?>]:
  [LastSuccessfulExecutionWithExportCountEscrowedRaw <Int64?>]:
  [LastSuccessfulExecutionWithExportCountExported <Int64?>]:
  [LastSuccessfulExecutionWithExportCountExports <Int64?>]:
  [LastSuccessfulExecutionWithExportCountImported <Int64?>]:
  [LastSuccessfulExecutionWithExportCountImportedDeltas <Int64?>]:
  [LastSuccessfulExecutionWithExportCountImportedReferenceDeltas <Int64?>]:
  [LastSuccessfulExecutionWithExportState <String>]: synchronizationTaskExecutionResult
  [LastSuccessfulExecutionWithExportTimeBegan <DateTime?>]:
  [LastSuccessfulExecutionWithExportTimeEnded <DateTime?>]:
  [LastSuccessfulExecutionWithExportsErrorCode <String>]:
  [LastSuccessfulExecutionWithExportsErrorMessage <String>]:
  [LastSuccessfulExecutionWithExportsErrorTenantActionable <Boolean?>]:
  [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
    [CompletedUnits <Int64?>]:
    [ProgressObservationDateTime <DateTime?>]:
    [TotalUnits <Int64?>]:
    [Units <String>]:
  [QuarantineCurrentBegan <DateTime?>]:
  [QuarantineNextAttempt <DateTime?>]:
  [QuarantineReason <String>]: quarantineReason
  [QuarantineSeriesBegan <DateTime?>]:
  [QuarantineSeriesCount <Int64?>]:
  [SteadyStateFirstAchievedTime <DateTime?>]:
  [SteadyStateLastAchievedTime <DateTime?>]:
  [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
    [Key <String>]:
    [Value <Int64?>]:
  [TroubleshootingUrl <String>]:
 
SYNCHRONIZATIONJOBSETTINGS <IMicrosoftGraphKeyValuePair[]>: HELP MESSAGE MISSING
  [Name <String>]:
  [Value <String>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalsynchronizationjob
#>

function Update-MgServicePrincipalSynchronizationJob {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: synchronizationJob-id of synchronizationJob
    ${SynchronizationJobId},

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationJob]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # HELP MESSAGE MISSING
    ${ScheduleExpiration},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.TimeSpan]
    # HELP MESSAGE MISSING
    ${ScheduleInterval},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for SCHEMADIRECTORIES properties and create a hash table.
    ${SchemaDirectories},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${SchemaId},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${SchemaProvisioningTaskIdentifier},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationRule[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for SCHEMASYNCHRONIZATIONRULES properties and create a hash table.
    ${SchemaSynchronizationRules},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${SchemaVersion},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphKeyValuePair[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for SYNCHRONIZATIONJOBSETTINGS properties and create a hash table.
    ${SynchronizationJobSettings},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${TemplateId},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Update = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationJob_Update';
            UpdateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationJob_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationJob_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationJob_UpdateViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Update the navigation property directories in servicePrincipals
.Description
Update the navigation property directories in servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalsynchronizationtemplateschemadirectory
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition
.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 <IMicrosoftGraphDirectoryDefinition>: HELP MESSAGE MISSING
  [Id <String>]:
  [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
  [DiscoveryDateTime <DateTime?>]:
  [Name <String>]:
  [Objects <IMicrosoftGraphObjectDefinition[]>]:
    [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
      [Anchor <Boolean?>]:
      [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
        [Key <String>]:
        [Value <String>]:
      [CaseExact <Boolean?>]:
      [DefaultValue <String>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Key <String>]:
        [Value <String>]:
      [Multivalued <Boolean?>]:
      [Mutability <String>]: mutability
      [Name <String>]:
      [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
        [ReferencedObjectName <String>]:
        [ReferencedProperty <String>]:
      [Required <Boolean?>]:
      [Type <String>]: attributeType
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Name <String>]:
    [SupportedApis <String[]>]:
  [ReadOnly <Boolean?>]:
  [Version <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
 
OBJECTS <IMicrosoftGraphObjectDefinition[]>: HELP MESSAGE MISSING
  [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
    [Anchor <Boolean?>]:
    [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Key <String>]:
      [Value <String>]:
    [CaseExact <Boolean?>]:
    [DefaultValue <String>]:
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Multivalued <Boolean?>]:
    [Mutability <String>]: mutability
    [Name <String>]:
    [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
      [ReferencedObjectName <String>]:
      [ReferencedProperty <String>]:
    [Required <Boolean?>]:
    [Type <String>]: attributeType
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
  [Name <String>]:
  [SupportedApis <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalsynchronizationtemplateschemadirectory
#>

function Update-MgServicePrincipalSynchronizationTemplateSchemaDirectory {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: directoryDefinition-id of directoryDefinition
    ${DirectoryDefinitionId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: synchronizationTemplate-id of synchronizationTemplate
    ${SynchronizationTemplateId},

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # HELP MESSAGE MISSING
    ${DiscoveryDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Id},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphObjectDefinition[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for OBJECTS properties and create a hash table.
    ${Objects},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Version},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Update = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationTemplateSchemaDirectory_Update';
            UpdateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationTemplateSchemaDirectory_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationTemplateSchemaDirectory_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationTemplateSchemaDirectory_UpdateViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Update the navigation property schema in servicePrincipals
.Description
Update the navigation property schema in servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalsynchronizationtemplateschema
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationSchema
.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 <IMicrosoftGraphSynchronizationSchema>: HELP MESSAGE MISSING
  [Id <String>]:
  [Directories <IMicrosoftGraphDirectoryDefinition[]>]:
    [Id <String>]:
    [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
    [DiscoveryDateTime <DateTime?>]:
    [Name <String>]:
    [Objects <IMicrosoftGraphObjectDefinition[]>]:
      [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
        [Anchor <Boolean?>]:
        [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
          [Key <String>]:
          [Value <String>]:
        [CaseExact <Boolean?>]:
        [DefaultValue <String>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
          [Key <String>]:
          [Value <String>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [ProvisioningTaskIdentifier <String>]:
  [SynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [Version <String>]:
 
DIRECTORIES <IMicrosoftGraphDirectoryDefinition[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
  [DiscoveryDateTime <DateTime?>]:
  [Name <String>]:
  [Objects <IMicrosoftGraphObjectDefinition[]>]:
    [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
      [Anchor <Boolean?>]:
      [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
        [Key <String>]:
        [Value <String>]:
      [CaseExact <Boolean?>]:
      [DefaultValue <String>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Key <String>]:
        [Value <String>]:
      [Multivalued <Boolean?>]:
      [Mutability <String>]: mutability
      [Name <String>]:
      [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
        [ReferencedObjectName <String>]:
        [ReferencedProperty <String>]:
      [Required <Boolean?>]:
      [Type <String>]: attributeType
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Name <String>]:
    [SupportedApis <String[]>]:
  [ReadOnly <Boolean?>]:
  [Version <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
 
SYNCHRONIZATIONRULES <IMicrosoftGraphSynchronizationRule[]>: HELP MESSAGE MISSING
  [Editable <Boolean?>]:
  [Id <String>]:
  [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Key <String>]:
    [Value <String>]:
  [Name <String>]:
  [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
    [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
      [DefaultValue <String>]:
      [ExportMissingReferences <Boolean?>]:
      [FlowBehavior <String>]: attributeFlowBehavior
      [FlowType <String>]: attributeFlowType
      [MatchingPriority <Int32?>]:
      [SourceExpression <String>]:
      [SourceName <String>]:
      [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [Key <String>]:
        [ValueExpression <String>]:
        [ValueName <String>]:
        [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [ValueType <String>]: attributeMappingSourceType
      [SourceType <String>]: attributeMappingSourceType
      [TargetAttributeName <String>]:
    [Enabled <Boolean?>]:
    [FlowTypes <String>]: objectFlowTypes
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Name <String>]:
    [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [Clauses <IMicrosoftGraphFilterClause[]>]:
        [OperatorName <String>]:
        [SourceOperandName <String>]:
        [TargetOperandValues <String[]>]:
      [Name <String>]:
    [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
    [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
    [SourceObjectName <String>]:
    [TargetObjectName <String>]:
  [Priority <Int32?>]:
  [SourceDirectoryName <String>]:
  [TargetDirectoryName <String>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalsynchronizationtemplateschema
#>

function Update-MgServicePrincipalSynchronizationTemplateSchema {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: synchronizationTemplate-id of synchronizationTemplate
    ${SynchronizationTemplateId},

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationSchema]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for DIRECTORIES properties and create a hash table.
    ${Directories},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${ProvisioningTaskIdentifier},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationRule[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for SYNCHRONIZATIONRULES properties and create a hash table.
    ${SynchronizationRules},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Version},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Update = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationTemplateSchema_Update';
            UpdateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationTemplateSchema_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationTemplateSchema_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationTemplateSchema_UpdateViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Update the navigation property templates in servicePrincipals
.Description
Update the navigation property templates in servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalsynchronizationtemplate
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationTemplate
.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 <IMicrosoftGraphSynchronizationTemplate>: HELP MESSAGE MISSING
  [Id <String>]:
  [ApplicationId <String>]:
  [Default <Boolean?>]:
  [Description <String>]:
  [Discoverable <Boolean?>]:
  [FactoryTag <String>]:
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Key <String>]:
    [Value <String>]:
  [SchemaDirectories <IMicrosoftGraphDirectoryDefinition[]>]:
    [Id <String>]:
    [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
    [DiscoveryDateTime <DateTime?>]:
    [Name <String>]:
    [Objects <IMicrosoftGraphObjectDefinition[]>]:
      [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
        [Anchor <Boolean?>]:
        [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
          [Key <String>]:
          [Value <String>]:
        [CaseExact <Boolean?>]:
        [DefaultValue <String>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [SchemaId <String>]:
  [SchemaProvisioningTaskIdentifier <String>]:
  [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [SchemaVersion <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
 
METADATA <IMicrosoftGraphMetadataEntry[]>: HELP MESSAGE MISSING
  [Key <String>]:
  [Value <String>]:
 
SCHEMADIRECTORIES <IMicrosoftGraphDirectoryDefinition[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
  [DiscoveryDateTime <DateTime?>]:
  [Name <String>]:
  [Objects <IMicrosoftGraphObjectDefinition[]>]:
    [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
      [Anchor <Boolean?>]:
      [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
        [Key <String>]:
        [Value <String>]:
      [CaseExact <Boolean?>]:
      [DefaultValue <String>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Key <String>]:
        [Value <String>]:
      [Multivalued <Boolean?>]:
      [Mutability <String>]: mutability
      [Name <String>]:
      [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
        [ReferencedObjectName <String>]:
        [ReferencedProperty <String>]:
      [Required <Boolean?>]:
      [Type <String>]: attributeType
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Name <String>]:
    [SupportedApis <String[]>]:
  [ReadOnly <Boolean?>]:
  [Version <String>]:
 
SCHEMASYNCHRONIZATIONRULES <IMicrosoftGraphSynchronizationRule[]>: HELP MESSAGE MISSING
  [Editable <Boolean?>]:
  [Id <String>]:
  [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Key <String>]:
    [Value <String>]:
  [Name <String>]:
  [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
    [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
      [DefaultValue <String>]:
      [ExportMissingReferences <Boolean?>]:
      [FlowBehavior <String>]: attributeFlowBehavior
      [FlowType <String>]: attributeFlowType
      [MatchingPriority <Int32?>]:
      [SourceExpression <String>]:
      [SourceName <String>]:
      [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [Key <String>]:
        [ValueExpression <String>]:
        [ValueName <String>]:
        [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [ValueType <String>]: attributeMappingSourceType
      [SourceType <String>]: attributeMappingSourceType
      [TargetAttributeName <String>]:
    [Enabled <Boolean?>]:
    [FlowTypes <String>]: objectFlowTypes
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Name <String>]:
    [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [Clauses <IMicrosoftGraphFilterClause[]>]:
        [OperatorName <String>]:
        [SourceOperandName <String>]:
        [TargetOperandValues <String[]>]:
      [Name <String>]:
    [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
    [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
    [SourceObjectName <String>]:
    [TargetObjectName <String>]:
  [Priority <Int32?>]:
  [SourceDirectoryName <String>]:
  [TargetDirectoryName <String>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalsynchronizationtemplate
#>

function Update-MgServicePrincipalSynchronizationTemplate {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: synchronizationTemplate-id of synchronizationTemplate
    ${SynchronizationTemplateId},

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationTemplate]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${ApplicationId},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Description},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${FactoryTag},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphMetadataEntry[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for METADATA properties and create a hash table.
    ${Metadata},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for SCHEMADIRECTORIES properties and create a hash table.
    ${SchemaDirectories},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${SchemaId},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${SchemaProvisioningTaskIdentifier},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationRule[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for SCHEMASYNCHRONIZATIONRULES properties and create a hash table.
    ${SchemaSynchronizationRules},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${SchemaVersion},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Update = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationTemplate_Update';
            UpdateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationTemplate_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationTemplate_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationTemplate_UpdateViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Update the navigation property synchronization in servicePrincipals
.Description
Update the navigation property synchronization in servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalsynchronization
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronization
.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 <IMicrosoftGraphSynchronization>: HELP MESSAGE MISSING
  [Id <String>]:
  [Jobs <IMicrosoftGraphSynchronizationJob[]>]:
    [Id <String>]:
    [ScheduleExpiration <DateTime?>]:
    [ScheduleInterval <TimeSpan?>]:
    [ScheduleState <String>]: synchronizationScheduleState
    [SchemaDirectories <IMicrosoftGraphDirectoryDefinition[]>]:
      [Id <String>]:
      [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
      [DiscoveryDateTime <DateTime?>]:
      [Name <String>]:
      [Objects <IMicrosoftGraphObjectDefinition[]>]:
        [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
          [Anchor <Boolean?>]:
          [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
            [Key <String>]:
            [Value <String>]:
          [CaseExact <Boolean?>]:
          [DefaultValue <String>]:
          [Metadata <IMicrosoftGraphMetadataEntry[]>]:
            [Key <String>]:
            [Value <String>]:
          [Multivalued <Boolean?>]:
          [Mutability <String>]: mutability
          [Name <String>]:
          [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
            [ReferencedObjectName <String>]:
            [ReferencedProperty <String>]:
          [Required <Boolean?>]:
          [Type <String>]: attributeType
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Name <String>]:
        [SupportedApis <String[]>]:
      [ReadOnly <Boolean?>]:
      [Version <String>]:
    [SchemaId <String>]:
    [SchemaProvisioningTaskIdentifier <String>]:
    [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
      [Editable <Boolean?>]:
      [Id <String>]:
      [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Name <String>]:
      [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
        [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
          [DefaultValue <String>]:
          [ExportMissingReferences <Boolean?>]:
          [FlowBehavior <String>]: attributeFlowBehavior
          [FlowType <String>]: attributeFlowType
          [MatchingPriority <Int32?>]:
          [SourceExpression <String>]:
          [SourceName <String>]:
          [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
            [Key <String>]:
            [ValueExpression <String>]:
            [ValueName <String>]:
            [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
            [ValueType <String>]: attributeMappingSourceType
          [SourceType <String>]: attributeMappingSourceType
          [TargetAttributeName <String>]:
        [Enabled <Boolean?>]:
        [FlowTypes <String>]: objectFlowTypes
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Name <String>]:
        [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
          [Clauses <IMicrosoftGraphFilterClause[]>]:
            [OperatorName <String>]:
            [SourceOperandName <String>]:
            [TargetOperandValues <String[]>]:
          [Name <String>]:
        [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
        [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [SourceObjectName <String>]:
        [TargetObjectName <String>]:
      [Priority <Int32?>]:
      [SourceDirectoryName <String>]:
      [TargetDirectoryName <String>]:
    [SchemaVersion <String>]:
    [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
      [Code <String>]: synchronizationStatusCode
      [CountSuccessiveCompleteFailures <Int64?>]:
      [EscrowsPruned <Boolean?>]:
      [LastExecutionActivityIdentifier <String>]:
      [LastExecutionCountEntitled <Int64?>]:
      [LastExecutionCountEntitledForProvisioning <Int64?>]:
      [LastExecutionCountEscrowed <Int64?>]:
      [LastExecutionCountEscrowedRaw <Int64?>]:
      [LastExecutionCountExported <Int64?>]:
      [LastExecutionCountExports <Int64?>]:
      [LastExecutionCountImported <Int64?>]:
      [LastExecutionCountImportedDeltas <Int64?>]:
      [LastExecutionCountImportedReferenceDeltas <Int64?>]:
      [LastExecutionErrorCode <String>]:
      [LastExecutionErrorMessage <String>]:
      [LastExecutionErrorTenantActionable <Boolean?>]:
      [LastExecutionState <String>]: synchronizationTaskExecutionResult
      [LastExecutionTimeBegan <DateTime?>]:
      [LastExecutionTimeEnded <DateTime?>]:
      [LastSuccessfulExecutionActivityIdentifier <String>]:
      [LastSuccessfulExecutionCountEntitled <Int64?>]:
      [LastSuccessfulExecutionCountEntitledForProvisioning <Int64?>]:
      [LastSuccessfulExecutionCountEscrowed <Int64?>]:
      [LastSuccessfulExecutionCountEscrowedRaw <Int64?>]:
      [LastSuccessfulExecutionCountExported <Int64?>]:
      [LastSuccessfulExecutionCountExports <Int64?>]:
      [LastSuccessfulExecutionCountImported <Int64?>]:
      [LastSuccessfulExecutionCountImportedDeltas <Int64?>]:
      [LastSuccessfulExecutionCountImportedReferenceDeltas <Int64?>]:
      [LastSuccessfulExecutionErrorCode <String>]:
      [LastSuccessfulExecutionErrorMessage <String>]:
      [LastSuccessfulExecutionErrorTenantActionable <Boolean?>]:
      [LastSuccessfulExecutionState <String>]: synchronizationTaskExecutionResult
      [LastSuccessfulExecutionTimeBegan <DateTime?>]:
      [LastSuccessfulExecutionTimeEnded <DateTime?>]:
      [LastSuccessfulExecutionWithExportActivityIdentifier <String>]:
      [LastSuccessfulExecutionWithExportCountEntitled <Int64?>]:
      [LastSuccessfulExecutionWithExportCountEntitledForProvisioning <Int64?>]:
      [LastSuccessfulExecutionWithExportCountEscrowed <Int64?>]:
      [LastSuccessfulExecutionWithExportCountEscrowedRaw <Int64?>]:
      [LastSuccessfulExecutionWithExportCountExported <Int64?>]:
      [LastSuccessfulExecutionWithExportCountExports <Int64?>]:
      [LastSuccessfulExecutionWithExportCountImported <Int64?>]:
      [LastSuccessfulExecutionWithExportCountImportedDeltas <Int64?>]:
      [LastSuccessfulExecutionWithExportCountImportedReferenceDeltas <Int64?>]:
      [LastSuccessfulExecutionWithExportState <String>]: synchronizationTaskExecutionResult
      [LastSuccessfulExecutionWithExportTimeBegan <DateTime?>]:
      [LastSuccessfulExecutionWithExportTimeEnded <DateTime?>]:
      [LastSuccessfulExecutionWithExportsErrorCode <String>]:
      [LastSuccessfulExecutionWithExportsErrorMessage <String>]:
      [LastSuccessfulExecutionWithExportsErrorTenantActionable <Boolean?>]:
      [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
        [CompletedUnits <Int64?>]:
        [ProgressObservationDateTime <DateTime?>]:
        [TotalUnits <Int64?>]:
        [Units <String>]:
      [QuarantineCurrentBegan <DateTime?>]:
      [QuarantineNextAttempt <DateTime?>]:
      [QuarantineReason <String>]: quarantineReason
      [QuarantineSeriesBegan <DateTime?>]:
      [QuarantineSeriesCount <Int64?>]:
      [SteadyStateFirstAchievedTime <DateTime?>]:
      [SteadyStateLastAchievedTime <DateTime?>]:
      [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
        [Key <String>]:
        [Value <Int64?>]:
      [TroubleshootingUrl <String>]:
    [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
      [Name <String>]:
      [Value <String>]:
    [TemplateId <String>]:
  [Secrets <IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]>]:
    [Key <String>]: synchronizationSecret
    [Value <String>]:
  [Templates <IMicrosoftGraphSynchronizationTemplate[]>]:
    [Id <String>]:
    [ApplicationId <String>]:
    [Default <Boolean?>]:
    [Description <String>]:
    [Discoverable <Boolean?>]:
    [FactoryTag <String>]:
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [SchemaDirectories <IMicrosoftGraphDirectoryDefinition[]>]:
    [SchemaId <String>]:
    [SchemaProvisioningTaskIdentifier <String>]:
    [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [SchemaVersion <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
 
JOBS <IMicrosoftGraphSynchronizationJob[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [ScheduleExpiration <DateTime?>]:
  [ScheduleInterval <TimeSpan?>]:
  [ScheduleState <String>]: synchronizationScheduleState
  [SchemaDirectories <IMicrosoftGraphDirectoryDefinition[]>]:
    [Id <String>]:
    [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
    [DiscoveryDateTime <DateTime?>]:
    [Name <String>]:
    [Objects <IMicrosoftGraphObjectDefinition[]>]:
      [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
        [Anchor <Boolean?>]:
        [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
          [Key <String>]:
          [Value <String>]:
        [CaseExact <Boolean?>]:
        [DefaultValue <String>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
          [Key <String>]:
          [Value <String>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [SchemaId <String>]:
  [SchemaProvisioningTaskIdentifier <String>]:
  [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [SchemaVersion <String>]:
  [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
    [Code <String>]: synchronizationStatusCode
    [CountSuccessiveCompleteFailures <Int64?>]:
    [EscrowsPruned <Boolean?>]:
    [LastExecutionActivityIdentifier <String>]:
    [LastExecutionCountEntitled <Int64?>]:
    [LastExecutionCountEntitledForProvisioning <Int64?>]:
    [LastExecutionCountEscrowed <Int64?>]:
    [LastExecutionCountEscrowedRaw <Int64?>]:
    [LastExecutionCountExported <Int64?>]:
    [LastExecutionCountExports <Int64?>]:
    [LastExecutionCountImported <Int64?>]:
    [LastExecutionCountImportedDeltas <Int64?>]:
    [LastExecutionCountImportedReferenceDeltas <Int64?>]:
    [LastExecutionErrorCode <String>]:
    [LastExecutionErrorMessage <String>]:
    [LastExecutionErrorTenantActionable <Boolean?>]:
    [LastExecutionState <String>]: synchronizationTaskExecutionResult
    [LastExecutionTimeBegan <DateTime?>]:
    [LastExecutionTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionActivityIdentifier <String>]:
    [LastSuccessfulExecutionCountEntitled <Int64?>]:
    [LastSuccessfulExecutionCountEntitledForProvisioning <Int64?>]:
    [LastSuccessfulExecutionCountEscrowed <Int64?>]:
    [LastSuccessfulExecutionCountEscrowedRaw <Int64?>]:
    [LastSuccessfulExecutionCountExported <Int64?>]:
    [LastSuccessfulExecutionCountExports <Int64?>]:
    [LastSuccessfulExecutionCountImported <Int64?>]:
    [LastSuccessfulExecutionCountImportedDeltas <Int64?>]:
    [LastSuccessfulExecutionCountImportedReferenceDeltas <Int64?>]:
    [LastSuccessfulExecutionErrorCode <String>]:
    [LastSuccessfulExecutionErrorMessage <String>]:
    [LastSuccessfulExecutionErrorTenantActionable <Boolean?>]:
    [LastSuccessfulExecutionState <String>]: synchronizationTaskExecutionResult
    [LastSuccessfulExecutionTimeBegan <DateTime?>]:
    [LastSuccessfulExecutionTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionWithExportActivityIdentifier <String>]:
    [LastSuccessfulExecutionWithExportCountEntitled <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEntitledForProvisioning <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEscrowed <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEscrowedRaw <Int64?>]:
    [LastSuccessfulExecutionWithExportCountExported <Int64?>]:
    [LastSuccessfulExecutionWithExportCountExports <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImported <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImportedDeltas <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImportedReferenceDeltas <Int64?>]:
    [LastSuccessfulExecutionWithExportState <String>]: synchronizationTaskExecutionResult
    [LastSuccessfulExecutionWithExportTimeBegan <DateTime?>]:
    [LastSuccessfulExecutionWithExportTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionWithExportsErrorCode <String>]:
    [LastSuccessfulExecutionWithExportsErrorMessage <String>]:
    [LastSuccessfulExecutionWithExportsErrorTenantActionable <Boolean?>]:
    [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
      [CompletedUnits <Int64?>]:
      [ProgressObservationDateTime <DateTime?>]:
      [TotalUnits <Int64?>]:
      [Units <String>]:
    [QuarantineCurrentBegan <DateTime?>]:
    [QuarantineNextAttempt <DateTime?>]:
    [QuarantineReason <String>]: quarantineReason
    [QuarantineSeriesBegan <DateTime?>]:
    [QuarantineSeriesCount <Int64?>]:
    [SteadyStateFirstAchievedTime <DateTime?>]:
    [SteadyStateLastAchievedTime <DateTime?>]:
    [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
      [Key <String>]:
      [Value <Int64?>]:
    [TroubleshootingUrl <String>]:
  [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
    [Name <String>]:
    [Value <String>]:
  [TemplateId <String>]:
 
SECRETS <IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]>: HELP MESSAGE MISSING
  [Key <String>]: synchronizationSecret
  [Value <String>]:
 
TEMPLATES <IMicrosoftGraphSynchronizationTemplate[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [ApplicationId <String>]:
  [Default <Boolean?>]:
  [Description <String>]:
  [Discoverable <Boolean?>]:
  [FactoryTag <String>]:
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Key <String>]:
    [Value <String>]:
  [SchemaDirectories <IMicrosoftGraphDirectoryDefinition[]>]:
    [Id <String>]:
    [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
    [DiscoveryDateTime <DateTime?>]:
    [Name <String>]:
    [Objects <IMicrosoftGraphObjectDefinition[]>]:
      [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
        [Anchor <Boolean?>]:
        [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
          [Key <String>]:
          [Value <String>]:
        [CaseExact <Boolean?>]:
        [DefaultValue <String>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [SchemaId <String>]:
  [SchemaProvisioningTaskIdentifier <String>]:
  [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [SchemaVersion <String>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalsynchronization
#>

function Update-MgServicePrincipalSynchronization {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronization]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationJob[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for JOBS properties and create a hash table.
    ${Jobs},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for SECRETS properties and create a hash table.
    ${Secrets},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationTemplate[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for TEMPLATES properties and create a hash table.
    ${Templates},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Update = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronization_Update';
            UpdateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronization_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronization_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronization_UpdateViaIdentityExpanded';
        }
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Update entity in servicePrincipals
.Description
Update entity in servicePrincipals
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipal
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePrincipal
.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.
 
ADDINS <IMicrosoftGraphAddIn[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [Properties <IMicrosoftGraphKeyValue[]>]:
    [Key <String>]:
    [Value <String>]:
  [Type <String>]:
 
APPROLEASSIGNEDTO <IMicrosoftGraphAppRoleAssignment[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [AppRoleId <String>]:
  [CreationTimestamp <DateTime?>]:
  [PrincipalDisplayName <String>]:
  [PrincipalId <String>]:
  [PrincipalType <String>]:
  [ResourceDisplayName <String>]:
  [ResourceId <String>]:
 
APPROLEASSIGNMENTS <IMicrosoftGraphAppRoleAssignment[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [AppRoleId <String>]:
  [CreationTimestamp <DateTime?>]:
  [PrincipalDisplayName <String>]:
  [PrincipalId <String>]:
  [PrincipalType <String>]:
  [ResourceDisplayName <String>]:
  [ResourceId <String>]:
 
APPROLES <IMicrosoftGraphAppRole[]>: HELP MESSAGE MISSING
  [AllowedMemberTypes <String[]>]:
  [Description <String>]:
  [DisplayName <String>]:
  [Id <String>]:
  [IsEnabled <Boolean?>]:
  [Origin <String>]:
  [Value <String>]:
 
BODYPARAMETER <IMicrosoftGraphServicePrincipal>: HELP MESSAGE MISSING
  [Id <String>]:
  [DeletedDateTime <DateTime?>]:
  [AccountEnabled <Boolean?>]:
  [AddIns <IMicrosoftGraphAddIn[]>]:
    [Id <String>]:
    [Properties <IMicrosoftGraphKeyValue[]>]:
      [Key <String>]:
      [Value <String>]:
    [Type <String>]:
  [AppDisplayName <String>]:
  [AppId <String>]:
  [AppOwnerOrganizationId <String>]:
  [AppRoleAssignedTo <IMicrosoftGraphAppRoleAssignment[]>]:
    [Id <String>]:
    [AppRoleId <String>]:
    [CreationTimestamp <DateTime?>]:
    [PrincipalDisplayName <String>]:
    [PrincipalId <String>]:
    [PrincipalType <String>]:
    [ResourceDisplayName <String>]:
    [ResourceId <String>]:
  [AppRoleAssignmentRequired <Boolean?>]:
  [AppRoleAssignments <IMicrosoftGraphAppRoleAssignment[]>]:
  [AppRoles <IMicrosoftGraphAppRole[]>]:
    [AllowedMemberTypes <String[]>]:
    [Description <String>]:
    [DisplayName <String>]:
    [Id <String>]:
    [IsEnabled <Boolean?>]:
    [Origin <String>]:
    [Value <String>]:
  [ApplicationTemplateId <String>]:
  [CreatedObjects <IMicrosoftGraphDirectoryObject[]>]:
    [Id <String>]:
    [DeletedDateTime <DateTime?>]:
  [DisplayName <String>]:
  [Homepage <String>]:
  [InfoLogoUrl <String>]:
  [InfoMarketingUrl <String>]:
  [InfoPrivacyStatementUrl <String>]:
  [InfoSupportUrl <String>]:
  [InfoTermsOfServiceUrl <String>]:
  [KeyCredentials <IMicrosoftGraphKeyCredential[]>]:
    [CustomKeyIdentifier <Byte[]>]:
    [DisplayName <String>]:
    [EndDateTime <DateTime?>]:
    [Key <Byte[]>]:
    [KeyId <String>]:
    [StartDateTime <DateTime?>]:
    [Type <String>]:
    [Usage <String>]:
  [LicenseDetails <IMicrosoftGraphLicenseDetails[]>]:
    [Id <String>]:
    [ServicePlans <IMicrosoftGraphServicePlanInfo[]>]:
      [AppliesTo <String>]:
      [ProvisioningStatus <String>]:
      [ServicePlanId <String>]:
      [ServicePlanName <String>]:
    [SkuId <String>]:
    [SkuPartNumber <String>]:
  [LogoutUrl <String>]:
  [MemberOf <IMicrosoftGraphDirectoryObject[]>]:
  [NotificationEmailAddresses <String[]>]:
  [Oauth2PermissionGrants <IMicrosoftGraphOAuth2PermissionGrant[]>]:
    [Id <String>]:
    [ClientId <String>]:
    [ConsentType <String>]:
    [ExpiryTime <DateTime?>]:
    [PrincipalId <String>]:
    [ResourceId <String>]:
    [Scope <String>]:
    [StartTime <DateTime?>]:
  [OwnedObjects <IMicrosoftGraphDirectoryObject[]>]:
  [Owners <IMicrosoftGraphDirectoryObject[]>]:
  [PasswordCredentials <IMicrosoftGraphPasswordCredential[]>]:
    [CustomKeyIdentifier <Byte[]>]:
    [DisplayName <String>]:
    [EndDateTime <DateTime?>]:
    [Hint <String>]:
    [KeyId <String>]:
    [SecretText <String>]:
    [StartDateTime <DateTime?>]:
  [Policies <IMicrosoftGraphDirectoryObject[]>]:
  [PreferredTokenSigningKeyThumbprint <String>]:
  [PublishedPermissionScopes <IMicrosoftGraphPermissionScope[]>]:
    [AdminConsentDescription <String>]:
    [AdminConsentDisplayName <String>]:
    [Id <String>]:
    [IsEnabled <Boolean?>]:
    [Origin <String>]:
    [Type <String>]:
    [UserConsentDescription <String>]:
    [UserConsentDisplayName <String>]:
    [Value <String>]:
  [PublisherName <String>]:
  [ReplyUrls <String[]>]:
  [SamlMetadataUrl <String>]:
  [ServicePrincipalNames <String[]>]:
  [SynchronizationId <String>]:
  [SynchronizationJobs <IMicrosoftGraphSynchronizationJob[]>]:
    [Id <String>]:
    [ScheduleExpiration <DateTime?>]:
    [ScheduleInterval <TimeSpan?>]:
    [ScheduleState <String>]: synchronizationScheduleState
    [SchemaDirectories <IMicrosoftGraphDirectoryDefinition[]>]:
      [Id <String>]:
      [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
      [DiscoveryDateTime <DateTime?>]:
      [Name <String>]:
      [Objects <IMicrosoftGraphObjectDefinition[]>]:
        [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
          [Anchor <Boolean?>]:
          [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
            [Key <String>]:
            [Value <String>]:
          [CaseExact <Boolean?>]:
          [DefaultValue <String>]:
          [Metadata <IMicrosoftGraphMetadataEntry[]>]:
            [Key <String>]:
            [Value <String>]:
          [Multivalued <Boolean?>]:
          [Mutability <String>]: mutability
          [Name <String>]:
          [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
            [ReferencedObjectName <String>]:
            [ReferencedProperty <String>]:
          [Required <Boolean?>]:
          [Type <String>]: attributeType
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Name <String>]:
        [SupportedApis <String[]>]:
      [ReadOnly <Boolean?>]:
      [Version <String>]:
    [SchemaId <String>]:
    [SchemaProvisioningTaskIdentifier <String>]:
    [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
      [Editable <Boolean?>]:
      [Id <String>]:
      [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Name <String>]:
      [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
        [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
          [DefaultValue <String>]:
          [ExportMissingReferences <Boolean?>]:
          [FlowBehavior <String>]: attributeFlowBehavior
          [FlowType <String>]: attributeFlowType
          [MatchingPriority <Int32?>]:
          [SourceExpression <String>]:
          [SourceName <String>]:
          [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
            [Key <String>]:
            [ValueExpression <String>]:
            [ValueName <String>]:
            [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
            [ValueType <String>]: attributeMappingSourceType
          [SourceType <String>]: attributeMappingSourceType
          [TargetAttributeName <String>]:
        [Enabled <Boolean?>]:
        [FlowTypes <String>]: objectFlowTypes
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Name <String>]:
        [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
          [Clauses <IMicrosoftGraphFilterClause[]>]:
            [OperatorName <String>]:
            [SourceOperandName <String>]:
            [TargetOperandValues <String[]>]:
          [Name <String>]:
        [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
        [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [SourceObjectName <String>]:
        [TargetObjectName <String>]:
      [Priority <Int32?>]:
      [SourceDirectoryName <String>]:
      [TargetDirectoryName <String>]:
    [SchemaVersion <String>]:
    [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
      [Code <String>]: synchronizationStatusCode
      [CountSuccessiveCompleteFailures <Int64?>]:
      [EscrowsPruned <Boolean?>]:
      [LastExecutionActivityIdentifier <String>]:
      [LastExecutionCountEntitled <Int64?>]:
      [LastExecutionCountEntitledForProvisioning <Int64?>]:
      [LastExecutionCountEscrowed <Int64?>]:
      [LastExecutionCountEscrowedRaw <Int64?>]:
      [LastExecutionCountExported <Int64?>]:
      [LastExecutionCountExports <Int64?>]:
      [LastExecutionCountImported <Int64?>]:
      [LastExecutionCountImportedDeltas <Int64?>]:
      [LastExecutionCountImportedReferenceDeltas <Int64?>]:
      [LastExecutionErrorCode <String>]:
      [LastExecutionErrorMessage <String>]:
      [LastExecutionErrorTenantActionable <Boolean?>]:
      [LastExecutionState <String>]: synchronizationTaskExecutionResult
      [LastExecutionTimeBegan <DateTime?>]:
      [LastExecutionTimeEnded <DateTime?>]:
      [LastSuccessfulExecutionActivityIdentifier <String>]:
      [LastSuccessfulExecutionCountEntitled <Int64?>]:
      [LastSuccessfulExecutionCountEntitledForProvisioning <Int64?>]:
      [LastSuccessfulExecutionCountEscrowed <Int64?>]:
      [LastSuccessfulExecutionCountEscrowedRaw <Int64?>]:
      [LastSuccessfulExecutionCountExported <Int64?>]:
      [LastSuccessfulExecutionCountExports <Int64?>]:
      [LastSuccessfulExecutionCountImported <Int64?>]:
      [LastSuccessfulExecutionCountImportedDeltas <Int64?>]:
      [LastSuccessfulExecutionCountImportedReferenceDeltas <Int64?>]:
      [LastSuccessfulExecutionErrorCode <String>]:
      [LastSuccessfulExecutionErrorMessage <String>]:
      [LastSuccessfulExecutionErrorTenantActionable <Boolean?>]:
      [LastSuccessfulExecutionState <String>]: synchronizationTaskExecutionResult
      [LastSuccessfulExecutionTimeBegan <DateTime?>]:
      [LastSuccessfulExecutionTimeEnded <DateTime?>]:
      [LastSuccessfulExecutionWithExportActivityIdentifier <String>]:
      [LastSuccessfulExecutionWithExportCountEntitled <Int64?>]:
      [LastSuccessfulExecutionWithExportCountEntitledForProvisioning <Int64?>]:
      [LastSuccessfulExecutionWithExportCountEscrowed <Int64?>]:
      [LastSuccessfulExecutionWithExportCountEscrowedRaw <Int64?>]:
      [LastSuccessfulExecutionWithExportCountExported <Int64?>]:
      [LastSuccessfulExecutionWithExportCountExports <Int64?>]:
      [LastSuccessfulExecutionWithExportCountImported <Int64?>]:
      [LastSuccessfulExecutionWithExportCountImportedDeltas <Int64?>]:
      [LastSuccessfulExecutionWithExportCountImportedReferenceDeltas <Int64?>]:
      [LastSuccessfulExecutionWithExportState <String>]: synchronizationTaskExecutionResult
      [LastSuccessfulExecutionWithExportTimeBegan <DateTime?>]:
      [LastSuccessfulExecutionWithExportTimeEnded <DateTime?>]:
      [LastSuccessfulExecutionWithExportsErrorCode <String>]:
      [LastSuccessfulExecutionWithExportsErrorMessage <String>]:
      [LastSuccessfulExecutionWithExportsErrorTenantActionable <Boolean?>]:
      [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
        [CompletedUnits <Int64?>]:
        [ProgressObservationDateTime <DateTime?>]:
        [TotalUnits <Int64?>]:
        [Units <String>]:
      [QuarantineCurrentBegan <DateTime?>]:
      [QuarantineNextAttempt <DateTime?>]:
      [QuarantineReason <String>]: quarantineReason
      [QuarantineSeriesBegan <DateTime?>]:
      [QuarantineSeriesCount <Int64?>]:
      [SteadyStateFirstAchievedTime <DateTime?>]:
      [SteadyStateLastAchievedTime <DateTime?>]:
      [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
        [Key <String>]:
        [Value <Int64?>]:
      [TroubleshootingUrl <String>]:
    [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
      [Name <String>]:
      [Value <String>]:
    [TemplateId <String>]:
  [SynchronizationSecrets <IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]>]:
    [Key <String>]: synchronizationSecret
    [Value <String>]:
  [SynchronizationTemplates <IMicrosoftGraphSynchronizationTemplate[]>]:
    [Id <String>]:
    [ApplicationId <String>]:
    [Default <Boolean?>]:
    [Description <String>]:
    [Discoverable <Boolean?>]:
    [FactoryTag <String>]:
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [SchemaDirectories <IMicrosoftGraphDirectoryDefinition[]>]:
    [SchemaId <String>]:
    [SchemaProvisioningTaskIdentifier <String>]:
    [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [SchemaVersion <String>]:
  [Tags <String[]>]:
  [TransitiveMemberOf <IMicrosoftGraphDirectoryObject[]>]:
 
CREATEDOBJECTS <IMicrosoftGraphDirectoryObject[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [DeletedDateTime <DateTime?>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
 
KEYCREDENTIALS <IMicrosoftGraphKeyCredential[]>: HELP MESSAGE MISSING
  [CustomKeyIdentifier <Byte[]>]:
  [DisplayName <String>]:
  [EndDateTime <DateTime?>]:
  [Key <Byte[]>]:
  [KeyId <String>]:
  [StartDateTime <DateTime?>]:
  [Type <String>]:
  [Usage <String>]:
 
LICENSEDETAILS <IMicrosoftGraphLicenseDetails[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [ServicePlans <IMicrosoftGraphServicePlanInfo[]>]:
    [AppliesTo <String>]:
    [ProvisioningStatus <String>]:
    [ServicePlanId <String>]:
    [ServicePlanName <String>]:
  [SkuId <String>]:
  [SkuPartNumber <String>]:
 
MEMBEROF <IMicrosoftGraphDirectoryObject[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [DeletedDateTime <DateTime?>]:
 
OAUTH2PERMISSIONGRANTS <IMicrosoftGraphOAuth2PermissionGrant[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [ClientId <String>]:
  [ConsentType <String>]:
  [ExpiryTime <DateTime?>]:
  [PrincipalId <String>]:
  [ResourceId <String>]:
  [Scope <String>]:
  [StartTime <DateTime?>]:
 
OWNEDOBJECTS <IMicrosoftGraphDirectoryObject[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [DeletedDateTime <DateTime?>]:
 
OWNERS <IMicrosoftGraphDirectoryObject[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [DeletedDateTime <DateTime?>]:
 
PASSWORDCREDENTIALS <IMicrosoftGraphPasswordCredential[]>: HELP MESSAGE MISSING
  [CustomKeyIdentifier <Byte[]>]:
  [DisplayName <String>]:
  [EndDateTime <DateTime?>]:
  [Hint <String>]:
  [KeyId <String>]:
  [SecretText <String>]:
  [StartDateTime <DateTime?>]:
 
POLICIES <IMicrosoftGraphDirectoryObject[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [DeletedDateTime <DateTime?>]:
 
PUBLISHEDPERMISSIONSCOPES <IMicrosoftGraphPermissionScope[]>: HELP MESSAGE MISSING
  [AdminConsentDescription <String>]:
  [AdminConsentDisplayName <String>]:
  [Id <String>]:
  [IsEnabled <Boolean?>]:
  [Origin <String>]:
  [Type <String>]:
  [UserConsentDescription <String>]:
  [UserConsentDisplayName <String>]:
  [Value <String>]:
 
SYNCHRONIZATIONJOBS <IMicrosoftGraphSynchronizationJob[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [ScheduleExpiration <DateTime?>]:
  [ScheduleInterval <TimeSpan?>]:
  [ScheduleState <String>]: synchronizationScheduleState
  [SchemaDirectories <IMicrosoftGraphDirectoryDefinition[]>]:
    [Id <String>]:
    [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
    [DiscoveryDateTime <DateTime?>]:
    [Name <String>]:
    [Objects <IMicrosoftGraphObjectDefinition[]>]:
      [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
        [Anchor <Boolean?>]:
        [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
          [Key <String>]:
          [Value <String>]:
        [CaseExact <Boolean?>]:
        [DefaultValue <String>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
          [Key <String>]:
          [Value <String>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [SchemaId <String>]:
  [SchemaProvisioningTaskIdentifier <String>]:
  [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [SchemaVersion <String>]:
  [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
    [Code <String>]: synchronizationStatusCode
    [CountSuccessiveCompleteFailures <Int64?>]:
    [EscrowsPruned <Boolean?>]:
    [LastExecutionActivityIdentifier <String>]:
    [LastExecutionCountEntitled <Int64?>]:
    [LastExecutionCountEntitledForProvisioning <Int64?>]:
    [LastExecutionCountEscrowed <Int64?>]:
    [LastExecutionCountEscrowedRaw <Int64?>]:
    [LastExecutionCountExported <Int64?>]:
    [LastExecutionCountExports <Int64?>]:
    [LastExecutionCountImported <Int64?>]:
    [LastExecutionCountImportedDeltas <Int64?>]:
    [LastExecutionCountImportedReferenceDeltas <Int64?>]:
    [LastExecutionErrorCode <String>]:
    [LastExecutionErrorMessage <String>]:
    [LastExecutionErrorTenantActionable <Boolean?>]:
    [LastExecutionState <String>]: synchronizationTaskExecutionResult
    [LastExecutionTimeBegan <DateTime?>]:
    [LastExecutionTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionActivityIdentifier <String>]:
    [LastSuccessfulExecutionCountEntitled <Int64?>]:
    [LastSuccessfulExecutionCountEntitledForProvisioning <Int64?>]:
    [LastSuccessfulExecutionCountEscrowed <Int64?>]:
    [LastSuccessfulExecutionCountEscrowedRaw <Int64?>]:
    [LastSuccessfulExecutionCountExported <Int64?>]:
    [LastSuccessfulExecutionCountExports <Int64?>]:
    [LastSuccessfulExecutionCountImported <Int64?>]:
    [LastSuccessfulExecutionCountImportedDeltas <Int64?>]:
    [LastSuccessfulExecutionCountImportedReferenceDeltas <Int64?>]:
    [LastSuccessfulExecutionErrorCode <String>]:
    [LastSuccessfulExecutionErrorMessage <String>]:
    [LastSuccessfulExecutionErrorTenantActionable <Boolean?>]:
    [LastSuccessfulExecutionState <String>]: synchronizationTaskExecutionResult
    [LastSuccessfulExecutionTimeBegan <DateTime?>]:
    [LastSuccessfulExecutionTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionWithExportActivityIdentifier <String>]:
    [LastSuccessfulExecutionWithExportCountEntitled <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEntitledForProvisioning <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEscrowed <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEscrowedRaw <Int64?>]:
    [LastSuccessfulExecutionWithExportCountExported <Int64?>]:
    [LastSuccessfulExecutionWithExportCountExports <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImported <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImportedDeltas <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImportedReferenceDeltas <Int64?>]:
    [LastSuccessfulExecutionWithExportState <String>]: synchronizationTaskExecutionResult
    [LastSuccessfulExecutionWithExportTimeBegan <DateTime?>]:
    [LastSuccessfulExecutionWithExportTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionWithExportsErrorCode <String>]:
    [LastSuccessfulExecutionWithExportsErrorMessage <String>]:
    [LastSuccessfulExecutionWithExportsErrorTenantActionable <Boolean?>]:
    [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
      [CompletedUnits <Int64?>]:
      [ProgressObservationDateTime <DateTime?>]:
      [TotalUnits <Int64?>]:
      [Units <String>]:
    [QuarantineCurrentBegan <DateTime?>]:
    [QuarantineNextAttempt <DateTime?>]:
    [QuarantineReason <String>]: quarantineReason
    [QuarantineSeriesBegan <DateTime?>]:
    [QuarantineSeriesCount <Int64?>]:
    [SteadyStateFirstAchievedTime <DateTime?>]:
    [SteadyStateLastAchievedTime <DateTime?>]:
    [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
      [Key <String>]:
      [Value <Int64?>]:
    [TroubleshootingUrl <String>]:
  [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
    [Name <String>]:
    [Value <String>]:
  [TemplateId <String>]:
 
SYNCHRONIZATIONSECRETS <IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]>: HELP MESSAGE MISSING
  [Key <String>]: synchronizationSecret
  [Value <String>]:
 
SYNCHRONIZATIONTEMPLATES <IMicrosoftGraphSynchronizationTemplate[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [ApplicationId <String>]:
  [Default <Boolean?>]:
  [Description <String>]:
  [Discoverable <Boolean?>]:
  [FactoryTag <String>]:
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Key <String>]:
    [Value <String>]:
  [SchemaDirectories <IMicrosoftGraphDirectoryDefinition[]>]:
    [Id <String>]:
    [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
    [DiscoveryDateTime <DateTime?>]:
    [Name <String>]:
    [Objects <IMicrosoftGraphObjectDefinition[]>]:
      [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
        [Anchor <Boolean?>]:
        [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
          [Key <String>]:
          [Value <String>]:
        [CaseExact <Boolean?>]:
        [DefaultValue <String>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [SchemaId <String>]:
  [SchemaProvisioningTaskIdentifier <String>]:
  [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [SchemaVersion <String>]:
 
TRANSITIVEMEMBEROF <IMicrosoftGraphDirectoryObject[]>: HELP MESSAGE MISSING
  [Id <String>]:
  [DeletedDateTime <DateTime?>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipal
#>

function Update-MgServicePrincipal {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePrincipal]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAddIn[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for ADDINS properties and create a hash table.
    ${AddIns},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${AppDisplayName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${AppId},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${AppOwnerOrganizationId},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for APPROLEASSIGNEDTO properties and create a hash table.
    ${AppRoleAssignedTo},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for APPROLEASSIGNMENTS properties and create a hash table.
    ${AppRoleAssignments},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRole[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for APPROLES properties and create a hash table.
    ${AppRoles},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${ApplicationTemplateId},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for CREATEDOBJECTS properties and create a hash table.
    ${CreatedObjects},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # HELP MESSAGE MISSING
    ${DeletedDateTime},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Homepage},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${InfoLogoUrl},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${InfoMarketingUrl},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${InfoPrivacyStatementUrl},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${InfoSupportUrl},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${InfoTermsOfServiceUrl},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphKeyCredential[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for KEYCREDENTIALS properties and create a hash table.
    ${KeyCredentials},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLicenseDetails[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for LICENSEDETAILS properties and create a hash table.
    ${LicenseDetails},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${LogoutUrl},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for MEMBEROF properties and create a hash table.
    ${MemberOf},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # HELP MESSAGE MISSING
    ${NotificationEmailAddresses},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphOAuth2PermissionGrant[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for OAUTH2PERMISSIONGRANTS properties and create a hash table.
    ${Oauth2PermissionGrants},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for OWNEDOBJECTS properties and create a hash table.
    ${OwnedObjects},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for OWNERS properties and create a hash table.
    ${Owners},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPasswordCredential[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for PASSWORDCREDENTIALS properties and create a hash table.
    ${PasswordCredentials},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for POLICIES properties and create a hash table.
    ${Policies},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${PreferredTokenSigningKeyThumbprint},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPermissionScope[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for PUBLISHEDPERMISSIONSCOPES properties and create a hash table.
    ${PublishedPermissionScopes},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${PublisherName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # HELP MESSAGE MISSING
    ${ReplyUrls},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${SamlMetadataUrl},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # HELP MESSAGE MISSING
    ${ServicePrincipalNames},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # HELP MESSAGE MISSING
    ${SynchronizationId},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationJob[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for SYNCHRONIZATIONJOBS properties and create a hash table.
    ${SynchronizationJobs},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for SYNCHRONIZATIONSECRETS properties and create a hash table.
    ${SynchronizationSecrets},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationTemplate[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for SYNCHRONIZATIONTEMPLATES properties and create a hash table.
    ${SynchronizationTemplates},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # HELP MESSAGE MISSING
    ${Tags},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject[]]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for TRANSITIVEMEMBEROF properties and create a hash table.
    ${TransitiveMemberOf},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Update = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipal_Update';
            UpdateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipal_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipal_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipal_UpdateViaIdentityExpanded';
        }
        $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
# MIIjewYJKoZIhvcNAQcCoIIjbDCCI2gCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCA9oiSBU0sMmzyA
# BDSJgAzvGvQOLFA4rXUYOvEAn/NpSKCCDXYwggX0MIID3KADAgECAhMzAAABUMiP
# lnfeTPFHAAAAAAFQMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
# bmcgUENBIDIwMTEwHhcNMTkwNTAyMjEzNzQ1WhcNMjAwNTAyMjEzNzQ1WjB0MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
# AQCh2V193EGtu49awDgcJ1E8WB5mAim/gAFVpWUVOlk/haZWAiffh/k3W/GPhgYl
# t2WH/FQS4BcGpeWRb2Wi4seOUWb5lbgIuUKBORF0iiEiPNMLueuD3PAChl/h3WE2
# N1T8zsQg6UMrWtNRdby48xCI6zdD+26yNei3tOccrOWWullOehpBF5Z4vp8Xvq1n
# ysaSkGgAZNaKrb3F6et3V5Tq+gJ0DaLm/TGxATcTJ1mrHJOx+cHorSIeGKKzwa19
# uBuUbGALZx8Isus+3KiK7h2YcZ+AHU+qeUCLbKhU3l97Kg9E6/dvAMa+42/BXSmZ
# 9+F3WfagixcbNWGaZA1Pn8mPAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE
# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUGxNB+9SPshuMPQ+xlMnFMiKVkDgw
# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW
# MBQGA1UEBRMNMjMwMDEyKzQ1NDEzNDAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci
# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j
# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG
# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu
# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0
# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBADSrnbMt49ZGUc9KnW7S
# VkzITe55ApMwgxE8jl06lBkMZLd9QatyUt6g2/0RG0boaMHpWzypk6pGDLRD5y/P
# 6sj6fQYkrGihAw3W4ObLE3rrY8e5GPTrp/AlMFzsywHhD0+ETwgU8PuMvwQfB6ak
# 2ejWP0M1a1tkyAHfEMEGKd7RVPRmlLX+kPkJoFPz/uSlKxXi/acGH1qISQc0pkRt
# UE/ufrfpR+LlEOPg5aNZdAwIJAuDWInMeQM7kIoUTShSAJTzT58mrwVXgrfBbZnA
# NpsC/v8/amGL43MhTN0V2sWBHZNL7N0X9Z2qldu+jj8HdaNRGQyuru1W+IjNV914
# nk3qp9T/bZmy0elNYkCdNFjapARu6TZ0wwlEkvFW0HuzwtQ2gGDddGuhRFQRrdbU
# 68ifXf3dtvUDb0Nr+tnw9k0mV4s9jkTraDBaSJV0v1ixeR6WEBgGcc+uL/rHnci8
# 9cMcZqqcY8gGw0T1GpdDbWYLsYsqfPu5ZP4ga0kZa/ne7Bi3zu8XZ72kM893t5Ib
# Z96/2xp2Q+I6vIVfZJ7fh7vQ3OcLAZDvN+y6jNq3jtnQSYHuhX+Du074DXhQeVTB
# qTzBiuZPbnJhmI525u1GVoGemw0fqwk4cpeh3d1cDMN5eWlmqEdRwgaWozpj3a4I
# BzxVWkDJSJ4ZEq2odtK6eoYcMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq
# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x
# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv
# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG
# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg
# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03
# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr
# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg
# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy
# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9
# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh
# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k
# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB
# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn
# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90
# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w
# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o
# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD
# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa
# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny
# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG
# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t
# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV
# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3
# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG
# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl
# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb
# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l
# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6
# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0
# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560
# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam
# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa
# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah
# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA
# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt
# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr
# /Xmfwb1tbWrJUnMTDXpQzTGCFVswghVXAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw
# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp
# Z25pbmcgUENBIDIwMTECEzMAAAFQyI+Wd95M8UcAAAAAAVAwDQYJYIZIAWUDBAIB
# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO
# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEINfeaXz0F0l7aQ1wExSsS0NV
# CnxjOoa515/ILbe68rHKMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A
# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB
# BQAEggEAN/sdyR3umhm/3ipcyYLrQFO7/ztfaQH6w2oYUb7ceSK+WFgIstg7VTq4
# SsrSbb/LlrMAC58nQfnRp1UFCazzIc5iyyGcjjmzqf5BW9TuW2sUWjpLKOE2IsAC
# 7ipe07AHFNQLE2oySkwTMJpMJNzr1JnNPxKXWlZlc16ramVCWVCRcqCVhnYSg8yi
# PDKuqYUmyOs8a5tpKCfMx2WHVPF178jpRAaS6JDPwCb+w1PjDvGKEsO9vmD4mTlw
# jF8PLM43S6vNf4TTJN3I/mTq2UsD1hJTgrP+QtgKLxmfKAEpmakpZ05p/7jPStN+
# 8j4RKb8n5hjsqjOXwfWEGC6j+FItb6GCEuUwghLhBgorBgEEAYI3AwMBMYIS0TCC
# Es0GCSqGSIb3DQEHAqCCEr4wghK6AgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFRBgsq
# hkiG9w0BCRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl
# AwQCAQUABCDMbVHdMPv/oaKjVrFXb7Nt0b6QuUblmDj5Gv813Hx/sQIGXfwqktGf
# GBMyMDIwMDExMDIzNTAyMy45ODRaMASAAgH0oIHQpIHNMIHKMQswCQYDVQQGEwJV
# UzELMAkGA1UECBMCV0ExEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
# c29mdCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0IElyZWxhbmQgT3Bl
# cmF0aW9ucyBMaW1pdGVkMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjpBODQxLTRC
# QjQtQ0E5MzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaCC
# DjwwggTxMIID2aADAgECAhMzAAABDiaR8p2S24EpAAAAAAEOMA0GCSqGSIb3DQEB
# CwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH
# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV
# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTE5MTAyMzIzMTkx
# OFoXDTIxMDEyMTIzMTkxOFowgcoxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJXQTEQ
# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
# MS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQx
# JjAkBgNVBAsTHVRoYWxlcyBUU1MgRVNOOkE4NDEtNEJCNC1DQTkzMSUwIwYDVQQD
# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0BAQEF
# AAOCAQ8AMIIBCgKCAQEA1QGXoic9qzVJuRZ0Feyi6GsuxVwPK1jGnRlh1ZCqeR/K
# Fev+9ekWvaOHEMb1SqLiG8sA2TOTqDMdXCt1IxgicCSeuObPDXVF940D8FM5Oow0
# GK0FGIR87HSdmTo1lydgKke2Cs316lwHF54i0ntZX7yxT3LStuYe0WB0zZXRIJR5
# xGMslEgtihC2x8if8eEVJRi9GeNRggcy8Zpp0F0Q/FUM/Zsd/TudTM+kAVaSAZQY
# XB5XVKloLJS9c9ubqn2Fyi6Ud0tqXJRI/xMK1oRvzkgmQYaYNHW6vvp82G3YV1HL
# TWcDCO1KysUbXAOeQzTAfxEwqJQB1mgXov8rhDuE4wIDAQABo4IBGzCCARcwHQYD
# VR0OBBYEFEHkpKvU5iBeUmtHl9SKdyv/U9/ZMB8GA1UdIwQYMBaAFNVjOlyKMZDz
# Q3t8RhvFM2hahW1VMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9z
# b2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1RpbVN0YVBDQV8yMDEwLTA3LTAx
# LmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWlj
# cm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljVGltU3RhUENBXzIwMTAtMDctMDEuY3J0
# MAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEL
# BQADggEBAAZG+Un2GKgqoNKCGw8MyHtJzPOAqqW346i6HYuwXVbXzAgrgHn1MyfT
# 5ktsWR6vDLjTpecvqRwyTe2Ym7MhE4aHg9B6KVRtz11Z/UF5o5Ww2EcTK93uyhnq
# kbSXU6wzHJ8f3zcu5h49uzJproXBwUzsj41Pg/kZ08m6oEKzIk9KWNS1TPj8cYwm
# jsUi3OngmRjbwHEahkCWqqRmvLghCKRoXaW6SL9VFrSFa4zrMwJi1aCDS/2I2GBO
# 2v2bZhbHjYMmc71sMzWEneF717TK2HP1TslAXooH1SltV+9+C+dWulVYkiKboQ+8
# fCwZS4wevO276B+UIT8OEZ29mfdBBEkwggZxMIIEWaADAgECAgphCYEqAAAAAAAC
# MA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu
# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
# cmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRo
# b3JpdHkgMjAxMDAeFw0xMDA3MDEyMTM2NTVaFw0yNTA3MDEyMTQ2NTVaMHwxCzAJ
# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k
# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv
# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
# MIIBCgKCAQEAqR0NvHcRijog7PwTl/X6f2mUa3RUENWlCgCChfvtfGhLLF/Fw+Vh
# wna3PmYrW/AVUycEMR9BGxqVHc4JE458YTBZsTBED/FgiIRUQwzXTbg4CLNC3ZOs
# 1nMwVyaCo0UN0Or1R4HNvyRgMlhgRvJYR4YyhB50YWeRX4FUsc+TTJLBxKZd0WET
# bijGGvmGgLvfYfxGwScdJGcSchohiq9LZIlQYrFd/XcfPfBXday9ikJNQFHRD5wG
# Pmd/9WbAA5ZEfu/QS/1u5ZrKsajyeioKMfDaTgaRtogINeh4HLDpmc085y9Euqf0
# 3GS9pAHBIAmTeM38vMDJRF1eFpwBBU8iTQIDAQABo4IB5jCCAeIwEAYJKwYBBAGC
# NxUBBAMCAQAwHQYDVR0OBBYEFNVjOlyKMZDzQ3t8RhvFM2hahW1VMBkGCSsGAQQB
# gjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/
# MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJ
# oEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01p
# Y1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYB
# BQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljUm9v
# Q2VyQXV0XzIwMTAtMDYtMjMuY3J0MIGgBgNVHSABAf8EgZUwgZIwgY8GCSsGAQQB
# gjcuAzCBgTA9BggrBgEFBQcCARYxaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL1BL
# SS9kb2NzL0NQUy9kZWZhdWx0Lmh0bTBABggrBgEFBQcCAjA0HjIgHQBMAGUAZwBh
# AGwAXwBQAG8AbABpAGMAeQBfAFMAdABhAHQAZQBtAGUAbgB0AC4gHTANBgkqhkiG
# 9w0BAQsFAAOCAgEAB+aIUQ3ixuCYP4FxAz2do6Ehb7Prpsz1Mb7PBeKp/vpXbRkw
# s8LFZslq3/Xn8Hi9x6ieJeP5vO1rVFcIK1GCRBL7uVOMzPRgEop2zEBAQZvcXBf/
# XPleFzWYJFZLdO9CEMivv3/Gf/I3fVo/HPKZeUqRUgCvOA8X9S95gWXZqbVr5MfO
# 9sp6AG9LMEQkIjzP7QOllo9ZKby2/QThcJ8ySif9Va8v/rbljjO7Yl+a21dA6fHO
# mWaQjP9qYn/dxUoLkSbiOewZSnFjnXshbcOco6I8+n99lmqQeKZt0uGc+R38ONiU
# 9MalCpaGpL2eGq4EQoO4tYCbIjggtSXlZOz39L9+Y1klD3ouOVd2onGqBooPiRa6
# YacRy5rYDkeagMXQzafQ732D8OE7cQnfXXSYIghh2rBQHm+98eEA3+cxB6STOvdl
# R3jo+KhIq/fecn5ha293qYHLpwmsObvsxsvYgrRyzR30uIUBHoD7G4kqVDmyW9rI
# DVWZeodzOwjmmC3qjeAzLhIp9cAvVCch98isTtoouLGp25ayp0Kiyc8ZQU3ghvkq
# mqMRZjDTu3QyS99je/WZii8bxyGvWbWu3EQ8l1Bx16HSxVXjad5XwdHeMMD9zOZN
# +w2/XU/pnR4ZOC+8z1gFLu8NoFA12u8JJxzVs341Hgi62jbb01+P3nSISRKhggLO
# MIICNwIBATCB+KGB0KSBzTCByjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAw
# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
# LTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEm
# MCQGA1UECxMdVGhhbGVzIFRTUyBFU046QTg0MS00QkI0LUNBOTMxJTAjBgNVBAMT
# HE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoBATAHBgUrDgMCGgMVAJJj
# QxyV1phFeiHshXhCMLp8MgoVoIGDMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNV
# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
# c29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg
# UENBIDIwMTAwDQYJKoZIhvcNAQEFBQACBQDhwwEkMCIYDzIwMjAwMTEwMjE1NjUy
# WhgPMjAyMDAxMTEyMTU2NTJaMHcwPQYKKwYBBAGEWQoEATEvMC0wCgIFAOHDASQC
# AQAwCgIBAAICG2oCAf8wBwIBAAICEYEwCgIFAOHEUqQCAQAwNgYKKwYBBAGEWQoE
# AjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkq
# hkiG9w0BAQUFAAOBgQA4Dt4KOVEe6Yx6gpIhzRRcp3BFu2Mxp0r4LqqkDaudnrnk
# dQk1bs0tRLaT3QwGrlbT5OKsAFtDPRsOzLvaJp9ZalfRbUvGWvdDk/5qSLfNTaI3
# mgR3+hu0Xp2pgp5OaoxjLEosGPrhpta2l9m0YVvQUr9WCWP/VQ+O7XSSXbyVRTGC
# Aw0wggMJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u
# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp
# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB
# DiaR8p2S24EpAAAAAAEOMA0GCWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMx
# DQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIC8auh6ppCRosw8SJldYm4GS
# OvNnzbl3GEUge9V0dYmwMIH6BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQgaL/3
# j59vrVvUYSOCmC1iG5dz02NMKRTVU6mCFFpL3jAwgZgwgYCkfjB8MQswCQYDVQQG
# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQg
# VGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAQ4mkfKdktuBKQAAAAABDjAiBCAGAci8
# Q6E0JO0jRX+JHzM0dOnqkUQqXtVjYbJtAuYf5zANBgkqhkiG9w0BAQsFAASCAQCT
# G+VeiQ0R+ilfqnkT44qk+QIBWB7rV8GAHi4sVWo2h2B/OpprgLU7L/uxp58BeDbZ
# Yppb9C0I7xcOp1E1nfOwF0Gstaje9UL5RxiDdH+9WIzC0Ge3B04s4PeDmEUG2VRO
# VIZijHDSHTkCk/t2raBQgv35SwE+Q8IrO0a80yFWTON/r1cRrf97IXwuKuTpLsKO
# /kIeEytpgFvwloYZ7UyFaYuzf8zf1NfMyy38MXPk/fD668rsBrgU9WzImf83/2HX
# Y2O3E02zmLr21rZ/KMbJuJV09e2t6S+bALGKlf1tpuZA7rVu52tVqE1mPq95lYzg
# R84SkDaU3OEiuINELsO9
# SIG # End signature block