exports/v1.0-beta/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 checkMemberGroups
.Description
Invoke action checkMemberGroups
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IPathsO5Kx2YServiceprincipalsServiceprincipalIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema
.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.
 
BODYPARAMETER <IPathsO5Kx2YServiceprincipalsServiceprincipalIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema>: .
  [(Any) <Object>]: This indicates any property can be added to this object.
  [GroupIds <String[]>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/confirm-mgserviceprincipalmembergroup
#>

function Confirm-MgServicePrincipalMemberGroup {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='CheckExpanded1', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Check1', Mandatory)]
    [Parameter(ParameterSetName='CheckExpanded1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

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

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

    [Parameter(ParameterSetName='CheckExpanded1')]
    [Parameter(ParameterSetName='CheckViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # .
    ${GroupIds},

    [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 = @{
            Check1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Confirm-MgServicePrincipalMemberGroup_Check1';
            CheckExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Confirm-MgServicePrincipalMemberGroup_CheckExpanded1';
            CheckViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Confirm-MgServicePrincipalMemberGroup_CheckViaIdentity1';
            CheckViaIdentityExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Confirm-MgServicePrincipalMemberGroup_CheckViaIdentityExpanded1';
        }
        $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 checkMemberObjects
.Description
Invoke action checkMemberObjects
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IPaths1Ffhl47ServiceprincipalsServiceprincipalIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema
.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.
 
BODYPARAMETER <IPaths1Ffhl47ServiceprincipalsServiceprincipalIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema>: .
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Ids <String[]>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/confirm-mgserviceprincipalmemberobject
#>

function Confirm-MgServicePrincipalMemberObject {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='CheckExpanded1', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Check1', Mandatory)]
    [Parameter(ParameterSetName='CheckExpanded1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

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

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

    [Parameter(ParameterSetName='CheckExpanded1')]
    [Parameter(ParameterSetName='CheckViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # .
    ${Ids},

    [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 = @{
            Check1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Confirm-MgServicePrincipalMemberObject_Check1';
            CheckExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Confirm-MgServicePrincipalMemberObject_CheckExpanded1';
            CheckViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Confirm-MgServicePrincipalMemberObject_CheckViaIdentity1';
            CheckViaIdentityExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Confirm-MgServicePrincipalMemberObject_CheckViaIdentityExpanded1';
        }
        $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 discover
.Description
Invoke action discover
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/find-mgserviceprincipalsynchronizationjobschemadirectory
#>

function Find-MgServicePrincipalSynchronizationJobSchemaDirectory {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition])]
[CmdletBinding(DefaultParameterSetName='Discover', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Discover', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of directoryDefinition
    ${DirectoryDefinitionId},

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

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

    [Parameter(ParameterSetName='DiscoverViaIdentity', 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 = @{
            Discover = 'Microsoft.Graph.Identity.ServicePrincipal.private\Find-MgServicePrincipalSynchronizationJobSchemaDirectory_Discover';
            DiscoverViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Find-MgServicePrincipalSynchronizationJobSchemaDirectory_DiscoverViaIdentity';
        }
        $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 discover
.Description
Invoke action discover
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/find-mgserviceprincipalsynchronizationtemplateschemadirectory
#>

function Find-MgServicePrincipalSynchronizationTemplateSchemaDirectory {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition])]
[CmdletBinding(DefaultParameterSetName='Discover', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Discover', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of directoryDefinition
    ${DirectoryDefinitionId},

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

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

    [Parameter(ParameterSetName='DiscoverViaIdentity', 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 = @{
            Discover = 'Microsoft.Graph.Identity.ServicePrincipal.private\Find-MgServicePrincipalSynchronizationTemplateSchemaDirectory_Discover';
            DiscoverViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Find-MgServicePrincipalSynchronizationTemplateSchemaDirectory_DiscoverViaIdentity';
        }
        $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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment1
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalapproleassignedto
#>

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

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

    [Parameter(ParameterSetName='GetViaIdentity1', 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()]
    [Alias('Expand')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalAppRoleAssignedTo_Get1';
            GetViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalAppRoleAssignedTo_GetViaIdentity1';
            List1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalAppRoleAssignedTo_List1';
        }
        $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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment1
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalapproleassignment
#>

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

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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()]
    [Alias('Expand')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

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

    [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]
    # Search items by search phrases
    ${Search},

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

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

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

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

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

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

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

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

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

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

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

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
Invoke action getByIds
.Description
Invoke action getByIds
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalbyid
#>

function Get-MgServicePrincipalById {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject])]
[CmdletBinding(DefaultParameterSetName='GetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # .
    ${Ids},

    [Parameter()]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # .
    ${Types},

    [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 = @{
            GetExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalById_GetExpanded';
        }
        $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 ref of claimsMappingPolicies from servicePrincipals
.Description
Get ref of claimsMappingPolicies from servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalclaimmappingpolicybyref
#>

function Get-MgServicePrincipalClaimMappingPolicyByRef {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

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

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            List1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalClaimMappingPolicyByRef_List1';
        }
        $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 claimsMappingPolicies from servicePrincipals
.Description
Get claimsMappingPolicies from servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphClaimsMappingPolicy1
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalclaimmappingpolicy
#>

function Get-MgServicePrincipalClaimMappingPolicy {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphClaimsMappingPolicy1])]
[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of claimsMappingPolicy
    ${ClaimsMappingPolicyId},

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

    [Parameter(ParameterSetName='GetViaIdentity1', 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()]
    [Alias('Expand')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalClaimMappingPolicy_Get1';
            GetViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalClaimMappingPolicy_GetViaIdentity1';
            List1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalClaimMappingPolicy_List1';
        }
        $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 ref of createdObjects from servicePrincipals
.Description
Get ref of createdObjects from servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalcreatedobjectbyref
#>

function Get-MgServicePrincipalCreatedObjectByRef {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

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

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            List1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalCreatedObjectByRef_List1';
        }
        $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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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='List1', PositionalBinding=$false)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of directoryObject
    ${DirectoryObjectId},

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

    [Parameter(ParameterSetName='GetViaIdentity1', 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()]
    [Alias('Expand')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalCreatedObject_Get1';
            GetViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalCreatedObject_GetViaIdentity1';
            List1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalCreatedObject_List1';
        }
        $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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePrincipal1
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipaldelta
#>

function Get-MgServicePrincipalDelta {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePrincipal1])]
[CmdletBinding(DefaultParameterSetName='Delta', PositionalBinding=$false)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
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 endpoints from servicePrincipals
.Description
Get endpoints from servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphEndpoint
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalendpoint
#>

function Get-MgServicePrincipalEndpoint {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphEndpoint])]
[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of endpoint
    ${EndpointId},

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

    [Parameter(ParameterSetName='GetViaIdentity1', 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()]
    [Alias('Expand')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalEndpoint_Get1';
            GetViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalEndpoint_GetViaIdentity1';
            List1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalEndpoint_List1';
        }
        $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 ref of homeRealmDiscoveryPolicies from servicePrincipals
.Description
Get ref of homeRealmDiscoveryPolicies from servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalhomerealmdiscoverypolicybyref
#>

function Get-MgServicePrincipalHomeRealmDiscoveryPolicyByRef {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

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

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            List1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalHomeRealmDiscoveryPolicyByRef_List1';
        }
        $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 homeRealmDiscoveryPolicies from servicePrincipals
.Description
Get homeRealmDiscoveryPolicies from servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphHomeRealmDiscoveryPolicy1
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalhomerealmdiscoverypolicy
#>

function Get-MgServicePrincipalHomeRealmDiscoveryPolicy {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphHomeRealmDiscoveryPolicy1])]
[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of homeRealmDiscoveryPolicy
    ${HomeRealmDiscoveryPolicyId},

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

    [Parameter(ParameterSetName='GetViaIdentity1', 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()]
    [Alias('Expand')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalHomeRealmDiscoveryPolicy_Get1';
            GetViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalHomeRealmDiscoveryPolicy_GetViaIdentity1';
            List1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalHomeRealmDiscoveryPolicy_List1';
        }
        $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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of licenseDetails
    ${LicenseDetailsId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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()]
    [Alias('Expand')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

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

    [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]
    # Search items by search phrases
    ${Search},

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

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

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

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

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

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

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

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

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

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

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

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 ref of memberOf from servicePrincipals
.Description
Get ref of memberOf from servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalmemberbyref
#>

function Get-MgServicePrincipalMemberByRef {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

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

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            List1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMemberByRef_List1';
        }
        $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 getMemberGroups
.Description
Invoke action getMemberGroups
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IPaths1850388ServiceprincipalsServiceprincipalIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema
.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.
 
BODYPARAMETER <IPaths1850388ServiceprincipalsServiceprincipalIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema>: .
  [(Any) <Object>]: This indicates any property can be added to this object.
  [SecurityEnabledOnly <Boolean?>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalmembergroup
#>

function Get-MgServicePrincipalMemberGroup {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='GetExpanded1', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Parameter(ParameterSetName='GetExpanded1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

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

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

    [Parameter(ParameterSetName='GetExpanded1')]
    [Parameter(ParameterSetName='GetViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${SecurityEnabledOnly},

    [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 = @{
            Get1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMemberGroup_Get1';
            GetExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMemberGroup_GetExpanded1';
            GetViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMemberGroup_GetViaIdentity1';
            GetViaIdentityExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMemberGroup_GetViaIdentityExpanded1';
        }
        $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 getMemberObjects
.Description
Invoke action getMemberObjects
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IPaths1Md6PmhServiceprincipalsServiceprincipalIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema
.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.
 
BODYPARAMETER <IPaths1Md6PmhServiceprincipalsServiceprincipalIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema>: .
  [(Any) <Object>]: This indicates any property can be added to this object.
  [SecurityEnabledOnly <Boolean?>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalmemberobject
#>

function Get-MgServicePrincipalMemberObject {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='GetExpanded1', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Parameter(ParameterSetName='GetExpanded1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

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

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

    [Parameter(ParameterSetName='GetExpanded1')]
    [Parameter(ParameterSetName='GetViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${SecurityEnabledOnly},

    [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 = @{
            Get1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMemberObject_Get1';
            GetExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMemberObject_GetExpanded1';
            GetViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMemberObject_GetViaIdentity1';
            GetViaIdentityExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMemberObject_GetViaIdentityExpanded1';
        }
        $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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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='List1', PositionalBinding=$false)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of directoryObject
    ${DirectoryObjectId},

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

    [Parameter(ParameterSetName='GetViaIdentity1', 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()]
    [Alias('Expand')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMember_Get1';
            GetViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMember_GetViaIdentity1';
            List1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMember_List1';
        }
        $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 ref of oauth2PermissionGrants from servicePrincipals
.Description
Get ref of oauth2PermissionGrants from servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipaloauth2permissiongrantbyref
#>

function Get-MgServicePrincipalOauth2PermissionGrantByRef {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

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

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            List1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOauth2PermissionGrantByRef_List1';
        }
        $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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphOAuth2PermissionGrant1
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipaloauth2permissiongrant
#>

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

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

    [Parameter(ParameterSetName='GetViaIdentity1', 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()]
    [Alias('Expand')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOauth2PermissionGrant_Get1';
            GetViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOauth2PermissionGrant_GetViaIdentity1';
            List1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOauth2PermissionGrant_List1';
        }
        $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 ref of ownedObjects from servicePrincipals
.Description
Get ref of ownedObjects from servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalownedobjectbyref
#>

function Get-MgServicePrincipalOwnedObjectByRef {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

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

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            List1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOwnedObjectByRef_List1';
        }
        $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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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='List1', PositionalBinding=$false)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of directoryObject
    ${DirectoryObjectId},

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

    [Parameter(ParameterSetName='GetViaIdentity1', 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()]
    [Alias('Expand')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOwnedObject_Get1';
            GetViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOwnedObject_GetViaIdentity1';
            List1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOwnedObject_List1';
        }
        $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 ref of owners from servicePrincipals
.Description
Get ref of owners from servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalownerbyref
#>

function Get-MgServicePrincipalOwnerByRef {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

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

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            List1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOwnerByRef_List1';
        }
        $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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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='List1', PositionalBinding=$false)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of directoryObject
    ${DirectoryObjectId},

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

    [Parameter(ParameterSetName='GetViaIdentity1', 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()]
    [Alias('Expand')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOwner_Get1';
            GetViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOwner_GetViaIdentity1';
            List1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOwner_List1';
        }
        $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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IPathsY2DqcyServiceprincipalsServiceprincipalIdMicrosoftGraphGetpasswordsinglesignoncredentialsPostRequestbodyContentApplicationJsonSchema
.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 <IPathsY2DqcyServiceprincipalsServiceprincipalIdMicrosoftGraphGetpasswordsinglesignoncredentialsPostRequestbodyContentApplicationJsonSchema>: .
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='GetExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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.IPathsY2DqcyServiceprincipalsServiceprincipalIdMicrosoftGraphGetpasswordsinglesignoncredentialsPostRequestbodyContentApplicationJsonSchema]
    # .
    # 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.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='GetExpanded')]
    [Parameter(ParameterSetName='GetViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${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
Invoke action acquireAccessToken
.Description
Invoke action acquireAccessToken
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IPathsNrfoirServiceprincipalsServiceprincipalIdSynchronizationMicrosoftGraphAcquireaccesstokenPostRequestbodyContentApplicationJsonSchema
.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 <IPathsNrfoirServiceprincipalsServiceprincipalIdSynchronizationMicrosoftGraphAcquireaccesstokenPostRequestbodyContentApplicationJsonSchema>: .
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Credentials <IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]>]:
    [Key <String>]: synchronizationSecret
    [Value <String>]:
 
CREDENTIALS <IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]>: .
  [Key <String>]: synchronizationSecret
  [Value <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipalsynchronizationaccesstoken
#>

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

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

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

    [Parameter(ParameterSetName='AcquireExpanded')]
    [Parameter(ParameterSetName='AcquireViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]]
    # .
    # To construct, see NOTES section for CREDENTIALS properties and create a hash table.
    ${Credentials},

    [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 = @{
            Acquire = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationAccessToken_Acquire';
            AcquireExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationAccessToken_AcquireExpanded';
            AcquireViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationAccessToken_AcquireViaIdentity';
            AcquireViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationAccessToken_AcquireViaIdentityExpanded';
        }
        $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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of directoryDefinition
    ${DirectoryDefinitionId},

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

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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()]
    [Alias('Expand')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

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

    [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]
    # Search items by search phrases
    ${Search},

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

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

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

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

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

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

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

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

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

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

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

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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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()]
    [Alias('Expand')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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()]
    [Alias('Expand')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

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

    [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]
    # Search items by search phrases
    ${Search},

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

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

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

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

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

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

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

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

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

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

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

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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of directoryDefinition
    ${DirectoryDefinitionId},

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

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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()]
    [Alias('Expand')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

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

    [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]
    # Search items by search phrases
    ${Search},

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

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

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

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

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

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

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

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

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

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

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

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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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()]
    [Alias('Expand')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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()]
    [Alias('Expand')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

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

    [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]
    # Search items by search phrases
    ${Search},

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

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

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

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

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

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

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

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

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

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

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

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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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()]
    [Alias('Expand')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.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 ref of tokenIssuancePolicies from servicePrincipals
.Description
Get ref of tokenIssuancePolicies from servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipaltokenissuancepolicybyref
#>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalTokenIssuancePolicyByRef_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 tokenIssuancePolicies from servicePrincipals
.Description
Get tokenIssuancePolicies from servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphTokenIssuancePolicy1
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipaltokenissuancepolicy
#>

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

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

    [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()]
    [Alias('Expand')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

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

    [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]
    # Search items by search phrases
    ${Search},

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalTokenIssuancePolicy_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalTokenIssuancePolicy_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalTokenIssuancePolicy_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 ref of tokenLifetimePolicies from servicePrincipals
.Description
Get ref of tokenLifetimePolicies from servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipaltokenlifetimepolicybyref
#>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalTokenLifetimePolicyByRef_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 tokenLifetimePolicies from servicePrincipals
.Description
Get tokenLifetimePolicies from servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphTokenLifetimePolicy1
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipaltokenlifetimepolicy
#>

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

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

    [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()]
    [Alias('Expand')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

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

    [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]
    # Search items by search phrases
    ${Search},

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalTokenLifetimePolicy_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalTokenLifetimePolicy_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalTokenLifetimePolicy_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 ref of transitiveMemberOf from servicePrincipals
.Description
Get ref of transitiveMemberOf from servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipaltransitivememberbyref
#>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalTransitiveMemberByRef_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 transitiveMemberOf from servicePrincipals
.Description
Get transitiveMemberOf from servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of directoryObject
    ${DirectoryObjectId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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()]
    [Alias('Expand')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

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

    [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]
    # Search items by search phrases
    ${Search},

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

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

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

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

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

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

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

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

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

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

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

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
Invoke action getUserOwnedObjects
.Description
Invoke action getUserOwnedObjects
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPaths1Ob0K0NServiceprincipalsMicrosoftGraphGetuserownedobjectsPostRequestbodyContentApplicationJsonSchema
.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.
 
BODYPARAMETER <IPaths1Ob0K0NServiceprincipalsMicrosoftGraphGetuserownedobjectsPostRequestbodyContentApplicationJsonSchema>: .
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String>]:
  [UserId <String>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipaluserownedobject
#>

function Get-MgServicePrincipalUserOwnedObject {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject])]
[CmdletBinding(DefaultParameterSetName='GetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Get', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IPaths1Ob0K0NServiceprincipalsMicrosoftGraphGetuserownedobjectsPostRequestbodyContentApplicationJsonSchema]
    # .
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

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

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

    [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-MgServicePrincipalUserOwnedObject_Get';
            GetExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalUserOwnedObject_GetExpanded';
        }
        $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 getByIds
.Description
Invoke action getByIds
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IPaths15YkyvsServiceprincipalsMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePrincipal1
.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 <IPaths15YkyvsServiceprincipalsMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema>: .
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Ids <String[]>]:
  [Types <String[]>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipal
#>

function Get-MgServicePrincipal {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject], [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePrincipal1])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Get3', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='GetViaIdentity1', 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='Get3')]
    [Parameter(ParameterSetName='GetViaIdentity1')]
    [Parameter(ParameterSetName='List')]
    [Alias('Expand')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

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

    [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]
    # Search items by search phrases
    ${Search},

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

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

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

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

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

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

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

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

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

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

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

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

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';
            Get3 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipal_Get3';
            GetViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipal_GetViaIdentity1';
            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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Filter', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Filter', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Filter', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Filter', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Functions', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Functions', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Functions', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Functions', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IPathsOmq7Q9ServiceprincipalsServiceprincipalIdSynchronizationJobsSynchronizationjobIdSchemaMicrosoftGraphParseexpressionPostRequestbodyContentApplicationJsonSchema
.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 <IPathsOmq7Q9ServiceprincipalsServiceprincipalIdSynchronizationJobsSynchronizationjobIdSchemaMicrosoftGraphParseexpressionPostRequestbodyContentApplicationJsonSchema>: .
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Expression <String>]:
  [TargetAttributeDefinition <IMicrosoftGraphAttributeDefinition>]: attributeDefinition
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Anchor <Boolean?>]:
    [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Key <String>]:
      [Value <String>]:
    [CaseExact <Boolean?>]:
    [DefaultValue <String>]:
    [FlowNullValues <Boolean?>]:
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Multivalued <Boolean?>]:
    [Mutability <String>]: mutability
    [Name <String>]:
    [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
      [ReferencedObjectName <String>]:
      [ReferencedProperty <String>]:
    [Required <Boolean?>]:
    [Type <String>]: attributeType
  [TestInputObject <IMicrosoftGraphExpressionInputObject>]: expressionInputObject
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Definition <IMicrosoftGraphObjectDefinition>]: objectDefinition
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [Properties <IMicrosoftGraphStringKeyObjectValuePair[]>]:
      [Key <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
 
TARGETATTRIBUTEDEFINITION <IMicrosoftGraphAttributeDefinition>: attributeDefinition
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Anchor <Boolean?>]:
  [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Key <String>]:
    [Value <String>]:
  [CaseExact <Boolean?>]:
  [DefaultValue <String>]:
  [FlowNullValues <Boolean?>]:
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Key <String>]:
    [Value <String>]:
  [Multivalued <Boolean?>]:
  [Mutability <String>]: mutability
  [Name <String>]:
  [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
    [ReferencedObjectName <String>]:
    [ReferencedProperty <String>]:
  [Required <Boolean?>]:
  [Type <String>]: attributeType
 
TESTINPUTOBJECT <IMicrosoftGraphExpressionInputObject>: expressionInputObject
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Definition <IMicrosoftGraphObjectDefinition>]: objectDefinition
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
      [Anchor <Boolean?>]:
      [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
        [Key <String>]:
        [Value <String>]:
      [CaseExact <Boolean?>]:
      [DefaultValue <String>]:
      [FlowNullValues <Boolean?>]:
      [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[]>]:
  [Properties <IMicrosoftGraphStringKeyObjectValuePair[]>]:
    [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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Parse', Mandatory)]
    [Parameter(ParameterSetName='ParseExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Parse', Mandatory)]
    [Parameter(ParameterSetName='ParseExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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.IPathsOmq7Q9ServiceprincipalsServiceprincipalIdSynchronizationJobsSynchronizationjobIdSchemaMicrosoftGraphParseexpressionPostRequestbodyContentApplicationJsonSchema]
    # .
    # 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')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

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

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

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphExpressionInputObject]
    # expressionInputObject
    # To construct, see NOTES section for TESTINPUTOBJECT properties and create a hash table.
    ${TestInputObject},

    [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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IPaths1Ia9XfcServiceprincipalsServiceprincipalIdSynchronizationTemplatesSynchronizationtemplateIdSchemaMicrosoftGraphParseexpressionPostRequestbodyContentApplicationJsonSchema
.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 <IPaths1Ia9XfcServiceprincipalsServiceprincipalIdSynchronizationTemplatesSynchronizationtemplateIdSchemaMicrosoftGraphParseexpressionPostRequestbodyContentApplicationJsonSchema>: .
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Expression <String>]:
  [TargetAttributeDefinition <IMicrosoftGraphAttributeDefinition>]: attributeDefinition
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Anchor <Boolean?>]:
    [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Key <String>]:
      [Value <String>]:
    [CaseExact <Boolean?>]:
    [DefaultValue <String>]:
    [FlowNullValues <Boolean?>]:
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Multivalued <Boolean?>]:
    [Mutability <String>]: mutability
    [Name <String>]:
    [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
      [ReferencedObjectName <String>]:
      [ReferencedProperty <String>]:
    [Required <Boolean?>]:
    [Type <String>]: attributeType
  [TestInputObject <IMicrosoftGraphExpressionInputObject>]: expressionInputObject
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Definition <IMicrosoftGraphObjectDefinition>]: objectDefinition
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [Properties <IMicrosoftGraphStringKeyObjectValuePair[]>]:
      [Key <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
 
TARGETATTRIBUTEDEFINITION <IMicrosoftGraphAttributeDefinition>: attributeDefinition
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Anchor <Boolean?>]:
  [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Key <String>]:
    [Value <String>]:
  [CaseExact <Boolean?>]:
  [DefaultValue <String>]:
  [FlowNullValues <Boolean?>]:
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Key <String>]:
    [Value <String>]:
  [Multivalued <Boolean?>]:
  [Mutability <String>]: mutability
  [Name <String>]:
  [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
    [ReferencedObjectName <String>]:
    [ReferencedProperty <String>]:
  [Required <Boolean?>]:
  [Type <String>]: attributeType
 
TESTINPUTOBJECT <IMicrosoftGraphExpressionInputObject>: expressionInputObject
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Definition <IMicrosoftGraphObjectDefinition>]: objectDefinition
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
      [Anchor <Boolean?>]:
      [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
        [Key <String>]:
        [Value <String>]:
      [CaseExact <Boolean?>]:
      [DefaultValue <String>]:
      [FlowNullValues <Boolean?>]:
      [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[]>]:
  [Properties <IMicrosoftGraphStringKeyObjectValuePair[]>]:
    [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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Parse', Mandatory)]
    [Parameter(ParameterSetName='ParseExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Parse', Mandatory)]
    [Parameter(ParameterSetName='ParseExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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.IPaths1Ia9XfcServiceprincipalsServiceprincipalIdSynchronizationTemplatesSynchronizationtemplateIdSchemaMicrosoftGraphParseexpressionPostRequestbodyContentApplicationJsonSchema]
    # .
    # 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')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

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

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

    [Parameter(ParameterSetName='ParseExpanded')]
    [Parameter(ParameterSetName='ParseViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphExpressionInputObject]
    # expressionInputObject
    # To construct, see NOTES section for TESTINPUTOBJECT properties and create a hash table.
    ${TestInputObject},

    [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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment1
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment1
.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 <IMicrosoftGraphAppRoleAssignment1>: appRoleAssignment
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [AppRoleId <String>]: The identifier (id) for the app role which is assigned to the principal. This app role must be exposed in the appRoles property on the resource application's service principal (resourceId). If the resource application has not declared any app roles, a default app role ID of 00000000-0000-0000-0000-000000000000 can be specified to signal that the principal is assigned to the resource app without any specific app roles. Required on create. Does not support $filter.
  [CreationTimestamp <DateTime?>]: The time when the app role assignment was created.The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Read-only. Does not support $filter.
  [PrincipalDisplayName <String>]: The display name of the user, group, or service principal that was granted the app role assignment. Read-only. Supports $filter (eq and startswith).
  [PrincipalId <String>]: The unique identifier (id) for the user, group or service principal being granted the app role. Required on create. Does not support $filter.
  [PrincipalType <String>]: The type of the assigned principal. This can either be 'User', 'Group' or 'ServicePrincipal'. Read-only. Does not support $filter.
  [ResourceDisplayName <String>]: The display name of the resource app's service principal to which the assignment is made. Does not support $filter.
  [ResourceId <String>]: The unique identifier (id) for the resource service principal for which the assignment is made. Required on create. Supports $filter (eq only).
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalapproleassignedto
#>

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

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

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

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The identifier (id) for the app role which is assigned to the principal.
    # This app role must be exposed in the appRoles property on the resource application's service principal (resourceId).
    # If the resource application has not declared any app roles, a default app role ID of 00000000-0000-0000-0000-000000000000 can be specified to signal that the principal is assigned to the resource app without any specific app roles.
    # Required on create.
    # Does not support $filter.
    ${AppRoleId},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The time when the app role assignment was created.The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time.
    # For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'.
    # Read-only.
    # Does not support $filter.
    ${CreationTimestamp},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The display name of the user, group, or service principal that was granted the app role assignment.
    # Read-only.
    # Supports $filter (eq and startswith).
    ${PrincipalDisplayName},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique identifier (id) for the user, group or service principal being granted the app role.
    # Required on create.
    # Does not support $filter.
    ${PrincipalId},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The type of the assigned principal.
    # This can either be 'User', 'Group' or 'ServicePrincipal'.
    # Read-only.
    # Does not support $filter.
    ${PrincipalType},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The display name of the resource app's service principal to which the assignment is made.
    # Does not support $filter.
    ${ResourceDisplayName},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique identifier (id) for the resource service principal for which the assignment is made.
    # Required on create.
    # Supports $filter (eq only).
    ${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 = @{
            Create1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalAppRoleAssignedTo_Create1';
            CreateExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalAppRoleAssignedTo_CreateExpanded1';
            CreateViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalAppRoleAssignedTo_CreateViaIdentity1';
            CreateViaIdentityExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalAppRoleAssignedTo_CreateViaIdentityExpanded1';
        }
        $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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment1
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment1
.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 <IMicrosoftGraphAppRoleAssignment1>: appRoleAssignment
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [AppRoleId <String>]: The identifier (id) for the app role which is assigned to the principal. This app role must be exposed in the appRoles property on the resource application's service principal (resourceId). If the resource application has not declared any app roles, a default app role ID of 00000000-0000-0000-0000-000000000000 can be specified to signal that the principal is assigned to the resource app without any specific app roles. Required on create. Does not support $filter.
  [CreationTimestamp <DateTime?>]: The time when the app role assignment was created.The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Read-only. Does not support $filter.
  [PrincipalDisplayName <String>]: The display name of the user, group, or service principal that was granted the app role assignment. Read-only. Supports $filter (eq and startswith).
  [PrincipalId <String>]: The unique identifier (id) for the user, group or service principal being granted the app role. Required on create. Does not support $filter.
  [PrincipalType <String>]: The type of the assigned principal. This can either be 'User', 'Group' or 'ServicePrincipal'. Read-only. Does not support $filter.
  [ResourceDisplayName <String>]: The display name of the resource app's service principal to which the assignment is made. Does not support $filter.
  [ResourceId <String>]: The unique identifier (id) for the resource service principal for which the assignment is made. Required on create. Supports $filter (eq only).
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalapproleassignment
#>

function New-MgServicePrincipalAppRoleAssignment {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment1])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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.IMicrosoftGraphAppRoleAssignment1]
    # appRoleAssignment
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The identifier (id) for the app role which is assigned to the principal.
    # This app role must be exposed in the appRoles property on the resource application's service principal (resourceId).
    # If the resource application has not declared any app roles, a default app role ID of 00000000-0000-0000-0000-000000000000 can be specified to signal that the principal is assigned to the resource app without any specific app roles.
    # Required on create.
    # Does not support $filter.
    ${AppRoleId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The time when the app role assignment was created.The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time.
    # For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'.
    # Read-only.
    # Does not support $filter.
    ${CreationTimestamp},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The display name of the user, group, or service principal that was granted the app role assignment.
    # Read-only.
    # Supports $filter (eq and startswith).
    ${PrincipalDisplayName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique identifier (id) for the user, group or service principal being granted the app role.
    # Required on create.
    # Does not support $filter.
    ${PrincipalId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The type of the assigned principal.
    # This can either be 'User', 'Group' or 'ServicePrincipal'.
    # Read-only.
    # Does not support $filter.
    ${PrincipalType},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The display name of the resource app's service principal to which the assignment is made.
    # Does not support $filter.
    ${ResourceDisplayName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique identifier (id) for the resource service principal for which the assignment is made.
    # Required on create.
    # Supports $filter (eq only).
    ${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 ref to claimsMappingPolicies for servicePrincipals
.Description
Create new navigation property ref to claimsMappingPolicies for servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
System.Collections.Hashtable
.Outputs
Microsoft.Graph.PowerShell.Models.IPathsVtc05SServiceprincipalsServiceprincipalIdClaimsmappingpoliciesRefPostResponses201ContentApplicationJsonSchema
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalclaimmappingpolicybyref
#>

function New-MgServicePrincipalClaimMappingPolicyByRef {
[OutputType([Microsoft.Graph.PowerShell.Models.IPathsVtc05SServiceprincipalsServiceprincipalIdClaimsmappingpoliciesRefPostResponses201ContentApplicationJsonSchema])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded1', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create1', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='CreateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1', 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='Create1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Runtime.Info(Required, PossibleTypes=([Microsoft.Graph.PowerShell.Models.IPaths8UpantServiceprincipalsServiceprincipalIdClaimsmappingpoliciesRefPostRequestbodyContentApplicationJsonSchema]))]
    [System.Collections.Hashtable]
    # .
    ${BodyParameter},

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

    [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 = @{
            Create1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalClaimMappingPolicyByRef_Create1';
            CreateExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalClaimMappingPolicyByRef_CreateExpanded1';
            CreateViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalClaimMappingPolicyByRef_CreateViaIdentity1';
            CreateViaIdentityExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalClaimMappingPolicyByRef_CreateViaIdentityExpanded1';
        }
        $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 ref to createdObjects for servicePrincipals
.Description
Create new navigation property ref to createdObjects for servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
System.Collections.Hashtable
.Outputs
Microsoft.Graph.PowerShell.Models.IPathsK20NafServiceprincipalsServiceprincipalIdCreatedobjectsRefPostResponses201ContentApplicationJsonSchema
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalcreatedobjectbyref
#>

function New-MgServicePrincipalCreatedObjectByRef {
[OutputType([Microsoft.Graph.PowerShell.Models.IPathsK20NafServiceprincipalsServiceprincipalIdCreatedobjectsRefPostResponses201ContentApplicationJsonSchema])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded1', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create1', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='CreateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1', 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='Create1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Runtime.Info(Required, PossibleTypes=([Microsoft.Graph.PowerShell.Models.IPaths1Rqsd59ServiceprincipalsServiceprincipalIdCreatedobjectsRefPostRequestbodyContentApplicationJsonSchema]))]
    [System.Collections.Hashtable]
    # .
    ${BodyParameter},

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

    [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 = @{
            Create1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalCreatedObjectByRef_Create1';
            CreateExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalCreatedObjectByRef_CreateExpanded1';
            CreateViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalCreatedObjectByRef_CreateViaIdentity1';
            CreateViaIdentityExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalCreatedObjectByRef_CreateViaIdentityExpanded1';
        }
        $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 endpoints for servicePrincipals
.Description
Create new navigation property to endpoints for servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphEndpoint
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphEndpoint
.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 <IMicrosoftGraphEndpoint>: Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [DeletedDateTime <DateTime?>]:
  [Id <String>]: Read-only.
  [Capability <String>]: Describes the capability that is associated with this resource. (e.g. Messages, Conversations, etc.) Not nullable. Read-only.
  [ProviderId <String>]: Application id of the publishing underlying service. Not nullable. Read-only.
  [ProviderName <String>]: Name of the publishing underlying service. Read-only.
  [ProviderResourceId <String>]: For Microsoft 365 groups, this is set to a well-known name for the resource (e.g. Yammer.FeedURL etc.). Not nullable. Read-only.
  [Uri <String>]: URL of the published resource. Not nullable. Read-only.
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalendpoint
#>

function New-MgServicePrincipalEndpoint {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphEndpoint])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded1', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create1', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='CreateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1', 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='Create1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphEndpoint]
    # Represents an Azure Active Directory object.
    # The directoryObject type is the base type for many other directory entity types.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Describes the capability that is associated with this resource.
    # (e.g.
    # Messages, Conversations, etc.) Not nullable.
    # Read-only.
    ${Capability},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # .
    ${DeletedDateTime},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Application id of the publishing underlying service.
    # Not nullable.
    # Read-only.
    ${ProviderId},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Name of the publishing underlying service.
    # Read-only.
    ${ProviderName},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # For Microsoft 365 groups, this is set to a well-known name for the resource (e.g.
    # Yammer.FeedURL etc.).
    # Not nullable.
    # Read-only.
    ${ProviderResourceId},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # URL of the published resource.
    # Not nullable.
    # Read-only.
    ${Uri},

    [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 = @{
            Create1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalEndpoint_Create1';
            CreateExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalEndpoint_CreateExpanded1';
            CreateViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalEndpoint_CreateViaIdentity1';
            CreateViaIdentityExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalEndpoint_CreateViaIdentityExpanded1';
        }
        $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 ref to homeRealmDiscoveryPolicies for servicePrincipals
.Description
Create new navigation property ref to homeRealmDiscoveryPolicies for servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
System.Collections.Hashtable
.Outputs
Microsoft.Graph.PowerShell.Models.IPaths1DezianServiceprincipalsServiceprincipalIdHomerealmdiscoverypoliciesRefPostResponses201ContentApplicationJsonSchema
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalhomerealmdiscoverypolicybyref
#>

function New-MgServicePrincipalHomeRealmDiscoveryPolicyByRef {
[OutputType([Microsoft.Graph.PowerShell.Models.IPaths1DezianServiceprincipalsServiceprincipalIdHomerealmdiscoverypoliciesRefPostResponses201ContentApplicationJsonSchema])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded1', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create1', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='CreateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1', 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='Create1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Runtime.Info(Required, PossibleTypes=([Microsoft.Graph.PowerShell.Models.IPaths1Jeby4PServiceprincipalsServiceprincipalIdHomerealmdiscoverypoliciesRefPostRequestbodyContentApplicationJsonSchema]))]
    [System.Collections.Hashtable]
    # .
    ${BodyParameter},

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

    [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 = @{
            Create1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalHomeRealmDiscoveryPolicyByRef_Create1';
            CreateExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalHomeRealmDiscoveryPolicyByRef_CreateExpanded1';
            CreateViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalHomeRealmDiscoveryPolicyByRef_CreateViaIdentity1';
            CreateViaIdentityExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalHomeRealmDiscoveryPolicyByRef_CreateViaIdentityExpanded1';
        }
        $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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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>: licenseDetails
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [ServicePlans <IMicrosoftGraphServicePlanInfo[]>]: Information about the service plans assigned with the license. Read-only, Not nullable
    [AppliesTo <String>]: The object the service plan can be assigned to. Possible values:'User' - service plan can be assigned to individual users.'Company' - service plan can be assigned to the entire tenant.
    [ProvisioningStatus <String>]: The provisioning status of the service plan. Possible values:'Success' - Service is fully provisioned.'Disabled' - Service has been disabled.'PendingInput' - Service is not yet provisioned; awaiting service confirmation.'PendingActivation' - Service is provisioned but requires explicit activation by administrator (for example, Intune_O365 service plan)'PendingProvisioning' - Microsoft has added a new service to the product SKU and it has not been activated in the tenant, yet.
    [ServicePlanId <String>]: The unique identifier of the service plan.
    [ServicePlanName <String>]: The name of the service plan.
  [SkuId <String>]: Unique identifier (GUID) for the service SKU. Equal to the skuId property on the related SubscribedSku object. Read-only
  [SkuPartNumber <String>]: Unique SKU display name. Equal to the skuPartNumber on the related SubscribedSku object; for example: 'AAD_Premium'. Read-only
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
 
SERVICEPLANS <IMicrosoftGraphServicePlanInfo[]>: Information about the service plans assigned with the license. Read-only, Not nullable
  [AppliesTo <String>]: The object the service plan can be assigned to. Possible values:'User' - service plan can be assigned to individual users.'Company' - service plan can be assigned to the entire tenant.
  [ProvisioningStatus <String>]: The provisioning status of the service plan. Possible values:'Success' - Service is fully provisioned.'Disabled' - Service has been disabled.'PendingInput' - Service is not yet provisioned; awaiting service confirmation.'PendingActivation' - Service is provisioned but requires explicit activation by administrator (for example, Intune_O365 service plan)'PendingProvisioning' - Microsoft has added a new service to the product SKU and it has not been activated in the tenant, yet.
  [ServicePlanId <String>]: The unique identifier of the service plan.
  [ServicePlanName <String>]: The name of the service plan.
.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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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]
    # licenseDetails
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePlanInfo[]]
    # Information about the service plans assigned with the license.
    # Read-only, Not nullable
    # 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]
    # Unique identifier (GUID) for the service SKU.
    # Equal to the skuId property on the related SubscribedSku object.
    # Read-only
    ${SkuId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Unique SKU display name.
    # Equal to the skuPartNumber on the related SubscribedSku object; for example: 'AAD_Premium'.
    # Read-only
    ${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
Create new navigation property ref to memberOf for servicePrincipals
.Description
Create new navigation property ref to memberOf for servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
System.Collections.Hashtable
.Outputs
Microsoft.Graph.PowerShell.Models.IPaths1Alo6Q5ServiceprincipalsServiceprincipalIdMemberofRefPostResponses201ContentApplicationJsonSchema
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalmemberbyref
#>

function New-MgServicePrincipalMemberByRef {
[OutputType([Microsoft.Graph.PowerShell.Models.IPaths1Alo6Q5ServiceprincipalsServiceprincipalIdMemberofRefPostResponses201ContentApplicationJsonSchema])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded1', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create1', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='CreateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1', 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='Create1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Runtime.Info(Required, PossibleTypes=([Microsoft.Graph.PowerShell.Models.IPaths16Tffv7ServiceprincipalsServiceprincipalIdMemberofRefPostRequestbodyContentApplicationJsonSchema]))]
    [System.Collections.Hashtable]
    # .
    ${BodyParameter},

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

    [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 = @{
            Create1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalMemberByRef_Create1';
            CreateExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalMemberByRef_CreateExpanded1';
            CreateViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalMemberByRef_CreateViaIdentity1';
            CreateViaIdentityExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalMemberByRef_CreateViaIdentityExpanded1';
        }
        $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 ref to oauth2PermissionGrants for servicePrincipals
.Description
Create new navigation property ref to oauth2PermissionGrants for servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
System.Collections.Hashtable
.Outputs
Microsoft.Graph.PowerShell.Models.IPaths1Wv6Rz0ServiceprincipalsServiceprincipalIdOauth2PermissiongrantsRefPostResponses201ContentApplicationJsonSchema
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipaloauth2permissiongrantbyref
#>

function New-MgServicePrincipalOauth2PermissionGrantByRef {
[OutputType([Microsoft.Graph.PowerShell.Models.IPaths1Wv6Rz0ServiceprincipalsServiceprincipalIdOauth2PermissiongrantsRefPostResponses201ContentApplicationJsonSchema])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded1', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create1', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='CreateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1', 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='Create1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Runtime.Info(Required, PossibleTypes=([Microsoft.Graph.PowerShell.Models.IPaths108RahiServiceprincipalsServiceprincipalIdOauth2PermissiongrantsRefPostRequestbodyContentApplicationJsonSchema]))]
    [System.Collections.Hashtable]
    # .
    ${BodyParameter},

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

    [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 = @{
            Create1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalOauth2PermissionGrantByRef_Create1';
            CreateExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalOauth2PermissionGrantByRef_CreateExpanded1';
            CreateViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalOauth2PermissionGrantByRef_CreateViaIdentity1';
            CreateViaIdentityExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalOauth2PermissionGrantByRef_CreateViaIdentityExpanded1';
        }
        $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 ref to ownedObjects for servicePrincipals
.Description
Create new navigation property ref to ownedObjects for servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
System.Collections.Hashtable
.Outputs
Microsoft.Graph.PowerShell.Models.IPathsRw1SvpServiceprincipalsServiceprincipalIdOwnedobjectsRefPostResponses201ContentApplicationJsonSchema
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalownedobjectbyref
#>

function New-MgServicePrincipalOwnedObjectByRef {
[OutputType([Microsoft.Graph.PowerShell.Models.IPathsRw1SvpServiceprincipalsServiceprincipalIdOwnedobjectsRefPostResponses201ContentApplicationJsonSchema])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded1', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create1', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='CreateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1', 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='Create1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Runtime.Info(Required, PossibleTypes=([Microsoft.Graph.PowerShell.Models.IPaths1Et2IeyServiceprincipalsServiceprincipalIdOwnedobjectsRefPostRequestbodyContentApplicationJsonSchema]))]
    [System.Collections.Hashtable]
    # .
    ${BodyParameter},

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

    [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 = @{
            Create1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalOwnedObjectByRef_Create1';
            CreateExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalOwnedObjectByRef_CreateExpanded1';
            CreateViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalOwnedObjectByRef_CreateViaIdentity1';
            CreateViaIdentityExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalOwnedObjectByRef_CreateViaIdentityExpanded1';
        }
        $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 ref to owners for servicePrincipals
.Description
Create new navigation property ref to owners for servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
System.Collections.Hashtable
.Outputs
Microsoft.Graph.PowerShell.Models.IPaths1Twal2ZServiceprincipalsServiceprincipalIdOwnersRefPostResponses201ContentApplicationJsonSchema
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalownerbyref
#>

function New-MgServicePrincipalOwnerByRef {
[OutputType([Microsoft.Graph.PowerShell.Models.IPaths1Twal2ZServiceprincipalsServiceprincipalIdOwnersRefPostResponses201ContentApplicationJsonSchema])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded1', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create1', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='CreateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1', 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='Create1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Runtime.Info(Required, PossibleTypes=([Microsoft.Graph.PowerShell.Models.IPaths1Vj3Se6ServiceprincipalsServiceprincipalIdOwnersRefPostRequestbodyContentApplicationJsonSchema]))]
    [System.Collections.Hashtable]
    # .
    ${BodyParameter},

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

    [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 = @{
            Create1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalOwnerByRef_Create1';
            CreateExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalOwnerByRef_CreateExpanded1';
            CreateViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalOwnerByRef_CreateViaIdentity1';
            CreateViaIdentityExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalOwnerByRef_CreateViaIdentityExpanded1';
        }
        $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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IPaths1J7V6DuServiceprincipalsServiceprincipalIdMicrosoftGraphCreatepasswordsinglesignoncredentialsPostRequestbodyContentApplicationJsonSchema
.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 <IPaths1J7V6DuServiceprincipalsServiceprincipalIdMicrosoftGraphCreatepasswordsinglesignoncredentialsPostRequestbodyContentApplicationJsonSchema>: .
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Credentials <IMicrosoftGraphCredential[]>]:
    [FieldId <String>]:
    [Type <String>]:
    [Value <String>]:
  [Id <String>]:
 
CREDENTIALS <IMicrosoftGraphCredential[]>: .
  [FieldId <String>]:
  [Type <String>]:
  [Value <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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.IPaths1J7V6DuServiceprincipalsServiceprincipalIdMicrosoftGraphCreatepasswordsinglesignoncredentialsPostRequestbodyContentApplicationJsonSchema]
    # .
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphCredential[]]
    # .
    # 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]
    # .
    ${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
Invoke action provisionOnDemand
.Description
Invoke action provisionOnDemand
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IPathsJgtujvServiceprincipalsServiceprincipalIdSynchronizationJobsSynchronizationjobIdMicrosoftGraphProvisionondemandPostRequestbodyContentApplicationJsonSchema
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphStringKeyStringValuePair
.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 <IPathsJgtujvServiceprincipalsServiceprincipalIdSynchronizationJobsSynchronizationjobIdMicrosoftGraphProvisionondemandPostRequestbodyContentApplicationJsonSchema>: .
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Parameters <IMicrosoftGraphSynchronizationJobApplicationParameters[]>]:
    [RuleId <String>]:
    [Subjects <IMicrosoftGraphSynchronizationJobSubject[]>]:
      [ObjectId <String>]:
      [ObjectTypeName <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
 
PARAMETERS <IMicrosoftGraphSynchronizationJobApplicationParameters[]>: .
  [RuleId <String>]:
  [Subjects <IMicrosoftGraphSynchronizationJobSubject[]>]:
    [ObjectId <String>]:
    [ObjectTypeName <String>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalsynchronizationjobondemand
#>

function New-MgServicePrincipalSynchronizationJobOnDemand {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphStringKeyStringValuePair])]
[CmdletBinding(DefaultParameterSetName='ProvisionExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Provision', Mandatory)]
    [Parameter(ParameterSetName='ProvisionExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

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

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

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

    [Parameter(ParameterSetName='ProvisionExpanded')]
    [Parameter(ParameterSetName='ProvisionViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationJobApplicationParameters[]]
    # .
    # To construct, see NOTES section for PARAMETERS properties and create a hash table.
    ${Parameters},

    [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 = @{
            Provision = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationJobOnDemand_Provision';
            ProvisionExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationJobOnDemand_ProvisionExpanded';
            ProvisionViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationJobOnDemand_ProvisionViaIdentity';
            ProvisionViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationJobOnDemand_ProvisionViaIdentityExpanded';
        }
        $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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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>: directoryDefinition
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
  [DiscoveryDateTime <DateTime?>]:
  [Name <String>]:
  [Objects <IMicrosoftGraphObjectDefinition[]>]:
    [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
      [Anchor <Boolean?>]:
      [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
        [Key <String>]:
        [Value <String>]:
      [CaseExact <Boolean?>]:
      [DefaultValue <String>]:
      [FlowNullValues <Boolean?>]:
      [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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
 
OBJECTS <IMicrosoftGraphObjectDefinition[]>: .
  [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
    [Anchor <Boolean?>]:
    [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Key <String>]:
      [Value <String>]:
    [CaseExact <Boolean?>]:
    [DefaultValue <String>]:
    [FlowNullValues <Boolean?>]:
    [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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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]
    # directoryDefinition
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

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

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphObjectDefinition[]]
    # .
    # 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]
    # .
    ${ReadOnly},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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>: synchronizationJob
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [Schedule <IMicrosoftGraphSynchronizationSchedule>]: synchronizationSchedule
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Expiration <DateTime?>]:
    [Interval <TimeSpan?>]:
    [State <String>]: synchronizationScheduleState
  [Schema <IMicrosoftGraphSynchronizationSchema>]: synchronizationSchema
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: Read-only.
    [Directories <IMicrosoftGraphDirectoryDefinition[]>]:
      [Id <String>]: Read-only.
      [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
      [DiscoveryDateTime <DateTime?>]:
      [Name <String>]:
      [Objects <IMicrosoftGraphObjectDefinition[]>]:
        [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
          [Anchor <Boolean?>]:
          [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
            [Key <String>]:
            [Value <String>]:
          [CaseExact <Boolean?>]:
          [DefaultValue <String>]:
          [FlowNullValues <Boolean?>]:
          [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>]:
    [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?>]:
          [Source <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
            [(Any) <Object>]: This indicates any property can be added to this object.
            [Expression <String>]:
            [Name <String>]:
            [Parameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
              [Key <String>]:
              [Value <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
            [Type <String>]: attributeMappingSourceType
          [TargetAttributeName <String>]:
        [Enabled <Boolean?>]:
        [FlowTypes <String>]: objectFlowTypes
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Name <String>]:
        [Scope <IMicrosoftGraphFilter>]: filter
          [(Any) <Object>]: This indicates any property can be added to this object.
          [CategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
            [Clauses <IMicrosoftGraphFilterClause[]>]:
              [OperatorName <String>]:
              [SourceOperandName <String>]:
              [TargetOperand <IMicrosoftGraphFilterOperand>]: filterOperand
                [(Any) <Object>]: This indicates any property can be added to this object.
                [Values <String[]>]:
            [Name <String>]:
          [Groups <IMicrosoftGraphFilterGroup[]>]:
          [InputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [SourceObjectName <String>]:
        [TargetObjectName <String>]:
      [Priority <Int32?>]:
      [SourceDirectoryName <String>]:
      [TargetDirectoryName <String>]:
    [Version <String>]:
  [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Code <String>]: synchronizationStatusCode
    [CountSuccessiveCompleteFailures <Int64?>]:
    [EscrowsPruned <Boolean?>]:
    [LastExecution <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
      [(Any) <Object>]: This indicates any property can be added to this object.
      [ActivityIdentifier <String>]:
      [CountEntitled <Int64?>]:
      [CountEntitledForProvisioning <Int64?>]:
      [CountEscrowed <Int64?>]:
      [CountEscrowedRaw <Int64?>]:
      [CountExported <Int64?>]:
      [CountExports <Int64?>]:
      [CountImported <Int64?>]:
      [CountImportedDeltas <Int64?>]:
      [CountImportedReferenceDeltas <Int64?>]:
      [Error <IMicrosoftGraphSynchronizationError>]: synchronizationError
        [(Any) <Object>]: This indicates any property can be added to this object.
        [Code <String>]:
        [Message <String>]:
        [TenantActionable <Boolean?>]:
      [State <String>]: synchronizationTaskExecutionResult
      [TimeBegan <DateTime?>]:
      [TimeEnded <DateTime?>]:
    [LastSuccessfulExecution <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
    [LastSuccessfulExecutionWithExports <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
    [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
      [CompletedUnits <Int64?>]:
      [ProgressObservationDateTime <DateTime?>]:
      [TotalUnits <Int64?>]:
      [Units <String>]:
    [Quarantine <IMicrosoftGraphSynchronizationQuarantine>]: synchronizationQuarantine
      [(Any) <Object>]: This indicates any property can be added to this object.
      [CurrentBegan <DateTime?>]:
      [Error <IMicrosoftGraphSynchronizationError>]: synchronizationError
      [NextAttempt <DateTime?>]:
      [Reason <String>]: quarantineReason
      [SeriesBegan <DateTime?>]:
      [SeriesCount <Int64?>]:
    [SteadyStateFirstAchievedTime <DateTime?>]:
    [SteadyStateLastAchievedTime <DateTime?>]:
    [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
      [Key <String>]:
      [Value <Int64?>]:
    [TroubleshootingUrl <String>]:
  [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
    [Name <String>]: Name for this key-value pair
    [Value <String>]: Value for this key-value pair
  [TemplateId <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
 
SCHEDULE <IMicrosoftGraphSynchronizationSchedule>: synchronizationSchedule
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Expiration <DateTime?>]:
  [Interval <TimeSpan?>]:
  [State <String>]: synchronizationScheduleState
 
SCHEMA <IMicrosoftGraphSynchronizationSchema>: synchronizationSchema
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [Directories <IMicrosoftGraphDirectoryDefinition[]>]:
    [Id <String>]: Read-only.
    [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
    [DiscoveryDateTime <DateTime?>]:
    [Name <String>]:
    [Objects <IMicrosoftGraphObjectDefinition[]>]:
      [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
        [Anchor <Boolean?>]:
        [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
          [Key <String>]:
          [Value <String>]:
        [CaseExact <Boolean?>]:
        [DefaultValue <String>]:
        [FlowNullValues <Boolean?>]:
        [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>]:
  [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?>]:
        [Source <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
          [(Any) <Object>]: This indicates any property can be added to this object.
          [Expression <String>]:
          [Name <String>]:
          [Parameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
            [Key <String>]:
            [Value <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
          [Type <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [Scope <IMicrosoftGraphFilter>]: filter
        [(Any) <Object>]: This indicates any property can be added to this object.
        [CategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
          [Clauses <IMicrosoftGraphFilterClause[]>]:
            [OperatorName <String>]:
            [SourceOperandName <String>]:
            [TargetOperand <IMicrosoftGraphFilterOperand>]: filterOperand
              [(Any) <Object>]: This indicates any property can be added to this object.
              [Values <String[]>]:
          [Name <String>]:
        [Groups <IMicrosoftGraphFilterGroup[]>]:
        [InputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [Version <String>]:
 
STATUS <IMicrosoftGraphSynchronizationStatus>: synchronizationStatus
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Code <String>]: synchronizationStatusCode
  [CountSuccessiveCompleteFailures <Int64?>]:
  [EscrowsPruned <Boolean?>]:
  [LastExecution <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ActivityIdentifier <String>]:
    [CountEntitled <Int64?>]:
    [CountEntitledForProvisioning <Int64?>]:
    [CountEscrowed <Int64?>]:
    [CountEscrowedRaw <Int64?>]:
    [CountExported <Int64?>]:
    [CountExports <Int64?>]:
    [CountImported <Int64?>]:
    [CountImportedDeltas <Int64?>]:
    [CountImportedReferenceDeltas <Int64?>]:
    [Error <IMicrosoftGraphSynchronizationError>]: synchronizationError
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Code <String>]:
      [Message <String>]:
      [TenantActionable <Boolean?>]:
    [State <String>]: synchronizationTaskExecutionResult
    [TimeBegan <DateTime?>]:
    [TimeEnded <DateTime?>]:
  [LastSuccessfulExecution <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
  [LastSuccessfulExecutionWithExports <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
  [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
    [CompletedUnits <Int64?>]:
    [ProgressObservationDateTime <DateTime?>]:
    [TotalUnits <Int64?>]:
    [Units <String>]:
  [Quarantine <IMicrosoftGraphSynchronizationQuarantine>]: synchronizationQuarantine
    [(Any) <Object>]: This indicates any property can be added to this object.
    [CurrentBegan <DateTime?>]:
    [Error <IMicrosoftGraphSynchronizationError>]: synchronizationError
    [NextAttempt <DateTime?>]:
    [Reason <String>]: quarantineReason
    [SeriesBegan <DateTime?>]:
    [SeriesCount <Int64?>]:
  [SteadyStateFirstAchievedTime <DateTime?>]:
  [SteadyStateLastAchievedTime <DateTime?>]:
  [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
    [Key <String>]:
    [Value <Int64?>]:
  [TroubleshootingUrl <String>]:
 
SYNCHRONIZATIONJOBSETTINGS <IMicrosoftGraphKeyValuePair[]>: .
  [Name <String>]: Name for this key-value pair
  [Value <String>]: Value for this key-value pair
.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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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]
    # synchronizationJob
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

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

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

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

    [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[]]
    # .
    # 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]
    # .
    ${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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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>: directoryDefinition
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
  [DiscoveryDateTime <DateTime?>]:
  [Name <String>]:
  [Objects <IMicrosoftGraphObjectDefinition[]>]:
    [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
      [Anchor <Boolean?>]:
      [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
        [Key <String>]:
        [Value <String>]:
      [CaseExact <Boolean?>]:
      [DefaultValue <String>]:
      [FlowNullValues <Boolean?>]:
      [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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
 
OBJECTS <IMicrosoftGraphObjectDefinition[]>: .
  [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
    [Anchor <Boolean?>]:
    [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Key <String>]:
      [Value <String>]:
    [CaseExact <Boolean?>]:
    [DefaultValue <String>]:
    [FlowNullValues <Boolean?>]:
    [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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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]
    # directoryDefinition
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

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

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphObjectDefinition[]]
    # .
    # 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]
    # .
    ${ReadOnly},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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>: synchronizationTemplate
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [ApplicationId <String>]:
  [Default <Boolean?>]:
  [Description <String>]:
  [Discoverable <Boolean?>]:
  [FactoryTag <String>]:
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Key <String>]:
    [Value <String>]:
  [Schema <IMicrosoftGraphSynchronizationSchema>]: synchronizationSchema
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: Read-only.
    [Directories <IMicrosoftGraphDirectoryDefinition[]>]:
      [Id <String>]: Read-only.
      [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
      [DiscoveryDateTime <DateTime?>]:
      [Name <String>]:
      [Objects <IMicrosoftGraphObjectDefinition[]>]:
        [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
          [Anchor <Boolean?>]:
          [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
            [Key <String>]:
            [Value <String>]:
          [CaseExact <Boolean?>]:
          [DefaultValue <String>]:
          [FlowNullValues <Boolean?>]:
          [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>]:
    [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?>]:
          [Source <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
            [(Any) <Object>]: This indicates any property can be added to this object.
            [Expression <String>]:
            [Name <String>]:
            [Parameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
              [Key <String>]:
              [Value <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
            [Type <String>]: attributeMappingSourceType
          [TargetAttributeName <String>]:
        [Enabled <Boolean?>]:
        [FlowTypes <String>]: objectFlowTypes
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Name <String>]:
        [Scope <IMicrosoftGraphFilter>]: filter
          [(Any) <Object>]: This indicates any property can be added to this object.
          [CategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
            [Clauses <IMicrosoftGraphFilterClause[]>]:
              [OperatorName <String>]:
              [SourceOperandName <String>]:
              [TargetOperand <IMicrosoftGraphFilterOperand>]: filterOperand
                [(Any) <Object>]: This indicates any property can be added to this object.
                [Values <String[]>]:
            [Name <String>]:
          [Groups <IMicrosoftGraphFilterGroup[]>]:
          [InputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [SourceObjectName <String>]:
        [TargetObjectName <String>]:
      [Priority <Int32?>]:
      [SourceDirectoryName <String>]:
      [TargetDirectoryName <String>]:
    [Version <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
 
METADATA <IMicrosoftGraphMetadataEntry[]>: .
  [Key <String>]:
  [Value <String>]:
 
SCHEMA <IMicrosoftGraphSynchronizationSchema>: synchronizationSchema
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [Directories <IMicrosoftGraphDirectoryDefinition[]>]:
    [Id <String>]: Read-only.
    [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
    [DiscoveryDateTime <DateTime?>]:
    [Name <String>]:
    [Objects <IMicrosoftGraphObjectDefinition[]>]:
      [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
        [Anchor <Boolean?>]:
        [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
          [Key <String>]:
          [Value <String>]:
        [CaseExact <Boolean?>]:
        [DefaultValue <String>]:
        [FlowNullValues <Boolean?>]:
        [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>]:
  [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?>]:
        [Source <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
          [(Any) <Object>]: This indicates any property can be added to this object.
          [Expression <String>]:
          [Name <String>]:
          [Parameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
            [Key <String>]:
            [Value <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
          [Type <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [Scope <IMicrosoftGraphFilter>]: filter
        [(Any) <Object>]: This indicates any property can be added to this object.
        [CategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
          [Clauses <IMicrosoftGraphFilterClause[]>]:
            [OperatorName <String>]:
            [SourceOperandName <String>]:
            [TargetOperand <IMicrosoftGraphFilterOperand>]: filterOperand
              [(Any) <Object>]: This indicates any property can be added to this object.
              [Values <String[]>]:
          [Name <String>]:
        [Groups <IMicrosoftGraphFilterGroup[]>]:
        [InputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [Version <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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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]
    # synchronizationTemplate
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

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

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

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

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphMetadataEntry[]]
    # .
    # 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.IMicrosoftGraphSynchronizationSchema]
    # synchronizationSchema
    # To construct, see NOTES section for SCHEMA properties and create a hash table.
    ${Schema},

    [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
Create new navigation property ref to tokenIssuancePolicies for servicePrincipals
.Description
Create new navigation property ref to tokenIssuancePolicies for servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
System.Collections.Hashtable
.Outputs
Microsoft.Graph.PowerShell.Models.IPaths1Kclb4IServiceprincipalsServiceprincipalIdTokenissuancepoliciesRefPostResponses201ContentApplicationJsonSchema
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipaltokenissuancepolicybyref
#>

function New-MgServicePrincipalTokenIssuancePolicyByRef {
[OutputType([Microsoft.Graph.PowerShell.Models.IPaths1Kclb4IServiceprincipalsServiceprincipalIdTokenissuancepoliciesRefPostResponses201ContentApplicationJsonSchema])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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.Runtime.Info(Required, PossibleTypes=([Microsoft.Graph.PowerShell.Models.IPathsVj0JyxServiceprincipalsServiceprincipalIdTokenissuancepoliciesRefPostRequestbodyContentApplicationJsonSchema]))]
    [System.Collections.Hashtable]
    # .
    ${BodyParameter},

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

    [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-MgServicePrincipalTokenIssuancePolicyByRef_Create';
            CreateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalTokenIssuancePolicyByRef_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalTokenIssuancePolicyByRef_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalTokenIssuancePolicyByRef_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 ref to tokenLifetimePolicies for servicePrincipals
.Description
Create new navigation property ref to tokenLifetimePolicies for servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
System.Collections.Hashtable
.Outputs
Microsoft.Graph.PowerShell.Models.IPathsOkmdkwServiceprincipalsServiceprincipalIdTokenlifetimepoliciesRefPostResponses201ContentApplicationJsonSchema
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipaltokenlifetimepolicybyref
#>

function New-MgServicePrincipalTokenLifetimePolicyByRef {
[OutputType([Microsoft.Graph.PowerShell.Models.IPathsOkmdkwServiceprincipalsServiceprincipalIdTokenlifetimepoliciesRefPostResponses201ContentApplicationJsonSchema])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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.Runtime.Info(Required, PossibleTypes=([Microsoft.Graph.PowerShell.Models.IPathsS6BljoServiceprincipalsServiceprincipalIdTokenlifetimepoliciesRefPostRequestbodyContentApplicationJsonSchema]))]
    [System.Collections.Hashtable]
    # .
    ${BodyParameter},

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

    [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-MgServicePrincipalTokenLifetimePolicyByRef_Create';
            CreateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalTokenLifetimePolicyByRef_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalTokenLifetimePolicyByRef_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalTokenLifetimePolicyByRef_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 ref to transitiveMemberOf for servicePrincipals
.Description
Create new navigation property ref to transitiveMemberOf for servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
System.Collections.Hashtable
.Outputs
Microsoft.Graph.PowerShell.Models.IPathsWgwyuoServiceprincipalsServiceprincipalIdTransitivememberofRefPostResponses201ContentApplicationJsonSchema
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipaltransitivememberbyref
#>

function New-MgServicePrincipalTransitiveMemberByRef {
[OutputType([Microsoft.Graph.PowerShell.Models.IPathsWgwyuoServiceprincipalsServiceprincipalIdTransitivememberofRefPostResponses201ContentApplicationJsonSchema])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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.Runtime.Info(Required, PossibleTypes=([Microsoft.Graph.PowerShell.Models.IPaths1Wsv0MrServiceprincipalsServiceprincipalIdTransitivememberofRefPostRequestbodyContentApplicationJsonSchema]))]
    [System.Collections.Hashtable]
    # .
    ${BodyParameter},

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

    [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-MgServicePrincipalTransitiveMemberByRef_Create';
            CreateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalTransitiveMemberByRef_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalTransitiveMemberByRef_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalTransitiveMemberByRef_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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePrincipal1
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePrincipal1
.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[]>: Defines custom behavior that a consuming service can use to call an app in specific contexts. For example, applications that can render file streams may set the addIns property for its 'FileHandler' functionality. This will let services like Microsoft 365 call the application in the context of a document the user is working on.
  [Id <String>]:
  [Properties <IMicrosoftGraphKeyValue[]>]:
    [Key <String>]: Key for the key-value pair.
    [Value <String>]: Value for the key-value pair.
  [Type <String>]:
 
APPROLEASSIGNEDTO <IMicrosoftGraphAppRoleAssignment1[]>: Principals (users, groups, and service principals) that are assigned to this service principal. Read-only.
  [Id <String>]: Read-only.
  [AppRoleId <String>]: The identifier (id) for the app role which is assigned to the principal. This app role must be exposed in the appRoles property on the resource application's service principal (resourceId). If the resource application has not declared any app roles, a default app role ID of 00000000-0000-0000-0000-000000000000 can be specified to signal that the principal is assigned to the resource app without any specific app roles. Required on create. Does not support $filter.
  [CreationTimestamp <DateTime?>]: The time when the app role assignment was created.The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Read-only. Does not support $filter.
  [PrincipalDisplayName <String>]: The display name of the user, group, or service principal that was granted the app role assignment. Read-only. Supports $filter (eq and startswith).
  [PrincipalId <String>]: The unique identifier (id) for the user, group or service principal being granted the app role. Required on create. Does not support $filter.
  [PrincipalType <String>]: The type of the assigned principal. This can either be 'User', 'Group' or 'ServicePrincipal'. Read-only. Does not support $filter.
  [ResourceDisplayName <String>]: The display name of the resource app's service principal to which the assignment is made. Does not support $filter.
  [ResourceId <String>]: The unique identifier (id) for the resource service principal for which the assignment is made. Required on create. Supports $filter (eq only).
 
APPROLEASSIGNMENTS <IMicrosoftGraphAppRoleAssignment1[]>: Applications that this service principal is assigned to. Read-only. Nullable.
  [Id <String>]: Read-only.
  [AppRoleId <String>]: The identifier (id) for the app role which is assigned to the principal. This app role must be exposed in the appRoles property on the resource application's service principal (resourceId). If the resource application has not declared any app roles, a default app role ID of 00000000-0000-0000-0000-000000000000 can be specified to signal that the principal is assigned to the resource app without any specific app roles. Required on create. Does not support $filter.
  [CreationTimestamp <DateTime?>]: The time when the app role assignment was created.The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Read-only. Does not support $filter.
  [PrincipalDisplayName <String>]: The display name of the user, group, or service principal that was granted the app role assignment. Read-only. Supports $filter (eq and startswith).
  [PrincipalId <String>]: The unique identifier (id) for the user, group or service principal being granted the app role. Required on create. Does not support $filter.
  [PrincipalType <String>]: The type of the assigned principal. This can either be 'User', 'Group' or 'ServicePrincipal'. Read-only. Does not support $filter.
  [ResourceDisplayName <String>]: The display name of the resource app's service principal to which the assignment is made. Does not support $filter.
  [ResourceId <String>]: The unique identifier (id) for the resource service principal for which the assignment is made. Required on create. Supports $filter (eq only).
 
APPROLES <IMicrosoftGraphAppRole[]>: The roles exposed by the application which this service principal represents. For more information see the appRoles property definition on the application entity. Not nullable.
  [AllowedMemberTypes <String[]>]: Specifies whether this app role can be assigned to users and groups (by setting to ['User']), to other application's (by setting to ['Application'], or both (by setting to ['User', 'Application']). App roles supporting assignment of other applications' service principals are also known as application permissions.
  [Description <String>]: The description for the app role. This is displayed when the app role is being assigned and, if the app role functions as an application permission, during consent experiences.
  [DisplayName <String>]: Display name for the permission that appears in the app role assignment and consent experiences.
  [Id <String>]: Unique role identifier inside the appRoles collection. When creating a new app role, a new Guid identifier must be provided.
  [IsEnabled <Boolean?>]: When creating or updating an app role, this must be set to true (which is the default). To delete a role, this must first be set to false. At that point, in a subsequent call, this role may be removed.
  [Origin <String>]: Specifies if the app role is defined on the application object or on the servicePrincipal entity. Must not be included in any POST or PATCH requests. Read-only.
  [Value <String>]: Specifies the value to include in the roles claim in ID tokens and access tokens authenticating an assigned user or service principal. Must not exceed 120 characters in length. Allowed characters are : ! # $ % & ' ( ) * + , - . / : ; = ? @ [ ] ^ + _ { } ~, as well as characters in the ranges 0-9, A-Z and a-z. Any other character, including the space character, are not allowed.
 
BODYPARAMETER <IMicrosoftGraphServicePrincipal1>: Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [DeletedDateTime <DateTime?>]:
  [Id <String>]: Read-only.
  [AccountEnabled <Boolean?>]: true if the service principal account is enabled; otherwise, false.
  [AddIns <IMicrosoftGraphAddIn[]>]: Defines custom behavior that a consuming service can use to call an app in specific contexts. For example, applications that can render file streams may set the addIns property for its 'FileHandler' functionality. This will let services like Microsoft 365 call the application in the context of a document the user is working on.
    [Id <String>]:
    [Properties <IMicrosoftGraphKeyValue[]>]:
      [Key <String>]: Key for the key-value pair.
      [Value <String>]: Value for the key-value pair.
    [Type <String>]:
  [AlternativeNames <String[]>]: Used to retrieve service principals by subscription, identify resource group and full resource ids for managed identities.
  [AppDescription <String>]:
  [AppDisplayName <String>]: The display name exposed by the associated application.
  [AppId <String>]: The unique identifier for the associated application (its appId property).
  [AppOwnerOrganizationId <String>]: Contains the tenant id where the application is registered. This is applicable only to service principals backed by applications.
  [AppRoleAssignedTo <IMicrosoftGraphAppRoleAssignment1[]>]: Principals (users, groups, and service principals) that are assigned to this service principal. Read-only.
    [Id <String>]: Read-only.
    [AppRoleId <String>]: The identifier (id) for the app role which is assigned to the principal. This app role must be exposed in the appRoles property on the resource application's service principal (resourceId). If the resource application has not declared any app roles, a default app role ID of 00000000-0000-0000-0000-000000000000 can be specified to signal that the principal is assigned to the resource app without any specific app roles. Required on create. Does not support $filter.
    [CreationTimestamp <DateTime?>]: The time when the app role assignment was created.The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Read-only. Does not support $filter.
    [PrincipalDisplayName <String>]: The display name of the user, group, or service principal that was granted the app role assignment. Read-only. Supports $filter (eq and startswith).
    [PrincipalId <String>]: The unique identifier (id) for the user, group or service principal being granted the app role. Required on create. Does not support $filter.
    [PrincipalType <String>]: The type of the assigned principal. This can either be 'User', 'Group' or 'ServicePrincipal'. Read-only. Does not support $filter.
    [ResourceDisplayName <String>]: The display name of the resource app's service principal to which the assignment is made. Does not support $filter.
    [ResourceId <String>]: The unique identifier (id) for the resource service principal for which the assignment is made. Required on create. Supports $filter (eq only).
  [AppRoleAssignmentRequired <Boolean?>]: Specifies whether users or other service principals need to be granted an app role assignment for this service principal before users can sign in or apps can get tokens. The default value is false. Not nullable.
  [AppRoleAssignments <IMicrosoftGraphAppRoleAssignment1[]>]: Applications that this service principal is assigned to. Read-only. Nullable.
  [AppRoles <IMicrosoftGraphAppRole[]>]: The roles exposed by the application which this service principal represents. For more information see the appRoles property definition on the application entity. Not nullable.
    [AllowedMemberTypes <String[]>]: Specifies whether this app role can be assigned to users and groups (by setting to ['User']), to other application's (by setting to ['Application'], or both (by setting to ['User', 'Application']). App roles supporting assignment of other applications' service principals are also known as application permissions.
    [Description <String>]: The description for the app role. This is displayed when the app role is being assigned and, if the app role functions as an application permission, during consent experiences.
    [DisplayName <String>]: Display name for the permission that appears in the app role assignment and consent experiences.
    [Id <String>]: Unique role identifier inside the appRoles collection. When creating a new app role, a new Guid identifier must be provided.
    [IsEnabled <Boolean?>]: When creating or updating an app role, this must be set to true (which is the default). To delete a role, this must first be set to false. At that point, in a subsequent call, this role may be removed.
    [Origin <String>]: Specifies if the app role is defined on the application object or on the servicePrincipal entity. Must not be included in any POST or PATCH requests. Read-only.
    [Value <String>]: Specifies the value to include in the roles claim in ID tokens and access tokens authenticating an assigned user or service principal. Must not exceed 120 characters in length. Allowed characters are : ! # $ % & ' ( ) * + , - . / : ; = ? @ [ ] ^ + _ { } ~, as well as characters in the ranges 0-9, A-Z and a-z. Any other character, including the space character, are not allowed.
  [ApplicationTemplateId <String>]: Unique identifier of the applicationTemplate that the servicePrincipal was created from. Read-only.
  [ClaimsMappingPolicies <IMicrosoftGraphClaimsMappingPolicy1[]>]: The claimsMappingPolicies assigned to this service principal.
    [AppliesTo <IMicrosoftGraphDirectoryObject[]>]:
      [Id <String>]: Read-only.
      [DeletedDateTime <DateTime?>]:
    [Definition <String[]>]: A string collection containing a JSON string that defines the rules and settings for a policy. The syntax for the definition differs for each derived policy type. Required.
    [IsOrganizationDefault <Boolean?>]: If set to true, activates this policy. There can be many policies for the same policy type, but only one can be activated as the organization default. Optional, default value is false.
    [Description <String>]: Description for this policy.
    [DisplayName <String>]: Display name for this policy.
    [DeletedDateTime <DateTime?>]:
    [Id <String>]: Read-only.
  [CreatedObjects <IMicrosoftGraphDirectoryObject[]>]: Directory objects created by this service principal. Read-only. Nullable.
  [Description <String>]:
  [DisplayName <String>]: The display name for the service principal.
  [Endpoints <IMicrosoftGraphEndpoint[]>]: Endpoints available for discovery. Services like Sharepoint populate this property with a tenant specific SharePoint endpoints that other applications can discover and use in their experiences.
    [DeletedDateTime <DateTime?>]:
    [Id <String>]: Read-only.
    [Capability <String>]: Describes the capability that is associated with this resource. (e.g. Messages, Conversations, etc.) Not nullable. Read-only.
    [ProviderId <String>]: Application id of the publishing underlying service. Not nullable. Read-only.
    [ProviderName <String>]: Name of the publishing underlying service. Read-only.
    [ProviderResourceId <String>]: For Microsoft 365 groups, this is set to a well-known name for the resource (e.g. Yammer.FeedURL etc.). Not nullable. Read-only.
    [Uri <String>]: URL of the published resource. Not nullable. Read-only.
  [ErrorUrl <String>]:
  [HomeRealmDiscoveryPolicies <IMicrosoftGraphHomeRealmDiscoveryPolicy1[]>]: The homeRealmDiscoveryPolicies assigned to this service principal.
    [AppliesTo <IMicrosoftGraphDirectoryObject[]>]:
    [Definition <String[]>]: A string collection containing a JSON string that defines the rules and settings for a policy. The syntax for the definition differs for each derived policy type. Required.
    [IsOrganizationDefault <Boolean?>]: If set to true, activates this policy. There can be many policies for the same policy type, but only one can be activated as the organization default. Optional, default value is false.
    [Description <String>]: Description for this policy.
    [DisplayName <String>]: Display name for this policy.
    [DeletedDateTime <DateTime?>]:
    [Id <String>]: Read-only.
  [Homepage <String>]: Home page or landing page of the application.
  [Info <IMicrosoftGraphInformationalUrl>]: informationalUrl
    [(Any) <Object>]: This indicates any property can be added to this object.
    [LogoUrl <String>]: CDN URL to the application's logo, Read-only.
    [MarketingUrl <String>]: Link to the application's marketing page. For example, https://www.contoso.com/app/marketing
    [PrivacyStatementUrl <String>]: Link to the application's privacy statement. For example, https://www.contoso.com/app/privacy
    [SupportUrl <String>]: Link to the application's support page. For example, https://www.contoso.com/app/support
    [TermsOfServiceUrl <String>]: Link to the application's terms of service statement. For example, https://www.contoso.com/app/termsofservice
  [KeyCredentials <IMicrosoftGraphKeyCredential[]>]: The collection of key credentials associated with the service principal. Not nullable.
    [CustomKeyIdentifier <Byte[]>]: Custom key identifier
    [DisplayName <String>]: Friendly name for the key. Optional.
    [EndDateTime <DateTime?>]: The date and time at which the credential expires.The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'
    [Key <Byte[]>]: Value for the key credential. Should be a base 64 encoded value.
    [KeyId <String>]: The unique identifier (GUID) for the key.
    [StartDateTime <DateTime?>]: The date and time at which the credential becomes valid.The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'
    [Type <String>]: The type of key credential; for example, 'Symmetric'.
    [Usage <String>]: A string that describes the purpose for which the key can be used; for example, 'Verify'.
  [LicenseDetails <IMicrosoftGraphLicenseDetails[]>]:
    [Id <String>]: Read-only.
    [ServicePlans <IMicrosoftGraphServicePlanInfo[]>]: Information about the service plans assigned with the license. Read-only, Not nullable
      [AppliesTo <String>]: The object the service plan can be assigned to. Possible values:'User' - service plan can be assigned to individual users.'Company' - service plan can be assigned to the entire tenant.
      [ProvisioningStatus <String>]: The provisioning status of the service plan. Possible values:'Success' - Service is fully provisioned.'Disabled' - Service has been disabled.'PendingInput' - Service is not yet provisioned; awaiting service confirmation.'PendingActivation' - Service is provisioned but requires explicit activation by administrator (for example, Intune_O365 service plan)'PendingProvisioning' - Microsoft has added a new service to the product SKU and it has not been activated in the tenant, yet.
      [ServicePlanId <String>]: The unique identifier of the service plan.
      [ServicePlanName <String>]: The name of the service plan.
    [SkuId <String>]: Unique identifier (GUID) for the service SKU. Equal to the skuId property on the related SubscribedSku object. Read-only
    [SkuPartNumber <String>]: Unique SKU display name. Equal to the skuPartNumber on the related SubscribedSku object; for example: 'AAD_Premium'. Read-only
  [LoginUrl <String>]: Specifies the URL where the service provider redirects the user to Azure AD to authenticate. Azure AD uses the URL to launch the application from Microsoft 365 or the Azure AD My Apps. When blank, Azure AD performs IdP-initiated sign-on for applications configured with SAML-based single sign-on. The user launches the application from Microsoft 365, the Azure AD My Apps, or the Azure AD SSO URL.
  [LogoutUrl <String>]: Specifies the URL that will be used by Microsoft's authorization service to logout an user using OpenId Connect front-channel, back-channel or SAML logout protocols.
  [MemberOf <IMicrosoftGraphDirectoryObject[]>]: Roles that this service principal is a member of. HTTP Methods: GET Read-only. Nullable.
  [Notes <String>]:
  [NotificationEmailAddresses <String[]>]: Specifies the list of email addresses where Azure AD sends a notification when the active certificate is near the expiration date. This is only for the certificates used to sign the SAML token issued for Azure AD Gallery applications.
  [Oauth2PermissionGrants <IMicrosoftGraphOAuth2PermissionGrant1[]>]: Delegated permission grants authorizing this service principal to access an API on behalf of a signed-in user. Read-only. Nullable.
    [Id <String>]: Read-only.
    [ClientId <String>]: The id of the client service principal for the application which is authorized to act on behalf of a signed-in user when accessing an API. Required. Supports $filter (eq only).
    [ConsentType <String>]: Indicates if authorization is granted for the client application to impersonate all users or only a specific user. AllPrincipals indicates authorization to impersonate all users. Principal indicates authorization to impersonate a specific user. Consent on behalf of all users can be granted by an administrator. Non-admin users may be authorized to consent on behalf of themselves in some cases, for some delegated permissions. Required. Supports $filter (eq only).
    [ExpiryTime <DateTime?>]:
    [PrincipalId <String>]: The id of the user on behalf of whom the client is authorized to access the resource, when consentType is Principal. If consentType is AllPrincipals this value is null. Required when consentType is Principal.
    [ResourceId <String>]: The id of the resource service principal to which access is authorized. This identifies the API which the client is authorized to attempt to call on behalf of a signed-in user.
    [Scope <String>]: A space-separated list of the claim values for delegated permissions which should be included in access tokens for the resource application (the API). For example, openid User.Read GroupMember.Read.All. Each claim value should match the value field of one of the delegated permissions defined by the API, listed in the publishedPermissionScopes property of the resource service principal.
    [StartTime <DateTime?>]:
  [OwnedObjects <IMicrosoftGraphDirectoryObject[]>]: Directory objects that are owned by this service principal. Read-only. Nullable.
  [Owners <IMicrosoftGraphDirectoryObject[]>]: Directory objects that are owners of this servicePrincipal. The owners are a set of non-admin users or servicePrincipals who are allowed to modify this object. Read-only. Nullable.
  [PasswordCredentials <IMicrosoftGraphPasswordCredential[]>]: The collection of password credentials associated with the service principal. Not nullable.
    [CustomKeyIdentifier <Byte[]>]: Do not use.
    [DisplayName <String>]: Friendly name for the password. Optional.
    [EndDateTime <DateTime?>]: The date and time at which the password expires represented using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Optional.
    [Hint <String>]: Contains the first three characters of the password. Read-only.
    [KeyId <String>]: The unique identifier for the password.
    [SecretText <String>]: Read-only; Contains the strong passwords generated by Azure AD that are 16-64 characters in length. The generated password value is only returned during the initial POST request to addPassword. There is no way to retrieve this password in the future.
    [StartDateTime <DateTime?>]: The date and time at which the password becomes valid. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Optional.
  [PreferredSingleSignOnMode <String>]: Specifies the single sign-on mode configured for this application. Azure AD uses the preferred single sign-on mode to launch the application from Microsoft 365 or the Azure AD My Apps. The supported values are password, saml, external, and oidc.
  [PreferredTokenSigningKeyEndDateTime <DateTime?>]:
  [PreferredTokenSigningKeyThumbprint <String>]:
  [PublishedPermissionScopes <IMicrosoftGraphPermissionScope[]>]:
    [AdminConsentDescription <String>]: A description of the delegated permissions, intended to be read by an administrator granting the permission on behalf of all users. This text appears in tenant-wide admin consent experiences.
    [AdminConsentDisplayName <String>]: The permission's title, intended to be read by an administrator granting the permission on behalf of all users.
    [Id <String>]: Unique delegated permission identifier inside the collection of delegated permissions defined for a resource application.
    [IsEnabled <Boolean?>]: When creating or updating a permission, this property must be set to true (which is the default). To delete a permission, this property must first be set to false. At that point, in a subsequent call, the permission may be removed.
    [Origin <String>]:
    [Type <String>]: Specifies whether this delegated permission should be considered safe for non-admin users to consent to on behalf of themselves, or whether an administrator should be required for consent to the permissions. This will be the default behavior, but each customer can choose to customize the behavior in their organization (by allowing, restricting or limiting user consent to this delegated permission.)
    [UserConsentDescription <String>]: A description of the delegated permissions, intended to be read by a user granting the permission on their own behalf. This text appears in consent experiences where the user is consenting only on behalf of themselves.
    [UserConsentDisplayName <String>]: A title for the permission, intended to be read by a user granting the permission on their own behalf. This text appears in consent experiences where the user is consenting only on behalf of themselves.
    [Value <String>]: Specifies the value to include in the scp (scope) claim in access tokens. Must not exceed 120 characters in length. Allowed characters are : ! # $ % & ' ( ) * + , - . / : ; = ? @ [ ] ^ + _ { } ~, as well as characters in the ranges 0-9, A-Z and a-z. Any other character, including the space character, are not allowed.
  [PublisherName <String>]:
  [ReplyUrls <String[]>]: The URLs that user tokens are sent to for sign in with the associated application, or the redirect URIs that OAuth 2.0 authorization codes and access tokens are sent to for the associated application. Not nullable.
  [SamlMetadataUrl <String>]:
  [SamlSingleSignOnSettings <IMicrosoftGraphSamlSingleSignOnSettings>]: samlSingleSignOnSettings
    [(Any) <Object>]: This indicates any property can be added to this object.
    [RelayState <String>]: The relative URI the service provider would redirect to after completion of the single sign-on flow.
  [ServicePrincipalNames <String[]>]: Contains the list of identifiersUris, copied over from the associated application. Additional values can be added to hybrid applications. These values can be used to identify the permissions exposed by this app within Azure AD. For example,Client apps can specify a resource URI which is based on the values of this property to acquire an access token, which is the URI returned in the 'aud' claim.The any operator is required for filter expressions on multi-valued properties. Not nullable.
  [ServicePrincipalType <String>]: Identifies if the service principal represents an application or a managed identity. This is set by Azure AD internally. For a service principal that represents an application this is set as Application. For a service principal that represent a managed identity this is set as ManagedIdentity.
  [SignInAudience <String>]:
  [Synchronization <IMicrosoftGraphSynchronization>]: synchronization
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: Read-only.
    [Jobs <IMicrosoftGraphSynchronizationJob[]>]:
      [Id <String>]: Read-only.
      [Schedule <IMicrosoftGraphSynchronizationSchedule>]: synchronizationSchedule
        [(Any) <Object>]: This indicates any property can be added to this object.
        [Expiration <DateTime?>]:
        [Interval <TimeSpan?>]:
        [State <String>]: synchronizationScheduleState
      [Schema <IMicrosoftGraphSynchronizationSchema>]: synchronizationSchema
        [(Any) <Object>]: This indicates any property can be added to this object.
        [Id <String>]: Read-only.
        [Directories <IMicrosoftGraphDirectoryDefinition[]>]:
          [Id <String>]: Read-only.
          [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
          [DiscoveryDateTime <DateTime?>]:
          [Name <String>]:
          [Objects <IMicrosoftGraphObjectDefinition[]>]:
            [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
              [Anchor <Boolean?>]:
              [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
                [Key <String>]:
                [Value <String>]:
              [CaseExact <Boolean?>]:
              [DefaultValue <String>]:
              [FlowNullValues <Boolean?>]:
              [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>]:
        [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?>]:
              [Source <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
                [(Any) <Object>]: This indicates any property can be added to this object.
                [Expression <String>]:
                [Name <String>]:
                [Parameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
                  [Key <String>]:
                  [Value <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
                [Type <String>]: attributeMappingSourceType
              [TargetAttributeName <String>]:
            [Enabled <Boolean?>]:
            [FlowTypes <String>]: objectFlowTypes
            [Metadata <IMicrosoftGraphMetadataEntry[]>]:
            [Name <String>]:
            [Scope <IMicrosoftGraphFilter>]: filter
              [(Any) <Object>]: This indicates any property can be added to this object.
              [CategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
                [Clauses <IMicrosoftGraphFilterClause[]>]:
                  [OperatorName <String>]:
                  [SourceOperandName <String>]:
                  [TargetOperand <IMicrosoftGraphFilterOperand>]: filterOperand
                    [(Any) <Object>]: This indicates any property can be added to this object.
                    [Values <String[]>]:
                [Name <String>]:
              [Groups <IMicrosoftGraphFilterGroup[]>]:
              [InputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
            [SourceObjectName <String>]:
            [TargetObjectName <String>]:
          [Priority <Int32?>]:
          [SourceDirectoryName <String>]:
          [TargetDirectoryName <String>]:
        [Version <String>]:
      [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
        [(Any) <Object>]: This indicates any property can be added to this object.
        [Code <String>]: synchronizationStatusCode
        [CountSuccessiveCompleteFailures <Int64?>]:
        [EscrowsPruned <Boolean?>]:
        [LastExecution <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
          [(Any) <Object>]: This indicates any property can be added to this object.
          [ActivityIdentifier <String>]:
          [CountEntitled <Int64?>]:
          [CountEntitledForProvisioning <Int64?>]:
          [CountEscrowed <Int64?>]:
          [CountEscrowedRaw <Int64?>]:
          [CountExported <Int64?>]:
          [CountExports <Int64?>]:
          [CountImported <Int64?>]:
          [CountImportedDeltas <Int64?>]:
          [CountImportedReferenceDeltas <Int64?>]:
          [Error <IMicrosoftGraphSynchronizationError>]: synchronizationError
            [(Any) <Object>]: This indicates any property can be added to this object.
            [Code <String>]:
            [Message <String>]:
            [TenantActionable <Boolean?>]:
          [State <String>]: synchronizationTaskExecutionResult
          [TimeBegan <DateTime?>]:
          [TimeEnded <DateTime?>]:
        [LastSuccessfulExecution <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
        [LastSuccessfulExecutionWithExports <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
        [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
          [CompletedUnits <Int64?>]:
          [ProgressObservationDateTime <DateTime?>]:
          [TotalUnits <Int64?>]:
          [Units <String>]:
        [Quarantine <IMicrosoftGraphSynchronizationQuarantine>]: synchronizationQuarantine
          [(Any) <Object>]: This indicates any property can be added to this object.
          [CurrentBegan <DateTime?>]:
          [Error <IMicrosoftGraphSynchronizationError>]: synchronizationError
          [NextAttempt <DateTime?>]:
          [Reason <String>]: quarantineReason
          [SeriesBegan <DateTime?>]:
          [SeriesCount <Int64?>]:
        [SteadyStateFirstAchievedTime <DateTime?>]:
        [SteadyStateLastAchievedTime <DateTime?>]:
        [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
          [Key <String>]:
          [Value <Int64?>]:
        [TroubleshootingUrl <String>]:
      [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
        [Name <String>]: Name for this key-value pair
        [Value <String>]: Value for this key-value pair
      [TemplateId <String>]:
    [Secrets <IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]>]:
      [Key <String>]: synchronizationSecret
      [Value <String>]:
    [Templates <IMicrosoftGraphSynchronizationTemplate[]>]:
      [Id <String>]: Read-only.
      [ApplicationId <String>]:
      [Default <Boolean?>]:
      [Description <String>]:
      [Discoverable <Boolean?>]:
      [FactoryTag <String>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Schema <IMicrosoftGraphSynchronizationSchema>]: synchronizationSchema
  [Tags <String[]>]: Custom strings that can be used to categorize and identify the service principal. Not nullable.
  [TokenEncryptionKeyId <String>]: Specifies the keyId of a public key from the keyCredentials collection. When configured, Azure AD issues tokens for this application encrypted using the key specified by this property. The application code that receives the encrypted token must use the matching private key to decrypt the token before it can be used for the signed-in user.
  [TokenIssuancePolicies <IMicrosoftGraphTokenIssuancePolicy1[]>]: The tokenIssuancePolicies assigned to this service principal.
    [AppliesTo <IMicrosoftGraphDirectoryObject[]>]:
    [Definition <String[]>]: A string collection containing a JSON string that defines the rules and settings for a policy. The syntax for the definition differs for each derived policy type. Required.
    [IsOrganizationDefault <Boolean?>]: If set to true, activates this policy. There can be many policies for the same policy type, but only one can be activated as the organization default. Optional, default value is false.
    [Description <String>]: Description for this policy.
    [DisplayName <String>]: Display name for this policy.
    [DeletedDateTime <DateTime?>]:
    [Id <String>]: Read-only.
  [TokenLifetimePolicies <IMicrosoftGraphTokenLifetimePolicy1[]>]: The tokenLifetimePolicies assigned to this service principal.
    [AppliesTo <IMicrosoftGraphDirectoryObject[]>]:
    [Definition <String[]>]: A string collection containing a JSON string that defines the rules and settings for a policy. The syntax for the definition differs for each derived policy type. Required.
    [IsOrganizationDefault <Boolean?>]: If set to true, activates this policy. There can be many policies for the same policy type, but only one can be activated as the organization default. Optional, default value is false.
    [Description <String>]: Description for this policy.
    [DisplayName <String>]: Display name for this policy.
    [DeletedDateTime <DateTime?>]:
    [Id <String>]: Read-only.
  [TransitiveMemberOf <IMicrosoftGraphDirectoryObject[]>]:
 
CLAIMSMAPPINGPOLICIES <IMicrosoftGraphClaimsMappingPolicy1[]>: The claimsMappingPolicies assigned to this service principal.
  [AppliesTo <IMicrosoftGraphDirectoryObject[]>]:
    [Id <String>]: Read-only.
    [DeletedDateTime <DateTime?>]:
  [Definition <String[]>]: A string collection containing a JSON string that defines the rules and settings for a policy. The syntax for the definition differs for each derived policy type. Required.
  [IsOrganizationDefault <Boolean?>]: If set to true, activates this policy. There can be many policies for the same policy type, but only one can be activated as the organization default. Optional, default value is false.
  [Description <String>]: Description for this policy.
  [DisplayName <String>]: Display name for this policy.
  [DeletedDateTime <DateTime?>]:
  [Id <String>]: Read-only.
 
CREATEDOBJECTS <IMicrosoftGraphDirectoryObject[]>: Directory objects created by this service principal. Read-only. Nullable.
  [Id <String>]: Read-only.
  [DeletedDateTime <DateTime?>]:
 
ENDPOINTS <IMicrosoftGraphEndpoint[]>: Endpoints available for discovery. Services like Sharepoint populate this property with a tenant specific SharePoint endpoints that other applications can discover and use in their experiences.
  [DeletedDateTime <DateTime?>]:
  [Id <String>]: Read-only.
  [Capability <String>]: Describes the capability that is associated with this resource. (e.g. Messages, Conversations, etc.) Not nullable. Read-only.
  [ProviderId <String>]: Application id of the publishing underlying service. Not nullable. Read-only.
  [ProviderName <String>]: Name of the publishing underlying service. Read-only.
  [ProviderResourceId <String>]: For Microsoft 365 groups, this is set to a well-known name for the resource (e.g. Yammer.FeedURL etc.). Not nullable. Read-only.
  [Uri <String>]: URL of the published resource. Not nullable. Read-only.
 
HOMEREALMDISCOVERYPOLICIES <IMicrosoftGraphHomeRealmDiscoveryPolicy1[]>: The homeRealmDiscoveryPolicies assigned to this service principal.
  [AppliesTo <IMicrosoftGraphDirectoryObject[]>]:
    [Id <String>]: Read-only.
    [DeletedDateTime <DateTime?>]:
  [Definition <String[]>]: A string collection containing a JSON string that defines the rules and settings for a policy. The syntax for the definition differs for each derived policy type. Required.
  [IsOrganizationDefault <Boolean?>]: If set to true, activates this policy. There can be many policies for the same policy type, but only one can be activated as the organization default. Optional, default value is false.
  [Description <String>]: Description for this policy.
  [DisplayName <String>]: Display name for this policy.
  [DeletedDateTime <DateTime?>]:
  [Id <String>]: Read-only.
 
INFO <IMicrosoftGraphInformationalUrl>: informationalUrl
  [(Any) <Object>]: This indicates any property can be added to this object.
  [LogoUrl <String>]: CDN URL to the application's logo, Read-only.
  [MarketingUrl <String>]: Link to the application's marketing page. For example, https://www.contoso.com/app/marketing
  [PrivacyStatementUrl <String>]: Link to the application's privacy statement. For example, https://www.contoso.com/app/privacy
  [SupportUrl <String>]: Link to the application's support page. For example, https://www.contoso.com/app/support
  [TermsOfServiceUrl <String>]: Link to the application's terms of service statement. For example, https://www.contoso.com/app/termsofservice
 
KEYCREDENTIALS <IMicrosoftGraphKeyCredential[]>: The collection of key credentials associated with the service principal. Not nullable.
  [CustomKeyIdentifier <Byte[]>]: Custom key identifier
  [DisplayName <String>]: Friendly name for the key. Optional.
  [EndDateTime <DateTime?>]: The date and time at which the credential expires.The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'
  [Key <Byte[]>]: Value for the key credential. Should be a base 64 encoded value.
  [KeyId <String>]: The unique identifier (GUID) for the key.
  [StartDateTime <DateTime?>]: The date and time at which the credential becomes valid.The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'
  [Type <String>]: The type of key credential; for example, 'Symmetric'.
  [Usage <String>]: A string that describes the purpose for which the key can be used; for example, 'Verify'.
 
LICENSEDETAILS <IMicrosoftGraphLicenseDetails[]>: .
  [Id <String>]: Read-only.
  [ServicePlans <IMicrosoftGraphServicePlanInfo[]>]: Information about the service plans assigned with the license. Read-only, Not nullable
    [AppliesTo <String>]: The object the service plan can be assigned to. Possible values:'User' - service plan can be assigned to individual users.'Company' - service plan can be assigned to the entire tenant.
    [ProvisioningStatus <String>]: The provisioning status of the service plan. Possible values:'Success' - Service is fully provisioned.'Disabled' - Service has been disabled.'PendingInput' - Service is not yet provisioned; awaiting service confirmation.'PendingActivation' - Service is provisioned but requires explicit activation by administrator (for example, Intune_O365 service plan)'PendingProvisioning' - Microsoft has added a new service to the product SKU and it has not been activated in the tenant, yet.
    [ServicePlanId <String>]: The unique identifier of the service plan.
    [ServicePlanName <String>]: The name of the service plan.
  [SkuId <String>]: Unique identifier (GUID) for the service SKU. Equal to the skuId property on the related SubscribedSku object. Read-only
  [SkuPartNumber <String>]: Unique SKU display name. Equal to the skuPartNumber on the related SubscribedSku object; for example: 'AAD_Premium'. Read-only
 
MEMBEROF <IMicrosoftGraphDirectoryObject[]>: Roles that this service principal is a member of. HTTP Methods: GET Read-only. Nullable.
  [Id <String>]: Read-only.
  [DeletedDateTime <DateTime?>]:
 
OAUTH2PERMISSIONGRANTS <IMicrosoftGraphOAuth2PermissionGrant1[]>: Delegated permission grants authorizing this service principal to access an API on behalf of a signed-in user. Read-only. Nullable.
  [Id <String>]: Read-only.
  [ClientId <String>]: The id of the client service principal for the application which is authorized to act on behalf of a signed-in user when accessing an API. Required. Supports $filter (eq only).
  [ConsentType <String>]: Indicates if authorization is granted for the client application to impersonate all users or only a specific user. AllPrincipals indicates authorization to impersonate all users. Principal indicates authorization to impersonate a specific user. Consent on behalf of all users can be granted by an administrator. Non-admin users may be authorized to consent on behalf of themselves in some cases, for some delegated permissions. Required. Supports $filter (eq only).
  [ExpiryTime <DateTime?>]:
  [PrincipalId <String>]: The id of the user on behalf of whom the client is authorized to access the resource, when consentType is Principal. If consentType is AllPrincipals this value is null. Required when consentType is Principal.
  [ResourceId <String>]: The id of the resource service principal to which access is authorized. This identifies the API which the client is authorized to attempt to call on behalf of a signed-in user.
  [Scope <String>]: A space-separated list of the claim values for delegated permissions which should be included in access tokens for the resource application (the API). For example, openid User.Read GroupMember.Read.All. Each claim value should match the value field of one of the delegated permissions defined by the API, listed in the publishedPermissionScopes property of the resource service principal.
  [StartTime <DateTime?>]:
 
OWNEDOBJECTS <IMicrosoftGraphDirectoryObject[]>: Directory objects that are owned by this service principal. Read-only. Nullable.
  [Id <String>]: Read-only.
  [DeletedDateTime <DateTime?>]:
 
OWNERS <IMicrosoftGraphDirectoryObject[]>: Directory objects that are owners of this servicePrincipal. The owners are a set of non-admin users or servicePrincipals who are allowed to modify this object. Read-only. Nullable.
  [Id <String>]: Read-only.
  [DeletedDateTime <DateTime?>]:
 
PASSWORDCREDENTIALS <IMicrosoftGraphPasswordCredential[]>: The collection of password credentials associated with the service principal. Not nullable.
  [CustomKeyIdentifier <Byte[]>]: Do not use.
  [DisplayName <String>]: Friendly name for the password. Optional.
  [EndDateTime <DateTime?>]: The date and time at which the password expires represented using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Optional.
  [Hint <String>]: Contains the first three characters of the password. Read-only.
  [KeyId <String>]: The unique identifier for the password.
  [SecretText <String>]: Read-only; Contains the strong passwords generated by Azure AD that are 16-64 characters in length. The generated password value is only returned during the initial POST request to addPassword. There is no way to retrieve this password in the future.
  [StartDateTime <DateTime?>]: The date and time at which the password becomes valid. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Optional.
 
PUBLISHEDPERMISSIONSCOPES <IMicrosoftGraphPermissionScope[]>: .
  [AdminConsentDescription <String>]: A description of the delegated permissions, intended to be read by an administrator granting the permission on behalf of all users. This text appears in tenant-wide admin consent experiences.
  [AdminConsentDisplayName <String>]: The permission's title, intended to be read by an administrator granting the permission on behalf of all users.
  [Id <String>]: Unique delegated permission identifier inside the collection of delegated permissions defined for a resource application.
  [IsEnabled <Boolean?>]: When creating or updating a permission, this property must be set to true (which is the default). To delete a permission, this property must first be set to false. At that point, in a subsequent call, the permission may be removed.
  [Origin <String>]:
  [Type <String>]: Specifies whether this delegated permission should be considered safe for non-admin users to consent to on behalf of themselves, or whether an administrator should be required for consent to the permissions. This will be the default behavior, but each customer can choose to customize the behavior in their organization (by allowing, restricting or limiting user consent to this delegated permission.)
  [UserConsentDescription <String>]: A description of the delegated permissions, intended to be read by a user granting the permission on their own behalf. This text appears in consent experiences where the user is consenting only on behalf of themselves.
  [UserConsentDisplayName <String>]: A title for the permission, intended to be read by a user granting the permission on their own behalf. This text appears in consent experiences where the user is consenting only on behalf of themselves.
  [Value <String>]: Specifies the value to include in the scp (scope) claim in access tokens. Must not exceed 120 characters in length. Allowed characters are : ! # $ % & ' ( ) * + , - . / : ; = ? @ [ ] ^ + _ { } ~, as well as characters in the ranges 0-9, A-Z and a-z. Any other character, including the space character, are not allowed.
 
SAMLSINGLESIGNONSETTINGS <IMicrosoftGraphSamlSingleSignOnSettings>: samlSingleSignOnSettings
  [(Any) <Object>]: This indicates any property can be added to this object.
  [RelayState <String>]: The relative URI the service provider would redirect to after completion of the single sign-on flow.
 
SYNCHRONIZATION <IMicrosoftGraphSynchronization>: synchronization
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [Jobs <IMicrosoftGraphSynchronizationJob[]>]:
    [Id <String>]: Read-only.
    [Schedule <IMicrosoftGraphSynchronizationSchedule>]: synchronizationSchedule
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Expiration <DateTime?>]:
      [Interval <TimeSpan?>]:
      [State <String>]: synchronizationScheduleState
    [Schema <IMicrosoftGraphSynchronizationSchema>]: synchronizationSchema
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Id <String>]: Read-only.
      [Directories <IMicrosoftGraphDirectoryDefinition[]>]:
        [Id <String>]: Read-only.
        [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
        [DiscoveryDateTime <DateTime?>]:
        [Name <String>]:
        [Objects <IMicrosoftGraphObjectDefinition[]>]:
          [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
            [Anchor <Boolean?>]:
            [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
              [Key <String>]:
              [Value <String>]:
            [CaseExact <Boolean?>]:
            [DefaultValue <String>]:
            [FlowNullValues <Boolean?>]:
            [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>]:
      [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?>]:
            [Source <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
              [(Any) <Object>]: This indicates any property can be added to this object.
              [Expression <String>]:
              [Name <String>]:
              [Parameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
                [Key <String>]:
                [Value <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
              [Type <String>]: attributeMappingSourceType
            [TargetAttributeName <String>]:
          [Enabled <Boolean?>]:
          [FlowTypes <String>]: objectFlowTypes
          [Metadata <IMicrosoftGraphMetadataEntry[]>]:
          [Name <String>]:
          [Scope <IMicrosoftGraphFilter>]: filter
            [(Any) <Object>]: This indicates any property can be added to this object.
            [CategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
              [Clauses <IMicrosoftGraphFilterClause[]>]:
                [OperatorName <String>]:
                [SourceOperandName <String>]:
                [TargetOperand <IMicrosoftGraphFilterOperand>]: filterOperand
                  [(Any) <Object>]: This indicates any property can be added to this object.
                  [Values <String[]>]:
              [Name <String>]:
            [Groups <IMicrosoftGraphFilterGroup[]>]:
            [InputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
          [SourceObjectName <String>]:
          [TargetObjectName <String>]:
        [Priority <Int32?>]:
        [SourceDirectoryName <String>]:
        [TargetDirectoryName <String>]:
      [Version <String>]:
    [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Code <String>]: synchronizationStatusCode
      [CountSuccessiveCompleteFailures <Int64?>]:
      [EscrowsPruned <Boolean?>]:
      [LastExecution <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
        [(Any) <Object>]: This indicates any property can be added to this object.
        [ActivityIdentifier <String>]:
        [CountEntitled <Int64?>]:
        [CountEntitledForProvisioning <Int64?>]:
        [CountEscrowed <Int64?>]:
        [CountEscrowedRaw <Int64?>]:
        [CountExported <Int64?>]:
        [CountExports <Int64?>]:
        [CountImported <Int64?>]:
        [CountImportedDeltas <Int64?>]:
        [CountImportedReferenceDeltas <Int64?>]:
        [Error <IMicrosoftGraphSynchronizationError>]: synchronizationError
          [(Any) <Object>]: This indicates any property can be added to this object.
          [Code <String>]:
          [Message <String>]:
          [TenantActionable <Boolean?>]:
        [State <String>]: synchronizationTaskExecutionResult
        [TimeBegan <DateTime?>]:
        [TimeEnded <DateTime?>]:
      [LastSuccessfulExecution <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
      [LastSuccessfulExecutionWithExports <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
      [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
        [CompletedUnits <Int64?>]:
        [ProgressObservationDateTime <DateTime?>]:
        [TotalUnits <Int64?>]:
        [Units <String>]:
      [Quarantine <IMicrosoftGraphSynchronizationQuarantine>]: synchronizationQuarantine
        [(Any) <Object>]: This indicates any property can be added to this object.
        [CurrentBegan <DateTime?>]:
        [Error <IMicrosoftGraphSynchronizationError>]: synchronizationError
        [NextAttempt <DateTime?>]:
        [Reason <String>]: quarantineReason
        [SeriesBegan <DateTime?>]:
        [SeriesCount <Int64?>]:
      [SteadyStateFirstAchievedTime <DateTime?>]:
      [SteadyStateLastAchievedTime <DateTime?>]:
      [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
        [Key <String>]:
        [Value <Int64?>]:
      [TroubleshootingUrl <String>]:
    [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
      [Name <String>]: Name for this key-value pair
      [Value <String>]: Value for this key-value pair
    [TemplateId <String>]:
  [Secrets <IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]>]:
    [Key <String>]: synchronizationSecret
    [Value <String>]:
  [Templates <IMicrosoftGraphSynchronizationTemplate[]>]:
    [Id <String>]: Read-only.
    [ApplicationId <String>]:
    [Default <Boolean?>]:
    [Description <String>]:
    [Discoverable <Boolean?>]:
    [FactoryTag <String>]:
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Schema <IMicrosoftGraphSynchronizationSchema>]: synchronizationSchema
 
TOKENISSUANCEPOLICIES <IMicrosoftGraphTokenIssuancePolicy1[]>: The tokenIssuancePolicies assigned to this service principal.
  [AppliesTo <IMicrosoftGraphDirectoryObject[]>]:
    [Id <String>]: Read-only.
    [DeletedDateTime <DateTime?>]:
  [Definition <String[]>]: A string collection containing a JSON string that defines the rules and settings for a policy. The syntax for the definition differs for each derived policy type. Required.
  [IsOrganizationDefault <Boolean?>]: If set to true, activates this policy. There can be many policies for the same policy type, but only one can be activated as the organization default. Optional, default value is false.
  [Description <String>]: Description for this policy.
  [DisplayName <String>]: Display name for this policy.
  [DeletedDateTime <DateTime?>]:
  [Id <String>]: Read-only.
 
TOKENLIFETIMEPOLICIES <IMicrosoftGraphTokenLifetimePolicy1[]>: The tokenLifetimePolicies assigned to this service principal.
  [AppliesTo <IMicrosoftGraphDirectoryObject[]>]:
    [Id <String>]: Read-only.
    [DeletedDateTime <DateTime?>]:
  [Definition <String[]>]: A string collection containing a JSON string that defines the rules and settings for a policy. The syntax for the definition differs for each derived policy type. Required.
  [IsOrganizationDefault <Boolean?>]: If set to true, activates this policy. There can be many policies for the same policy type, but only one can be activated as the organization default. Optional, default value is false.
  [Description <String>]: Description for this policy.
  [DisplayName <String>]: Display name for this policy.
  [DeletedDateTime <DateTime?>]:
  [Id <String>]: Read-only.
 
TRANSITIVEMEMBEROF <IMicrosoftGraphDirectoryObject[]>: .
  [Id <String>]: Read-only.
  [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.IMicrosoftGraphServicePrincipal1])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePrincipal1]
    # Represents an Azure Active Directory object.
    # The directoryObject type is the base type for many other directory entity types.
    # 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]
    # true if the service principal account is enabled; otherwise, false.
    ${AccountEnabled},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAddIn[]]
    # Defines custom behavior that a consuming service can use to call an app in specific contexts.
    # For example, applications that can render file streams may set the addIns property for its 'FileHandler' functionality.
    # This will let services like Microsoft 365 call the application in the context of a document the user is working on.
    # To construct, see NOTES section for ADDINS properties and create a hash table.
    ${AddIns},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Used to retrieve service principals by subscription, identify resource group and full resource ids for managed identities.
    ${AlternativeNames},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The display name exposed by the associated application.
    ${AppDisplayName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique identifier for the associated application (its appId property).
    ${AppId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains the tenant id where the application is registered.
    # This is applicable only to service principals backed by applications.
    ${AppOwnerOrganizationId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment1[]]
    # Principals (users, groups, and service principals) that are assigned to this service principal.
    # Read-only.
    # 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]
    # Specifies whether users or other service principals need to be granted an app role assignment for this service principal before users can sign in or apps can get tokens.
    # The default value is false.
    # Not nullable.
    ${AppRoleAssignmentRequired},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment1[]]
    # Applications that this service principal is assigned to.
    # Read-only.
    # Nullable.
    # 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[]]
    # The roles exposed by the application which this service principal represents.
    # For more information see the appRoles property definition on the application entity.
    # Not nullable.
    # To construct, see NOTES section for APPROLES properties and create a hash table.
    ${AppRoles},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Unique identifier of the applicationTemplate that the servicePrincipal was created from.
    # Read-only.
    ${ApplicationTemplateId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphClaimsMappingPolicy1[]]
    # The claimsMappingPolicies assigned to this service principal.
    # To construct, see NOTES section for CLAIMSMAPPINGPOLICIES properties and create a hash table.
    ${ClaimsMappingPolicies},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject[]]
    # Directory objects created by this service principal.
    # Read-only.
    # Nullable.
    # To construct, see NOTES section for CREATEDOBJECTS properties and create a hash table.
    ${CreatedObjects},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The display name for the service principal.
    ${DisplayName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphEndpoint[]]
    # Endpoints available for discovery.
    # Services like Sharepoint populate this property with a tenant specific SharePoint endpoints that other applications can discover and use in their experiences.
    # To construct, see NOTES section for ENDPOINTS properties and create a hash table.
    ${Endpoints},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphHomeRealmDiscoveryPolicy1[]]
    # The homeRealmDiscoveryPolicies assigned to this service principal.
    # To construct, see NOTES section for HOMEREALMDISCOVERYPOLICIES properties and create a hash table.
    ${HomeRealmDiscoveryPolicies},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Home page or landing page of the application.
    ${Homepage},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphInformationalUrl]
    # informationalUrl
    # To construct, see NOTES section for INFO properties and create a hash table.
    ${Info},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphKeyCredential[]]
    # The collection of key credentials associated with the service principal.
    # Not nullable.
    # 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[]]
    # .
    # To construct, see NOTES section for LICENSEDETAILS properties and create a hash table.
    ${LicenseDetails},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Specifies the URL where the service provider redirects the user to Azure AD to authenticate.
    # Azure AD uses the URL to launch the application from Microsoft 365 or the Azure AD My Apps.
    # When blank, Azure AD performs IdP-initiated sign-on for applications configured with SAML-based single sign-on.
    # The user launches the application from Microsoft 365, the Azure AD My Apps, or the Azure AD SSO URL.
    ${LoginUrl},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Specifies the URL that will be used by Microsoft's authorization service to logout an user using OpenId Connect front-channel, back-channel or SAML logout protocols.
    ${LogoutUrl},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject[]]
    # Roles that this service principal is a member of.
    # HTTP Methods: GET Read-only.
    # Nullable.
    # To construct, see NOTES section for MEMBEROF properties and create a hash table.
    ${MemberOf},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Specifies the list of email addresses where Azure AD sends a notification when the active certificate is near the expiration date.
    # This is only for the certificates used to sign the SAML token issued for Azure AD Gallery applications.
    ${NotificationEmailAddresses},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphOAuth2PermissionGrant1[]]
    # Delegated permission grants authorizing this service principal to access an API on behalf of a signed-in user.
    # Read-only.
    # Nullable.
    # 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[]]
    # Directory objects that are owned by this service principal.
    # Read-only.
    # Nullable.
    # 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[]]
    # Directory objects that are owners of this servicePrincipal.
    # The owners are a set of non-admin users or servicePrincipals who are allowed to modify this object.
    # Read-only.
    # Nullable.
    # 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[]]
    # The collection of password credentials associated with the service principal.
    # Not nullable.
    # To construct, see NOTES section for PASSWORDCREDENTIALS properties and create a hash table.
    ${PasswordCredentials},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Specifies the single sign-on mode configured for this application.
    # Azure AD uses the preferred single sign-on mode to launch the application from Microsoft 365 or the Azure AD My Apps.
    # The supported values are password, saml, external, and oidc.
    ${PreferredSingleSignOnMode},

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

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # The URLs that user tokens are sent to for sign in with the associated application, or the redirect URIs that OAuth 2.0 authorization codes and access tokens are sent to for the associated application.
    # Not nullable.
    ${ReplyUrls},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSamlSingleSignOnSettings]
    # samlSingleSignOnSettings
    # To construct, see NOTES section for SAMLSINGLESIGNONSETTINGS properties and create a hash table.
    ${SamlSingleSignOnSettings},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Contains the list of identifiersUris, copied over from the associated application.
    # Additional values can be added to hybrid applications.
    # These values can be used to identify the permissions exposed by this app within Azure AD.
    # For example,Client apps can specify a resource URI which is based on the values of this property to acquire an access token, which is the URI returned in the 'aud' claim.The any operator is required for filter expressions on multi-valued properties.
    # Not nullable.
    ${ServicePrincipalNames},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Identifies if the service principal represents an application or a managed identity.
    # This is set by Azure AD internally.
    # For a service principal that represents an application this is set as Application.
    # For a service principal that represent a managed identity this is set as ManagedIdentity.
    ${ServicePrincipalType},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronization]
    # synchronization
    # To construct, see NOTES section for SYNCHRONIZATION properties and create a hash table.
    ${Synchronization},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Custom strings that can be used to categorize and identify the service principal.
    # Not nullable.
    ${Tags},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Specifies the keyId of a public key from the keyCredentials collection.
    # When configured, Azure AD issues tokens for this application encrypted using the key specified by this property.
    # The application code that receives the encrypted token must use the matching private key to decrypt the token before it can be used for the signed-in user.
    ${TokenEncryptionKeyId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphTokenIssuancePolicy1[]]
    # The tokenIssuancePolicies assigned to this service principal.
    # To construct, see NOTES section for TOKENISSUANCEPOLICIES properties and create a hash table.
    ${TokenIssuancePolicies},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphTokenLifetimePolicy1[]]
    # The tokenLifetimePolicies assigned to this service principal.
    # To construct, see NOTES section for TOKENLIFETIMEPOLICIES properties and create a hash table.
    ${TokenLifetimePolicies},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject[]]
    # .
    # 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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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)]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Ping', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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
Delete navigation property appRoleAssignedTo for servicePrincipals
.Description
Delete navigation property appRoleAssignedTo for servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/remove-mgserviceprincipalapproleassignedto
#>

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

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

    [Parameter(ParameterSetName='DeleteViaIdentity1', 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 = @{
            Delete1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipalAppRoleAssignedTo_Delete1';
            DeleteViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipalAppRoleAssignedTo_DeleteViaIdentity1';
        }
        $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 navigation property appRoleAssignments for servicePrincipals
.Description
Delete navigation property appRoleAssignments for servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/remove-mgserviceprincipalapproleassignment
#>

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

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

    [Parameter(ParameterSetName='DeleteViaIdentity1', 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 = @{
            Delete1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipalAppRoleAssignment_Delete1';
            DeleteViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipalAppRoleAssignment_DeleteViaIdentity1';
        }
        $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 navigation property endpoints for servicePrincipals
.Description
Delete navigation property endpoints for servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/remove-mgserviceprincipalendpoint
#>

function Remove-MgServicePrincipalEndpoint {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete1', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Delete1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of endpoint
    ${EndpointId},

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

    [Parameter(ParameterSetName='DeleteViaIdentity1', 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 = @{
            Delete1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipalEndpoint_Delete1';
            DeleteViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipalEndpoint_DeleteViaIdentity1';
        }
        $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 navigation property licenseDetails for servicePrincipals
.Description
Delete navigation property licenseDetails for servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/remove-mgserviceprincipallicensedetail
#>

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

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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-MgServicePrincipalLicenseDetail_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipalLicenseDetail_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 deletePasswordSingleSignOnCredentials
.Description
Invoke action deletePasswordSingleSignOnCredentials
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IPathsB2Zp6SServiceprincipalsServiceprincipalIdMicrosoftGraphDeletepasswordsinglesignoncredentialsPostRequestbodyContentApplicationJsonSchema
.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 <IPathsB2Zp6SServiceprincipalsServiceprincipalIdMicrosoftGraphDeletepasswordsinglesignoncredentialsPostRequestbodyContentApplicationJsonSchema>: .
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Parameter(ParameterSetName='DeleteExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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.IPathsB2Zp6SServiceprincipalsServiceprincipalIdMicrosoftGraphDeletepasswordsinglesignoncredentialsPostRequestbodyContentApplicationJsonSchema]
    # .
    # 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.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='DeleteExpanded')]
    [Parameter(ParameterSetName='DeleteViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${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 navigation property directories for servicePrincipals
.Description
Delete navigation property directories for servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/remove-mgserviceprincipalsynchronizationjobschemadirectory
#>

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

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

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

    [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-MgServicePrincipalSynchronizationJobSchemaDirectory_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipalSynchronizationJobSchemaDirectory_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
Delete navigation property schema for servicePrincipals
.Description
Delete navigation property schema for servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/remove-mgserviceprincipalsynchronizationjobschema
#>

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

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

    [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-MgServicePrincipalSynchronizationJobSchema_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipalSynchronizationJobSchema_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
Delete navigation property jobs for servicePrincipals
.Description
Delete navigation property jobs for servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/remove-mgserviceprincipalsynchronizationjob
#>

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

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

    [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-MgServicePrincipalSynchronizationJob_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipalSynchronizationJob_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
Delete navigation property directories for servicePrincipals
.Description
Delete navigation property directories for servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/remove-mgserviceprincipalsynchronizationtemplateschemadirectory
#>

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

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

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

    [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-MgServicePrincipalSynchronizationTemplateSchemaDirectory_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipalSynchronizationTemplateSchemaDirectory_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
Delete navigation property schema for servicePrincipals
.Description
Delete navigation property schema for servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/remove-mgserviceprincipalsynchronizationtemplateschema
#>

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

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

    [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-MgServicePrincipalSynchronizationTemplateSchema_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipalSynchronizationTemplateSchema_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
Delete navigation property templates for servicePrincipals
.Description
Delete navigation property templates for servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/remove-mgserviceprincipalsynchronizationtemplate
#>

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

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

    [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-MgServicePrincipalSynchronizationTemplate_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipalSynchronizationTemplate_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
Delete navigation property synchronization for servicePrincipals
.Description
Delete navigation property synchronization for servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/remove-mgserviceprincipalsynchronization
#>

function Remove-MgServicePrincipalSynchronization {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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-MgServicePrincipalSynchronization_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipalSynchronization_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
Delete entity from servicePrincipals
.Description
Delete entity from servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/remove-mgserviceprincipal
#>

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

    [Parameter(ParameterSetName='DeleteViaIdentity1', 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 = @{
            Delete1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipal_Delete1';
            DeleteViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipal_DeleteViaIdentity1';
        }
        $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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IPaths7MrbavServiceprincipalsServiceprincipalIdSynchronizationJobsSynchronizationjobIdMicrosoftGraphRestartPostRequestbodyContentApplicationJsonSchema
.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 <IPaths7MrbavServiceprincipalsServiceprincipalIdSynchronizationJobsSynchronizationjobIdMicrosoftGraphRestartPostRequestbodyContentApplicationJsonSchema>: .
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Criteria <IMicrosoftGraphSynchronizationJobRestartCriteria>]: synchronizationJobRestartCriteria
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ResetScope <String>]: synchronizationJobRestartScope
 
CRITERIA <IMicrosoftGraphSynchronizationJobRestartCriteria>: synchronizationJobRestartCriteria
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ResetScope <String>]: synchronizationJobRestartScope
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Restart', Mandatory)]
    [Parameter(ParameterSetName='RestartExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Restart', Mandatory)]
    [Parameter(ParameterSetName='RestartExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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.IPaths7MrbavServiceprincipalsServiceprincipalIdSynchronizationJobsSynchronizationjobIdMicrosoftGraphRestartPostRequestbodyContentApplicationJsonSchema]
    # .
    # 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.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='RestartExpanded')]
    [Parameter(ParameterSetName='RestartViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationJobRestartCriteria]
    # synchronizationJobRestartCriteria
    # To construct, see NOTES section for CRITERIA properties and create a hash table.
    ${Criteria},

    [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 restore
.Description
Invoke action restore
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/restore-mgserviceprincipal
#>

function Restore-MgServicePrincipal {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject])]
[CmdletBinding(DefaultParameterSetName='Restore1', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Restore1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='RestoreViaIdentity1', 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 = @{
            Restore1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Restore-MgServicePrincipal_Restore1';
            RestoreViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Restore-MgServicePrincipal_RestoreViaIdentity1';
        }
        $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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Start', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Start', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Stop', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Stop', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Pause', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Pause', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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 validateProperties
.Description
Invoke action validateProperties
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPathsYq15M4ServiceprincipalsMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema
.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 <IPathsYq15M4ServiceprincipalsMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema>: .
  [(Any) <Object>]: This indicates any property can be added to this object.
  [DisplayName <String>]:
  [EntityType <String>]:
  [MailNickname <String>]:
  [OnBehalfOfUserId <String>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/test-mgserviceprincipalproperty
#>

function Test-MgServicePrincipalProperty {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='ValidateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Validate', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IPathsYq15M4ServiceprincipalsMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema]
    # .
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

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

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

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

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

    [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-MgServicePrincipalProperty_Validate';
            ValidateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Test-MgServicePrincipalProperty_ValidateExpanded';
        }
        $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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IPaths3LjeyyServiceprincipalsServiceprincipalIdSynchronizationJobsSynchronizationjobIdMicrosoftGraphValidatecredentialsPostRequestbodyContentApplicationJsonSchema
.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 <IPaths3LjeyyServiceprincipalsServiceprincipalIdSynchronizationJobsSynchronizationjobIdMicrosoftGraphValidatecredentialsPostRequestbodyContentApplicationJsonSchema>: .
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ApplicationIdentifier <String>]:
  [Credentials <IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]>]:
    [Key <String>]: synchronizationSecret
    [Value <String>]:
  [TemplateId <String>]:
  [UseSavedCredentials <Boolean?>]:
 
CREDENTIALS <IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]>: .
  [Key <String>]: synchronizationSecret
  [Value <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/test-mgserviceprincipalsynchronizationjobcredentials
#>

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

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

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

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

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

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

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

    [Parameter(ParameterSetName='ValidateExpanded')]
    [Parameter(ParameterSetName='ValidateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${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';
            ValidateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Test-MgServicePrincipalSynchronizationJobCredentials_ValidateExpanded';
            ValidateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Test-MgServicePrincipalSynchronizationJobCredentials_ValidateViaIdentity';
            ValidateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Test-MgServicePrincipalSynchronizationJobCredentials_ValidateViaIdentityExpanded';
        }
        $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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment1
.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 <IMicrosoftGraphAppRoleAssignment1>: appRoleAssignment
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [AppRoleId <String>]: The identifier (id) for the app role which is assigned to the principal. This app role must be exposed in the appRoles property on the resource application's service principal (resourceId). If the resource application has not declared any app roles, a default app role ID of 00000000-0000-0000-0000-000000000000 can be specified to signal that the principal is assigned to the resource app without any specific app roles. Required on create. Does not support $filter.
  [CreationTimestamp <DateTime?>]: The time when the app role assignment was created.The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Read-only. Does not support $filter.
  [PrincipalDisplayName <String>]: The display name of the user, group, or service principal that was granted the app role assignment. Read-only. Supports $filter (eq and startswith).
  [PrincipalId <String>]: The unique identifier (id) for the user, group or service principal being granted the app role. Required on create. Does not support $filter.
  [PrincipalType <String>]: The type of the assigned principal. This can either be 'User', 'Group' or 'ServicePrincipal'. Read-only. Does not support $filter.
  [ResourceDisplayName <String>]: The display name of the resource app's service principal to which the assignment is made. Does not support $filter.
  [ResourceId <String>]: The unique identifier (id) for the resource service principal for which the assignment is made. Required on create. Supports $filter (eq only).
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalapproleassignedto
#>

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

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The identifier (id) for the app role which is assigned to the principal.
    # This app role must be exposed in the appRoles property on the resource application's service principal (resourceId).
    # If the resource application has not declared any app roles, a default app role ID of 00000000-0000-0000-0000-000000000000 can be specified to signal that the principal is assigned to the resource app without any specific app roles.
    # Required on create.
    # Does not support $filter.
    ${AppRoleId},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The time when the app role assignment was created.The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time.
    # For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'.
    # Read-only.
    # Does not support $filter.
    ${CreationTimestamp},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The display name of the user, group, or service principal that was granted the app role assignment.
    # Read-only.
    # Supports $filter (eq and startswith).
    ${PrincipalDisplayName},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique identifier (id) for the user, group or service principal being granted the app role.
    # Required on create.
    # Does not support $filter.
    ${PrincipalId},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The type of the assigned principal.
    # This can either be 'User', 'Group' or 'ServicePrincipal'.
    # Read-only.
    # Does not support $filter.
    ${PrincipalType},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The display name of the resource app's service principal to which the assignment is made.
    # Does not support $filter.
    ${ResourceDisplayName},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique identifier (id) for the resource service principal for which the assignment is made.
    # Required on create.
    # Supports $filter (eq only).
    ${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 = @{
            Update1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalAppRoleAssignedTo_Update1';
            UpdateExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalAppRoleAssignedTo_UpdateExpanded1';
            UpdateViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalAppRoleAssignedTo_UpdateViaIdentity1';
            UpdateViaIdentityExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalAppRoleAssignedTo_UpdateViaIdentityExpanded1';
        }
        $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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment1
.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 <IMicrosoftGraphAppRoleAssignment1>: appRoleAssignment
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [AppRoleId <String>]: The identifier (id) for the app role which is assigned to the principal. This app role must be exposed in the appRoles property on the resource application's service principal (resourceId). If the resource application has not declared any app roles, a default app role ID of 00000000-0000-0000-0000-000000000000 can be specified to signal that the principal is assigned to the resource app without any specific app roles. Required on create. Does not support $filter.
  [CreationTimestamp <DateTime?>]: The time when the app role assignment was created.The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Read-only. Does not support $filter.
  [PrincipalDisplayName <String>]: The display name of the user, group, or service principal that was granted the app role assignment. Read-only. Supports $filter (eq and startswith).
  [PrincipalId <String>]: The unique identifier (id) for the user, group or service principal being granted the app role. Required on create. Does not support $filter.
  [PrincipalType <String>]: The type of the assigned principal. This can either be 'User', 'Group' or 'ServicePrincipal'. Read-only. Does not support $filter.
  [ResourceDisplayName <String>]: The display name of the resource app's service principal to which the assignment is made. Does not support $filter.
  [ResourceId <String>]: The unique identifier (id) for the resource service principal for which the assignment is made. Required on create. Supports $filter (eq only).
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of appRoleAssignment
    ${AppRoleAssignmentId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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.IMicrosoftGraphAppRoleAssignment1]
    # appRoleAssignment
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The identifier (id) for the app role which is assigned to the principal.
    # This app role must be exposed in the appRoles property on the resource application's service principal (resourceId).
    # If the resource application has not declared any app roles, a default app role ID of 00000000-0000-0000-0000-000000000000 can be specified to signal that the principal is assigned to the resource app without any specific app roles.
    # Required on create.
    # Does not support $filter.
    ${AppRoleId},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The time when the app role assignment was created.The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time.
    # For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'.
    # Read-only.
    # Does not support $filter.
    ${CreationTimestamp},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The display name of the user, group, or service principal that was granted the app role assignment.
    # Read-only.
    # Supports $filter (eq and startswith).
    ${PrincipalDisplayName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique identifier (id) for the user, group or service principal being granted the app role.
    # Required on create.
    # Does not support $filter.
    ${PrincipalId},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The type of the assigned principal.
    # This can either be 'User', 'Group' or 'ServicePrincipal'.
    # Read-only.
    # Does not support $filter.
    ${PrincipalType},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The display name of the resource app's service principal to which the assignment is made.
    # Does not support $filter.
    ${ResourceDisplayName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique identifier (id) for the resource service principal for which the assignment is made.
    # Required on create.
    # Supports $filter (eq only).
    ${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 endpoints in servicePrincipals
.Description
Update the navigation property endpoints in servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphEndpoint
.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 <IMicrosoftGraphEndpoint>: Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [DeletedDateTime <DateTime?>]:
  [Id <String>]: Read-only.
  [Capability <String>]: Describes the capability that is associated with this resource. (e.g. Messages, Conversations, etc.) Not nullable. Read-only.
  [ProviderId <String>]: Application id of the publishing underlying service. Not nullable. Read-only.
  [ProviderName <String>]: Name of the publishing underlying service. Read-only.
  [ProviderResourceId <String>]: For Microsoft 365 groups, this is set to a well-known name for the resource (e.g. Yammer.FeedURL etc.). Not nullable. Read-only.
  [Uri <String>]: URL of the published resource. Not nullable. Read-only.
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalendpoint
#>

function Update-MgServicePrincipalEndpoint {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded1', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Update1', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of endpoint
    ${EndpointId},

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

    [Parameter(ParameterSetName='UpdateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1', 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='Update1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphEndpoint]
    # Represents an Azure Active Directory object.
    # The directoryObject type is the base type for many other directory entity types.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Describes the capability that is associated with this resource.
    # (e.g.
    # Messages, Conversations, etc.) Not nullable.
    # Read-only.
    ${Capability},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # .
    ${DeletedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Application id of the publishing underlying service.
    # Not nullable.
    # Read-only.
    ${ProviderId},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Name of the publishing underlying service.
    # Read-only.
    ${ProviderName},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # For Microsoft 365 groups, this is set to a well-known name for the resource (e.g.
    # Yammer.FeedURL etc.).
    # Not nullable.
    # Read-only.
    ${ProviderResourceId},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # URL of the published resource.
    # Not nullable.
    # Read-only.
    ${Uri},

    [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 = @{
            Update1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalEndpoint_Update1';
            UpdateExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalEndpoint_UpdateExpanded1';
            UpdateViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalEndpoint_UpdateViaIdentity1';
            UpdateViaIdentityExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalEndpoint_UpdateViaIdentityExpanded1';
        }
        $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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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>: licenseDetails
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [ServicePlans <IMicrosoftGraphServicePlanInfo[]>]: Information about the service plans assigned with the license. Read-only, Not nullable
    [AppliesTo <String>]: The object the service plan can be assigned to. Possible values:'User' - service plan can be assigned to individual users.'Company' - service plan can be assigned to the entire tenant.
    [ProvisioningStatus <String>]: The provisioning status of the service plan. Possible values:'Success' - Service is fully provisioned.'Disabled' - Service has been disabled.'PendingInput' - Service is not yet provisioned; awaiting service confirmation.'PendingActivation' - Service is provisioned but requires explicit activation by administrator (for example, Intune_O365 service plan)'PendingProvisioning' - Microsoft has added a new service to the product SKU and it has not been activated in the tenant, yet.
    [ServicePlanId <String>]: The unique identifier of the service plan.
    [ServicePlanName <String>]: The name of the service plan.
  [SkuId <String>]: Unique identifier (GUID) for the service SKU. Equal to the skuId property on the related SubscribedSku object. Read-only
  [SkuPartNumber <String>]: Unique SKU display name. Equal to the skuPartNumber on the related SubscribedSku object; for example: 'AAD_Premium'. Read-only
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
 
SERVICEPLANS <IMicrosoftGraphServicePlanInfo[]>: Information about the service plans assigned with the license. Read-only, Not nullable
  [AppliesTo <String>]: The object the service plan can be assigned to. Possible values:'User' - service plan can be assigned to individual users.'Company' - service plan can be assigned to the entire tenant.
  [ProvisioningStatus <String>]: The provisioning status of the service plan. Possible values:'Success' - Service is fully provisioned.'Disabled' - Service has been disabled.'PendingInput' - Service is not yet provisioned; awaiting service confirmation.'PendingActivation' - Service is provisioned but requires explicit activation by administrator (for example, Intune_O365 service plan)'PendingProvisioning' - Microsoft has added a new service to the product SKU and it has not been activated in the tenant, yet.
  [ServicePlanId <String>]: The unique identifier of the service plan.
  [ServicePlanName <String>]: The name of the service plan.
.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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of licenseDetails
    ${LicenseDetailsId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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]
    # licenseDetails
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePlanInfo[]]
    # Information about the service plans assigned with the license.
    # Read-only, Not nullable
    # 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]
    # Unique identifier (GUID) for the service SKU.
    # Equal to the skuId property on the related SubscribedSku object.
    # Read-only
    ${SkuId},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Unique SKU display name.
    # Equal to the skuPartNumber on the related SubscribedSku object; for example: 'AAD_Premium'.
    # Read-only
    ${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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IPaths1R4QqcnServiceprincipalsServiceprincipalIdMicrosoftGraphUpdatepasswordsinglesignoncredentialsPostRequestbodyContentApplicationJsonSchema
.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 <IPaths1R4QqcnServiceprincipalsServiceprincipalIdMicrosoftGraphUpdatepasswordsinglesignoncredentialsPostRequestbodyContentApplicationJsonSchema>: .
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Credentials <IMicrosoftGraphCredential[]>]:
    [FieldId <String>]:
    [Type <String>]:
    [Value <String>]:
  [Id <String>]:
 
CREDENTIALS <IMicrosoftGraphCredential[]>: .
  [FieldId <String>]:
  [Type <String>]:
  [Value <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
.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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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.IPaths1R4QqcnServiceprincipalsServiceprincipalIdMicrosoftGraphUpdatepasswordsinglesignoncredentialsPostRequestbodyContentApplicationJsonSchema]
    # .
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphCredential[]]
    # .
    # 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]
    # .
    ${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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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>: directoryDefinition
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
  [DiscoveryDateTime <DateTime?>]:
  [Name <String>]:
  [Objects <IMicrosoftGraphObjectDefinition[]>]:
    [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
      [Anchor <Boolean?>]:
      [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
        [Key <String>]:
        [Value <String>]:
      [CaseExact <Boolean?>]:
      [DefaultValue <String>]:
      [FlowNullValues <Boolean?>]:
      [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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
 
OBJECTS <IMicrosoftGraphObjectDefinition[]>: .
  [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
    [Anchor <Boolean?>]:
    [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Key <String>]:
      [Value <String>]:
    [CaseExact <Boolean?>]:
    [DefaultValue <String>]:
    [FlowNullValues <Boolean?>]:
    [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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of directoryDefinition
    ${DirectoryDefinitionId},

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

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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]
    # directoryDefinition
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

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

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphObjectDefinition[]]
    # .
    # 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]
    # .
    ${ReadOnly},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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>: synchronizationSchema
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [Directories <IMicrosoftGraphDirectoryDefinition[]>]:
    [Id <String>]: Read-only.
    [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
    [DiscoveryDateTime <DateTime?>]:
    [Name <String>]:
    [Objects <IMicrosoftGraphObjectDefinition[]>]:
      [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
        [Anchor <Boolean?>]:
        [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
          [Key <String>]:
          [Value <String>]:
        [CaseExact <Boolean?>]:
        [DefaultValue <String>]:
        [FlowNullValues <Boolean?>]:
        [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>]:
  [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?>]:
        [Source <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
          [(Any) <Object>]: This indicates any property can be added to this object.
          [Expression <String>]:
          [Name <String>]:
          [Parameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
            [Key <String>]:
            [Value <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
          [Type <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [Scope <IMicrosoftGraphFilter>]: filter
        [(Any) <Object>]: This indicates any property can be added to this object.
        [CategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
          [Clauses <IMicrosoftGraphFilterClause[]>]:
            [OperatorName <String>]:
            [SourceOperandName <String>]:
            [TargetOperand <IMicrosoftGraphFilterOperand>]: filterOperand
              [(Any) <Object>]: This indicates any property can be added to this object.
              [Values <String[]>]:
          [Name <String>]:
        [Groups <IMicrosoftGraphFilterGroup[]>]:
        [InputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [Version <String>]:
 
DIRECTORIES <IMicrosoftGraphDirectoryDefinition[]>: .
  [Id <String>]: Read-only.
  [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
  [DiscoveryDateTime <DateTime?>]:
  [Name <String>]:
  [Objects <IMicrosoftGraphObjectDefinition[]>]:
    [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
      [Anchor <Boolean?>]:
      [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
        [Key <String>]:
        [Value <String>]:
      [CaseExact <Boolean?>]:
      [DefaultValue <String>]:
      [FlowNullValues <Boolean?>]:
      [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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
 
SYNCHRONIZATIONRULES <IMicrosoftGraphSynchronizationRule[]>: .
  [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?>]:
      [Source <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
        [(Any) <Object>]: This indicates any property can be added to this object.
        [Expression <String>]:
        [Name <String>]:
        [Parameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [Value <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
        [Type <String>]: attributeMappingSourceType
      [TargetAttributeName <String>]:
    [Enabled <Boolean?>]:
    [FlowTypes <String>]: objectFlowTypes
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Name <String>]:
    [Scope <IMicrosoftGraphFilter>]: filter
      [(Any) <Object>]: This indicates any property can be added to this object.
      [CategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperand <IMicrosoftGraphFilterOperand>]: filterOperand
            [(Any) <Object>]: This indicates any property can be added to this object.
            [Values <String[]>]:
        [Name <String>]:
      [Groups <IMicrosoftGraphFilterGroup[]>]:
      [InputFilterGroups <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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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]
    # synchronizationSchema
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition[]]
    # .
    # 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]
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationRule[]]
    # .
    # 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]
    # .
    ${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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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>: synchronizationJob
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [Schedule <IMicrosoftGraphSynchronizationSchedule>]: synchronizationSchedule
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Expiration <DateTime?>]:
    [Interval <TimeSpan?>]:
    [State <String>]: synchronizationScheduleState
  [Schema <IMicrosoftGraphSynchronizationSchema>]: synchronizationSchema
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: Read-only.
    [Directories <IMicrosoftGraphDirectoryDefinition[]>]:
      [Id <String>]: Read-only.
      [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
      [DiscoveryDateTime <DateTime?>]:
      [Name <String>]:
      [Objects <IMicrosoftGraphObjectDefinition[]>]:
        [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
          [Anchor <Boolean?>]:
          [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
            [Key <String>]:
            [Value <String>]:
          [CaseExact <Boolean?>]:
          [DefaultValue <String>]:
          [FlowNullValues <Boolean?>]:
          [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>]:
    [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?>]:
          [Source <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
            [(Any) <Object>]: This indicates any property can be added to this object.
            [Expression <String>]:
            [Name <String>]:
            [Parameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
              [Key <String>]:
              [Value <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
            [Type <String>]: attributeMappingSourceType
          [TargetAttributeName <String>]:
        [Enabled <Boolean?>]:
        [FlowTypes <String>]: objectFlowTypes
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Name <String>]:
        [Scope <IMicrosoftGraphFilter>]: filter
          [(Any) <Object>]: This indicates any property can be added to this object.
          [CategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
            [Clauses <IMicrosoftGraphFilterClause[]>]:
              [OperatorName <String>]:
              [SourceOperandName <String>]:
              [TargetOperand <IMicrosoftGraphFilterOperand>]: filterOperand
                [(Any) <Object>]: This indicates any property can be added to this object.
                [Values <String[]>]:
            [Name <String>]:
          [Groups <IMicrosoftGraphFilterGroup[]>]:
          [InputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [SourceObjectName <String>]:
        [TargetObjectName <String>]:
      [Priority <Int32?>]:
      [SourceDirectoryName <String>]:
      [TargetDirectoryName <String>]:
    [Version <String>]:
  [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Code <String>]: synchronizationStatusCode
    [CountSuccessiveCompleteFailures <Int64?>]:
    [EscrowsPruned <Boolean?>]:
    [LastExecution <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
      [(Any) <Object>]: This indicates any property can be added to this object.
      [ActivityIdentifier <String>]:
      [CountEntitled <Int64?>]:
      [CountEntitledForProvisioning <Int64?>]:
      [CountEscrowed <Int64?>]:
      [CountEscrowedRaw <Int64?>]:
      [CountExported <Int64?>]:
      [CountExports <Int64?>]:
      [CountImported <Int64?>]:
      [CountImportedDeltas <Int64?>]:
      [CountImportedReferenceDeltas <Int64?>]:
      [Error <IMicrosoftGraphSynchronizationError>]: synchronizationError
        [(Any) <Object>]: This indicates any property can be added to this object.
        [Code <String>]:
        [Message <String>]:
        [TenantActionable <Boolean?>]:
      [State <String>]: synchronizationTaskExecutionResult
      [TimeBegan <DateTime?>]:
      [TimeEnded <DateTime?>]:
    [LastSuccessfulExecution <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
    [LastSuccessfulExecutionWithExports <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
    [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
      [CompletedUnits <Int64?>]:
      [ProgressObservationDateTime <DateTime?>]:
      [TotalUnits <Int64?>]:
      [Units <String>]:
    [Quarantine <IMicrosoftGraphSynchronizationQuarantine>]: synchronizationQuarantine
      [(Any) <Object>]: This indicates any property can be added to this object.
      [CurrentBegan <DateTime?>]:
      [Error <IMicrosoftGraphSynchronizationError>]: synchronizationError
      [NextAttempt <DateTime?>]:
      [Reason <String>]: quarantineReason
      [SeriesBegan <DateTime?>]:
      [SeriesCount <Int64?>]:
    [SteadyStateFirstAchievedTime <DateTime?>]:
    [SteadyStateLastAchievedTime <DateTime?>]:
    [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
      [Key <String>]:
      [Value <Int64?>]:
    [TroubleshootingUrl <String>]:
  [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
    [Name <String>]: Name for this key-value pair
    [Value <String>]: Value for this key-value pair
  [TemplateId <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
 
SCHEDULE <IMicrosoftGraphSynchronizationSchedule>: synchronizationSchedule
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Expiration <DateTime?>]:
  [Interval <TimeSpan?>]:
  [State <String>]: synchronizationScheduleState
 
SCHEMA <IMicrosoftGraphSynchronizationSchema>: synchronizationSchema
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [Directories <IMicrosoftGraphDirectoryDefinition[]>]:
    [Id <String>]: Read-only.
    [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
    [DiscoveryDateTime <DateTime?>]:
    [Name <String>]:
    [Objects <IMicrosoftGraphObjectDefinition[]>]:
      [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
        [Anchor <Boolean?>]:
        [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
          [Key <String>]:
          [Value <String>]:
        [CaseExact <Boolean?>]:
        [DefaultValue <String>]:
        [FlowNullValues <Boolean?>]:
        [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>]:
  [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?>]:
        [Source <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
          [(Any) <Object>]: This indicates any property can be added to this object.
          [Expression <String>]:
          [Name <String>]:
          [Parameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
            [Key <String>]:
            [Value <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
          [Type <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [Scope <IMicrosoftGraphFilter>]: filter
        [(Any) <Object>]: This indicates any property can be added to this object.
        [CategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
          [Clauses <IMicrosoftGraphFilterClause[]>]:
            [OperatorName <String>]:
            [SourceOperandName <String>]:
            [TargetOperand <IMicrosoftGraphFilterOperand>]: filterOperand
              [(Any) <Object>]: This indicates any property can be added to this object.
              [Values <String[]>]:
          [Name <String>]:
        [Groups <IMicrosoftGraphFilterGroup[]>]:
        [InputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [Version <String>]:
 
STATUS <IMicrosoftGraphSynchronizationStatus>: synchronizationStatus
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Code <String>]: synchronizationStatusCode
  [CountSuccessiveCompleteFailures <Int64?>]:
  [EscrowsPruned <Boolean?>]:
  [LastExecution <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ActivityIdentifier <String>]:
    [CountEntitled <Int64?>]:
    [CountEntitledForProvisioning <Int64?>]:
    [CountEscrowed <Int64?>]:
    [CountEscrowedRaw <Int64?>]:
    [CountExported <Int64?>]:
    [CountExports <Int64?>]:
    [CountImported <Int64?>]:
    [CountImportedDeltas <Int64?>]:
    [CountImportedReferenceDeltas <Int64?>]:
    [Error <IMicrosoftGraphSynchronizationError>]: synchronizationError
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Code <String>]:
      [Message <String>]:
      [TenantActionable <Boolean?>]:
    [State <String>]: synchronizationTaskExecutionResult
    [TimeBegan <DateTime?>]:
    [TimeEnded <DateTime?>]:
  [LastSuccessfulExecution <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
  [LastSuccessfulExecutionWithExports <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
  [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
    [CompletedUnits <Int64?>]:
    [ProgressObservationDateTime <DateTime?>]:
    [TotalUnits <Int64?>]:
    [Units <String>]:
  [Quarantine <IMicrosoftGraphSynchronizationQuarantine>]: synchronizationQuarantine
    [(Any) <Object>]: This indicates any property can be added to this object.
    [CurrentBegan <DateTime?>]:
    [Error <IMicrosoftGraphSynchronizationError>]: synchronizationError
    [NextAttempt <DateTime?>]:
    [Reason <String>]: quarantineReason
    [SeriesBegan <DateTime?>]:
    [SeriesCount <Int64?>]:
  [SteadyStateFirstAchievedTime <DateTime?>]:
  [SteadyStateLastAchievedTime <DateTime?>]:
  [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
    [Key <String>]:
    [Value <Int64?>]:
  [TroubleshootingUrl <String>]:
 
SYNCHRONIZATIONJOBSETTINGS <IMicrosoftGraphKeyValuePair[]>: .
  [Name <String>]: Name for this key-value pair
  [Value <String>]: Value for this key-value pair
.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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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]
    # synchronizationJob
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationSchedule]
    # synchronizationSchedule
    # To construct, see NOTES section for SCHEDULE properties and create a hash table.
    ${Schedule},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationSchema]
    # synchronizationSchema
    # To construct, see NOTES section for SCHEMA properties and create a hash table.
    ${Schema},

    [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[]]
    # .
    # 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]
    # .
    ${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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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>: directoryDefinition
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
  [DiscoveryDateTime <DateTime?>]:
  [Name <String>]:
  [Objects <IMicrosoftGraphObjectDefinition[]>]:
    [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
      [Anchor <Boolean?>]:
      [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
        [Key <String>]:
        [Value <String>]:
      [CaseExact <Boolean?>]:
      [DefaultValue <String>]:
      [FlowNullValues <Boolean?>]:
      [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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
 
OBJECTS <IMicrosoftGraphObjectDefinition[]>: .
  [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
    [Anchor <Boolean?>]:
    [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Key <String>]:
      [Value <String>]:
    [CaseExact <Boolean?>]:
    [DefaultValue <String>]:
    [FlowNullValues <Boolean?>]:
    [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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of directoryDefinition
    ${DirectoryDefinitionId},

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

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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]
    # directoryDefinition
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

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

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphObjectDefinition[]]
    # .
    # 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]
    # .
    ${ReadOnly},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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>: synchronizationSchema
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [Directories <IMicrosoftGraphDirectoryDefinition[]>]:
    [Id <String>]: Read-only.
    [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
    [DiscoveryDateTime <DateTime?>]:
    [Name <String>]:
    [Objects <IMicrosoftGraphObjectDefinition[]>]:
      [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
        [Anchor <Boolean?>]:
        [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
          [Key <String>]:
          [Value <String>]:
        [CaseExact <Boolean?>]:
        [DefaultValue <String>]:
        [FlowNullValues <Boolean?>]:
        [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>]:
  [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?>]:
        [Source <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
          [(Any) <Object>]: This indicates any property can be added to this object.
          [Expression <String>]:
          [Name <String>]:
          [Parameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
            [Key <String>]:
            [Value <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
          [Type <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [Scope <IMicrosoftGraphFilter>]: filter
        [(Any) <Object>]: This indicates any property can be added to this object.
        [CategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
          [Clauses <IMicrosoftGraphFilterClause[]>]:
            [OperatorName <String>]:
            [SourceOperandName <String>]:
            [TargetOperand <IMicrosoftGraphFilterOperand>]: filterOperand
              [(Any) <Object>]: This indicates any property can be added to this object.
              [Values <String[]>]:
          [Name <String>]:
        [Groups <IMicrosoftGraphFilterGroup[]>]:
        [InputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [Version <String>]:
 
DIRECTORIES <IMicrosoftGraphDirectoryDefinition[]>: .
  [Id <String>]: Read-only.
  [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
  [DiscoveryDateTime <DateTime?>]:
  [Name <String>]:
  [Objects <IMicrosoftGraphObjectDefinition[]>]:
    [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
      [Anchor <Boolean?>]:
      [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
        [Key <String>]:
        [Value <String>]:
      [CaseExact <Boolean?>]:
      [DefaultValue <String>]:
      [FlowNullValues <Boolean?>]:
      [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: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
 
SYNCHRONIZATIONRULES <IMicrosoftGraphSynchronizationRule[]>: .
  [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?>]:
      [Source <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
        [(Any) <Object>]: This indicates any property can be added to this object.
        [Expression <String>]:
        [Name <String>]:
        [Parameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [Value <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
        [Type <String>]: attributeMappingSourceType
      [TargetAttributeName <String>]:
    [Enabled <Boolean?>]:
    [FlowTypes <String>]: objectFlowTypes
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Name <String>]:
    [Scope <IMicrosoftGraphFilter>]: filter
      [(Any) <Object>]: This indicates any property can be added to this object.
      [CategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperand <IMicrosoftGraphFilterOperand>]: filterOperand
            [(Any) <Object>]: This indicates any property can be added to this object.
            [Values <String[]>]:
        [Name <String>]:
      [Groups <IMicrosoftGraphFilterGroup[]>]:
      [InputFilterGroups <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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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]
    # synchronizationSchema
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition[]]
    # .
    # 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]
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationRule[]]
    # .
    # 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]
    # .
    ${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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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>: synchronizationTemplate
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [ApplicationId <String>]:
  [Default <Boolean?>]:
  [Description <String>]:
  [Discoverable <Boolean?>]:
  [FactoryTag <String>]:
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Key <String>]:
    [Value <String>]:
  [Schema <IMicrosoftGraphSynchronizationSchema>]: synchronizationSchema
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: Read-only.
    [Directories <IMicrosoftGraphDirectoryDefinition[]>]:
      [Id <String>]: Read-only.
      [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
      [DiscoveryDateTime <DateTime?>]:
      [Name <String>]:
      [Objects <IMicrosoftGraphObjectDefinition[]>]:
        [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
          [Anchor <Boolean?>]:
          [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
            [Key <String>]:
            [Value <String>]:
          [CaseExact <Boolean?>]:
          [DefaultValue <String>]:
          [FlowNullValues <Boolean?>]:
          [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>]:
    [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?>]:
          [Source <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
            [(Any) <Object>]: This indicates any property can be added to this object.
            [Expression <String>]:
            [Name <String>]:
            [Parameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
              [Key <String>]:
              [Value <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
            [Type <String>]: attributeMappingSourceType
          [TargetAttributeName <String>]:
        [Enabled <Boolean?>]:
        [FlowTypes <String>]: objectFlowTypes
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Name <String>]:
        [Scope <IMicrosoftGraphFilter>]: filter
          [(Any) <Object>]: This indicates any property can be added to this object.
          [CategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
            [Clauses <IMicrosoftGraphFilterClause[]>]:
              [OperatorName <String>]:
              [SourceOperandName <String>]:
              [TargetOperand <IMicrosoftGraphFilterOperand>]: filterOperand
                [(Any) <Object>]: This indicates any property can be added to this object.
                [Values <String[]>]:
            [Name <String>]:
          [Groups <IMicrosoftGraphFilterGroup[]>]:
          [InputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [SourceObjectName <String>]:
        [TargetObjectName <String>]:
      [Priority <Int32?>]:
      [SourceDirectoryName <String>]:
      [TargetDirectoryName <String>]:
    [Version <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
 
METADATA <IMicrosoftGraphMetadataEntry[]>: .
  [Key <String>]:
  [Value <String>]:
 
SCHEMA <IMicrosoftGraphSynchronizationSchema>: synchronizationSchema
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [Directories <IMicrosoftGraphDirectoryDefinition[]>]:
    [Id <String>]: Read-only.
    [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
    [DiscoveryDateTime <DateTime?>]:
    [Name <String>]:
    [Objects <IMicrosoftGraphObjectDefinition[]>]:
      [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
        [Anchor <Boolean?>]:
        [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
          [Key <String>]:
          [Value <String>]:
        [CaseExact <Boolean?>]:
        [DefaultValue <String>]:
        [FlowNullValues <Boolean?>]:
        [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>]:
  [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?>]:
        [Source <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
          [(Any) <Object>]: This indicates any property can be added to this object.
          [Expression <String>]:
          [Name <String>]:
          [Parameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
            [Key <String>]:
            [Value <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
          [Type <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [Scope <IMicrosoftGraphFilter>]: filter
        [(Any) <Object>]: This indicates any property can be added to this object.
        [CategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
          [Clauses <IMicrosoftGraphFilterClause[]>]:
            [OperatorName <String>]:
            [SourceOperandName <String>]:
            [TargetOperand <IMicrosoftGraphFilterOperand>]: filterOperand
              [(Any) <Object>]: This indicates any property can be added to this object.
              [Values <String[]>]:
          [Name <String>]:
        [Groups <IMicrosoftGraphFilterGroup[]>]:
        [InputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [Version <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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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]
    # synchronizationTemplate
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

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

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

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

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphMetadataEntry[]]
    # .
    # 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.IMicrosoftGraphSynchronizationSchema]
    # synchronizationSchema
    # To construct, see NOTES section for SCHEMA properties and create a hash table.
    ${Schema},

    [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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.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>: synchronization
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [Jobs <IMicrosoftGraphSynchronizationJob[]>]:
    [Id <String>]: Read-only.
    [Schedule <IMicrosoftGraphSynchronizationSchedule>]: synchronizationSchedule
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Expiration <DateTime?>]:
      [Interval <TimeSpan?>]:
      [State <String>]: synchronizationScheduleState
    [Schema <IMicrosoftGraphSynchronizationSchema>]: synchronizationSchema
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Id <String>]: Read-only.
      [Directories <IMicrosoftGraphDirectoryDefinition[]>]:
        [Id <String>]: Read-only.
        [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
        [DiscoveryDateTime <DateTime?>]:
        [Name <String>]:
        [Objects <IMicrosoftGraphObjectDefinition[]>]:
          [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
            [Anchor <Boolean?>]:
            [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
              [Key <String>]:
              [Value <String>]:
            [CaseExact <Boolean?>]:
            [DefaultValue <String>]:
            [FlowNullValues <Boolean?>]:
            [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>]:
      [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?>]:
            [Source <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
              [(Any) <Object>]: This indicates any property can be added to this object.
              [Expression <String>]:
              [Name <String>]:
              [Parameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
                [Key <String>]:
                [Value <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
              [Type <String>]: attributeMappingSourceType
            [TargetAttributeName <String>]:
          [Enabled <Boolean?>]:
          [FlowTypes <String>]: objectFlowTypes
          [Metadata <IMicrosoftGraphMetadataEntry[]>]:
          [Name <String>]:
          [Scope <IMicrosoftGraphFilter>]: filter
            [(Any) <Object>]: This indicates any property can be added to this object.
            [CategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
              [Clauses <IMicrosoftGraphFilterClause[]>]:
                [OperatorName <String>]:
                [SourceOperandName <String>]:
                [TargetOperand <IMicrosoftGraphFilterOperand>]: filterOperand
                  [(Any) <Object>]: This indicates any property can be added to this object.
                  [Values <String[]>]:
              [Name <String>]:
            [Groups <IMicrosoftGraphFilterGroup[]>]:
            [InputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
          [SourceObjectName <String>]:
          [TargetObjectName <String>]:
        [Priority <Int32?>]:
        [SourceDirectoryName <String>]:
        [TargetDirectoryName <String>]:
      [Version <String>]:
    [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Code <String>]: synchronizationStatusCode
      [CountSuccessiveCompleteFailures <Int64?>]:
      [EscrowsPruned <Boolean?>]:
      [LastExecution <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
        [(Any) <Object>]: This indicates any property can be added to this object.
        [ActivityIdentifier <String>]:
        [CountEntitled <Int64?>]:
        [CountEntitledForProvisioning <Int64?>]:
        [CountEscrowed <Int64?>]:
        [CountEscrowedRaw <Int64?>]:
        [CountExported <Int64?>]:
        [CountExports <Int64?>]:
        [CountImported <Int64?>]:
        [CountImportedDeltas <Int64?>]:
        [CountImportedReferenceDeltas <Int64?>]:
        [Error <IMicrosoftGraphSynchronizationError>]: synchronizationError
          [(Any) <Object>]: This indicates any property can be added to this object.
          [Code <String>]:
          [Message <String>]:
          [TenantActionable <Boolean?>]:
        [State <String>]: synchronizationTaskExecutionResult
        [TimeBegan <DateTime?>]:
        [TimeEnded <DateTime?>]:
      [LastSuccessfulExecution <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
      [LastSuccessfulExecutionWithExports <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
      [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
        [CompletedUnits <Int64?>]:
        [ProgressObservationDateTime <DateTime?>]:
        [TotalUnits <Int64?>]:
        [Units <String>]:
      [Quarantine <IMicrosoftGraphSynchronizationQuarantine>]: synchronizationQuarantine
        [(Any) <Object>]: This indicates any property can be added to this object.
        [CurrentBegan <DateTime?>]:
        [Error <IMicrosoftGraphSynchronizationError>]: synchronizationError
        [NextAttempt <DateTime?>]:
        [Reason <String>]: quarantineReason
        [SeriesBegan <DateTime?>]:
        [SeriesCount <Int64?>]:
      [SteadyStateFirstAchievedTime <DateTime?>]:
      [SteadyStateLastAchievedTime <DateTime?>]:
      [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
        [Key <String>]:
        [Value <Int64?>]:
      [TroubleshootingUrl <String>]:
    [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
      [Name <String>]: Name for this key-value pair
      [Value <String>]: Value for this key-value pair
    [TemplateId <String>]:
  [Secrets <IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]>]:
    [Key <String>]: synchronizationSecret
    [Value <String>]:
  [Templates <IMicrosoftGraphSynchronizationTemplate[]>]:
    [Id <String>]: Read-only.
    [ApplicationId <String>]:
    [Default <Boolean?>]:
    [Description <String>]:
    [Discoverable <Boolean?>]:
    [FactoryTag <String>]:
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Schema <IMicrosoftGraphSynchronizationSchema>]: synchronizationSchema
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
 
JOBS <IMicrosoftGraphSynchronizationJob[]>: .
  [Id <String>]: Read-only.
  [Schedule <IMicrosoftGraphSynchronizationSchedule>]: synchronizationSchedule
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Expiration <DateTime?>]:
    [Interval <TimeSpan?>]:
    [State <String>]: synchronizationScheduleState
  [Schema <IMicrosoftGraphSynchronizationSchema>]: synchronizationSchema
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: Read-only.
    [Directories <IMicrosoftGraphDirectoryDefinition[]>]:
      [Id <String>]: Read-only.
      [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
      [DiscoveryDateTime <DateTime?>]:
      [Name <String>]:
      [Objects <IMicrosoftGraphObjectDefinition[]>]:
        [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
          [Anchor <Boolean?>]:
          [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
            [Key <String>]:
            [Value <String>]:
          [CaseExact <Boolean?>]:
          [DefaultValue <String>]:
          [FlowNullValues <Boolean?>]:
          [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>]:
    [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?>]:
          [Source <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
            [(Any) <Object>]: This indicates any property can be added to this object.
            [Expression <String>]:
            [Name <String>]:
            [Parameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
              [Key <String>]:
              [Value <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
            [Type <String>]: attributeMappingSourceType
          [TargetAttributeName <String>]:
        [Enabled <Boolean?>]:
        [FlowTypes <String>]: objectFlowTypes
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Name <String>]:
        [Scope <IMicrosoftGraphFilter>]: filter
          [(Any) <Object>]: This indicates any property can be added to this object.
          [CategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
            [Clauses <IMicrosoftGraphFilterClause[]>]:
              [OperatorName <String>]:
              [SourceOperandName <String>]:
              [TargetOperand <IMicrosoftGraphFilterOperand>]: filterOperand
                [(Any) <Object>]: This indicates any property can be added to this object.
                [Values <String[]>]:
            [Name <String>]:
          [Groups <IMicrosoftGraphFilterGroup[]>]:
          [InputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [SourceObjectName <String>]:
        [TargetObjectName <String>]:
      [Priority <Int32?>]:
      [SourceDirectoryName <String>]:
      [TargetDirectoryName <String>]:
    [Version <String>]:
  [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Code <String>]: synchronizationStatusCode
    [CountSuccessiveCompleteFailures <Int64?>]:
    [EscrowsPruned <Boolean?>]:
    [LastExecution <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
      [(Any) <Object>]: This indicates any property can be added to this object.
      [ActivityIdentifier <String>]:
      [CountEntitled <Int64?>]:
      [CountEntitledForProvisioning <Int64?>]:
      [CountEscrowed <Int64?>]:
      [CountEscrowedRaw <Int64?>]:
      [CountExported <Int64?>]:
      [CountExports <Int64?>]:
      [CountImported <Int64?>]:
      [CountImportedDeltas <Int64?>]:
      [CountImportedReferenceDeltas <Int64?>]:
      [Error <IMicrosoftGraphSynchronizationError>]: synchronizationError
        [(Any) <Object>]: This indicates any property can be added to this object.
        [Code <String>]:
        [Message <String>]:
        [TenantActionable <Boolean?>]:
      [State <String>]: synchronizationTaskExecutionResult
      [TimeBegan <DateTime?>]:
      [TimeEnded <DateTime?>]:
    [LastSuccessfulExecution <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
    [LastSuccessfulExecutionWithExports <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
    [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
      [CompletedUnits <Int64?>]:
      [ProgressObservationDateTime <DateTime?>]:
      [TotalUnits <Int64?>]:
      [Units <String>]:
    [Quarantine <IMicrosoftGraphSynchronizationQuarantine>]: synchronizationQuarantine
      [(Any) <Object>]: This indicates any property can be added to this object.
      [CurrentBegan <DateTime?>]:
      [Error <IMicrosoftGraphSynchronizationError>]: synchronizationError
      [NextAttempt <DateTime?>]:
      [Reason <String>]: quarantineReason
      [SeriesBegan <DateTime?>]:
      [SeriesCount <Int64?>]:
    [SteadyStateFirstAchievedTime <DateTime?>]:
    [SteadyStateLastAchievedTime <DateTime?>]:
    [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
      [Key <String>]:
      [Value <Int64?>]:
    [TroubleshootingUrl <String>]:
  [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
    [Name <String>]: Name for this key-value pair
    [Value <String>]: Value for this key-value pair
  [TemplateId <String>]:
 
SECRETS <IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]>: .
  [Key <String>]: synchronizationSecret
  [Value <String>]:
 
TEMPLATES <IMicrosoftGraphSynchronizationTemplate[]>: .
  [Id <String>]: Read-only.
  [ApplicationId <String>]:
  [Default <Boolean?>]:
  [Description <String>]:
  [Discoverable <Boolean?>]:
  [FactoryTag <String>]:
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Key <String>]:
    [Value <String>]:
  [Schema <IMicrosoftGraphSynchronizationSchema>]: synchronizationSchema
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: Read-only.
    [Directories <IMicrosoftGraphDirectoryDefinition[]>]:
      [Id <String>]: Read-only.
      [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
      [DiscoveryDateTime <DateTime?>]:
      [Name <String>]:
      [Objects <IMicrosoftGraphObjectDefinition[]>]:
        [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
          [Anchor <Boolean?>]:
          [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
            [Key <String>]:
            [Value <String>]:
          [CaseExact <Boolean?>]:
          [DefaultValue <String>]:
          [FlowNullValues <Boolean?>]:
          [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>]:
    [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?>]:
          [Source <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
            [(Any) <Object>]: This indicates any property can be added to this object.
            [Expression <String>]:
            [Name <String>]:
            [Parameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
              [Key <String>]:
              [Value <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
            [Type <String>]: attributeMappingSourceType
          [TargetAttributeName <String>]:
        [Enabled <Boolean?>]:
        [FlowTypes <String>]: objectFlowTypes
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Name <String>]:
        [Scope <IMicrosoftGraphFilter>]: filter
          [(Any) <Object>]: This indicates any property can be added to this object.
          [CategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
            [Clauses <IMicrosoftGraphFilterClause[]>]:
              [OperatorName <String>]:
              [SourceOperandName <String>]:
              [TargetOperand <IMicrosoftGraphFilterOperand>]: filterOperand
                [(Any) <Object>]: This indicates any property can be added to this object.
                [Values <String[]>]:
            [Name <String>]:
          [Groups <IMicrosoftGraphFilterGroup[]>]:
          [InputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [SourceObjectName <String>]:
        [TargetObjectName <String>]:
      [Priority <Int32?>]:
      [SourceDirectoryName <String>]:
      [TargetDirectoryName <String>]:
    [Version <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')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: 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]
    # synchronization
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationJob[]]
    # .
    # 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[]]
    # .
    # 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[]]
    # .
    # 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
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IIdentityServicePrincipalIdentity
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePrincipal1
.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[]>: Defines custom behavior that a consuming service can use to call an app in specific contexts. For example, applications that can render file streams may set the addIns property for its 'FileHandler' functionality. This will let services like Microsoft 365 call the application in the context of a document the user is working on.
  [Id <String>]:
  [Properties <IMicrosoftGraphKeyValue[]>]:
    [Key <String>]: Key for the key-value pair.
    [Value <String>]: Value for the key-value pair.
  [Type <String>]:
 
APPROLEASSIGNEDTO <IMicrosoftGraphAppRoleAssignment1[]>: Principals (users, groups, and service principals) that are assigned to this service principal. Read-only.
  [Id <String>]: Read-only.
  [AppRoleId <String>]: The identifier (id) for the app role which is assigned to the principal. This app role must be exposed in the appRoles property on the resource application's service principal (resourceId). If the resource application has not declared any app roles, a default app role ID of 00000000-0000-0000-0000-000000000000 can be specified to signal that the principal is assigned to the resource app without any specific app roles. Required on create. Does not support $filter.
  [CreationTimestamp <DateTime?>]: The time when the app role assignment was created.The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Read-only. Does not support $filter.
  [PrincipalDisplayName <String>]: The display name of the user, group, or service principal that was granted the app role assignment. Read-only. Supports $filter (eq and startswith).
  [PrincipalId <String>]: The unique identifier (id) for the user, group or service principal being granted the app role. Required on create. Does not support $filter.
  [PrincipalType <String>]: The type of the assigned principal. This can either be 'User', 'Group' or 'ServicePrincipal'. Read-only. Does not support $filter.
  [ResourceDisplayName <String>]: The display name of the resource app's service principal to which the assignment is made. Does not support $filter.
  [ResourceId <String>]: The unique identifier (id) for the resource service principal for which the assignment is made. Required on create. Supports $filter (eq only).
 
APPROLEASSIGNMENTS <IMicrosoftGraphAppRoleAssignment1[]>: Applications that this service principal is assigned to. Read-only. Nullable.
  [Id <String>]: Read-only.
  [AppRoleId <String>]: The identifier (id) for the app role which is assigned to the principal. This app role must be exposed in the appRoles property on the resource application's service principal (resourceId). If the resource application has not declared any app roles, a default app role ID of 00000000-0000-0000-0000-000000000000 can be specified to signal that the principal is assigned to the resource app without any specific app roles. Required on create. Does not support $filter.
  [CreationTimestamp <DateTime?>]: The time when the app role assignment was created.The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Read-only. Does not support $filter.
  [PrincipalDisplayName <String>]: The display name of the user, group, or service principal that was granted the app role assignment. Read-only. Supports $filter (eq and startswith).
  [PrincipalId <String>]: The unique identifier (id) for the user, group or service principal being granted the app role. Required on create. Does not support $filter.
  [PrincipalType <String>]: The type of the assigned principal. This can either be 'User', 'Group' or 'ServicePrincipal'. Read-only. Does not support $filter.
  [ResourceDisplayName <String>]: The display name of the resource app's service principal to which the assignment is made. Does not support $filter.
  [ResourceId <String>]: The unique identifier (id) for the resource service principal for which the assignment is made. Required on create. Supports $filter (eq only).
 
APPROLES <IMicrosoftGraphAppRole[]>: The roles exposed by the application which this service principal represents. For more information see the appRoles property definition on the application entity. Not nullable.
  [AllowedMemberTypes <String[]>]: Specifies whether this app role can be assigned to users and groups (by setting to ['User']), to other application's (by setting to ['Application'], or both (by setting to ['User', 'Application']). App roles supporting assignment of other applications' service principals are also known as application permissions.
  [Description <String>]: The description for the app role. This is displayed when the app role is being assigned and, if the app role functions as an application permission, during consent experiences.
  [DisplayName <String>]: Display name for the permission that appears in the app role assignment and consent experiences.
  [Id <String>]: Unique role identifier inside the appRoles collection. When creating a new app role, a new Guid identifier must be provided.
  [IsEnabled <Boolean?>]: When creating or updating an app role, this must be set to true (which is the default). To delete a role, this must first be set to false. At that point, in a subsequent call, this role may be removed.
  [Origin <String>]: Specifies if the app role is defined on the application object or on the servicePrincipal entity. Must not be included in any POST or PATCH requests. Read-only.
  [Value <String>]: Specifies the value to include in the roles claim in ID tokens and access tokens authenticating an assigned user or service principal. Must not exceed 120 characters in length. Allowed characters are : ! # $ % & ' ( ) * + , - . / : ; = ? @ [ ] ^ + _ { } ~, as well as characters in the ranges 0-9, A-Z and a-z. Any other character, including the space character, are not allowed.
 
BODYPARAMETER <IMicrosoftGraphServicePrincipal1>: Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.
  [(Any) <Object>]: This indicates any property can be added to this object.
  [DeletedDateTime <DateTime?>]:
  [Id <String>]: Read-only.
  [AccountEnabled <Boolean?>]: true if the service principal account is enabled; otherwise, false.
  [AddIns <IMicrosoftGraphAddIn[]>]: Defines custom behavior that a consuming service can use to call an app in specific contexts. For example, applications that can render file streams may set the addIns property for its 'FileHandler' functionality. This will let services like Microsoft 365 call the application in the context of a document the user is working on.
    [Id <String>]:
    [Properties <IMicrosoftGraphKeyValue[]>]:
      [Key <String>]: Key for the key-value pair.
      [Value <String>]: Value for the key-value pair.
    [Type <String>]:
  [AlternativeNames <String[]>]: Used to retrieve service principals by subscription, identify resource group and full resource ids for managed identities.
  [AppDescription <String>]:
  [AppDisplayName <String>]: The display name exposed by the associated application.
  [AppId <String>]: The unique identifier for the associated application (its appId property).
  [AppOwnerOrganizationId <String>]: Contains the tenant id where the application is registered. This is applicable only to service principals backed by applications.
  [AppRoleAssignedTo <IMicrosoftGraphAppRoleAssignment1[]>]: Principals (users, groups, and service principals) that are assigned to this service principal. Read-only.
    [Id <String>]: Read-only.
    [AppRoleId <String>]: The identifier (id) for the app role which is assigned to the principal. This app role must be exposed in the appRoles property on the resource application's service principal (resourceId). If the resource application has not declared any app roles, a default app role ID of 00000000-0000-0000-0000-000000000000 can be specified to signal that the principal is assigned to the resource app without any specific app roles. Required on create. Does not support $filter.
    [CreationTimestamp <DateTime?>]: The time when the app role assignment was created.The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Read-only. Does not support $filter.
    [PrincipalDisplayName <String>]: The display name of the user, group, or service principal that was granted the app role assignment. Read-only. Supports $filter (eq and startswith).
    [PrincipalId <String>]: The unique identifier (id) for the user, group or service principal being granted the app role. Required on create. Does not support $filter.
    [PrincipalType <String>]: The type of the assigned principal. This can either be 'User', 'Group' or 'ServicePrincipal'. Read-only. Does not support $filter.
    [ResourceDisplayName <String>]: The display name of the resource app's service principal to which the assignment is made. Does not support $filter.
    [ResourceId <String>]: The unique identifier (id) for the resource service principal for which the assignment is made. Required on create. Supports $filter (eq only).
  [AppRoleAssignmentRequired <Boolean?>]: Specifies whether users or other service principals need to be granted an app role assignment for this service principal before users can sign in or apps can get tokens. The default value is false. Not nullable.
  [AppRoleAssignments <IMicrosoftGraphAppRoleAssignment1[]>]: Applications that this service principal is assigned to. Read-only. Nullable.
  [AppRoles <IMicrosoftGraphAppRole[]>]: The roles exposed by the application which this service principal represents. For more information see the appRoles property definition on the application entity. Not nullable.
    [AllowedMemberTypes <String[]>]: Specifies whether this app role can be assigned to users and groups (by setting to ['User']), to other application's (by setting to ['Application'], or both (by setting to ['User', 'Application']). App roles supporting assignment of other applications' service principals are also known as application permissions.
    [Description <String>]: The description for the app role. This is displayed when the app role is being assigned and, if the app role functions as an application permission, during consent experiences.
    [DisplayName <String>]: Display name for the permission that appears in the app role assignment and consent experiences.
    [Id <String>]: Unique role identifier inside the appRoles collection. When creating a new app role, a new Guid identifier must be provided.
    [IsEnabled <Boolean?>]: When creating or updating an app role, this must be set to true (which is the default). To delete a role, this must first be set to false. At that point, in a subsequent call, this role may be removed.
    [Origin <String>]: Specifies if the app role is defined on the application object or on the servicePrincipal entity. Must not be included in any POST or PATCH requests. Read-only.
    [Value <String>]: Specifies the value to include in the roles claim in ID tokens and access tokens authenticating an assigned user or service principal. Must not exceed 120 characters in length. Allowed characters are : ! # $ % & ' ( ) * + , - . / : ; = ? @ [ ] ^ + _ { } ~, as well as characters in the ranges 0-9, A-Z and a-z. Any other character, including the space character, are not allowed.
  [ApplicationTemplateId <String>]: Unique identifier of the applicationTemplate that the servicePrincipal was created from. Read-only.
  [ClaimsMappingPolicies <IMicrosoftGraphClaimsMappingPolicy1[]>]: The claimsMappingPolicies assigned to this service principal.
    [AppliesTo <IMicrosoftGraphDirectoryObject[]>]:
      [Id <String>]: Read-only.
      [DeletedDateTime <DateTime?>]:
    [Definition <String[]>]: A string collection containing a JSON string that defines the rules and settings for a policy. The syntax for the definition differs for each derived policy type. Required.
    [IsOrganizationDefault <Boolean?>]: If set to true, activates this policy. There can be many policies for the same policy type, but only one can be activated as the organization default. Optional, default value is false.
    [Description <String>]: Description for this policy.
    [DisplayName <String>]: Display name for this policy.
    [DeletedDateTime <DateTime?>]:
    [Id <String>]: Read-only.
  [CreatedObjects <IMicrosoftGraphDirectoryObject[]>]: Directory objects created by this service principal. Read-only. Nullable.
  [Description <String>]:
  [DisplayName <String>]: The display name for the service principal.
  [Endpoints <IMicrosoftGraphEndpoint[]>]: Endpoints available for discovery. Services like Sharepoint populate this property with a tenant specific SharePoint endpoints that other applications can discover and use in their experiences.
    [DeletedDateTime <DateTime?>]:
    [Id <String>]: Read-only.
    [Capability <String>]: Describes the capability that is associated with this resource. (e.g. Messages, Conversations, etc.) Not nullable. Read-only.
    [ProviderId <String>]: Application id of the publishing underlying service. Not nullable. Read-only.
    [ProviderName <String>]: Name of the publishing underlying service. Read-only.
    [ProviderResourceId <String>]: For Microsoft 365 groups, this is set to a well-known name for the resource (e.g. Yammer.FeedURL etc.). Not nullable. Read-only.
    [Uri <String>]: URL of the published resource. Not nullable. Read-only.
  [ErrorUrl <String>]:
  [HomeRealmDiscoveryPolicies <IMicrosoftGraphHomeRealmDiscoveryPolicy1[]>]: The homeRealmDiscoveryPolicies assigned to this service principal.
    [AppliesTo <IMicrosoftGraphDirectoryObject[]>]:
    [Definition <String[]>]: A string collection containing a JSON string that defines the rules and settings for a policy. The syntax for the definition differs for each derived policy type. Required.
    [IsOrganizationDefault <Boolean?>]: If set to true, activates this policy. There can be many policies for the same policy type, but only one can be activated as the organization default. Optional, default value is false.
    [Description <String>]: Description for this policy.
    [DisplayName <String>]: Display name for this policy.
    [DeletedDateTime <DateTime?>]:
    [Id <String>]: Read-only.
  [Homepage <String>]: Home page or landing page of the application.
  [Info <IMicrosoftGraphInformationalUrl>]: informationalUrl
    [(Any) <Object>]: This indicates any property can be added to this object.
    [LogoUrl <String>]: CDN URL to the application's logo, Read-only.
    [MarketingUrl <String>]: Link to the application's marketing page. For example, https://www.contoso.com/app/marketing
    [PrivacyStatementUrl <String>]: Link to the application's privacy statement. For example, https://www.contoso.com/app/privacy
    [SupportUrl <String>]: Link to the application's support page. For example, https://www.contoso.com/app/support
    [TermsOfServiceUrl <String>]: Link to the application's terms of service statement. For example, https://www.contoso.com/app/termsofservice
  [KeyCredentials <IMicrosoftGraphKeyCredential[]>]: The collection of key credentials associated with the service principal. Not nullable.
    [CustomKeyIdentifier <Byte[]>]: Custom key identifier
    [DisplayName <String>]: Friendly name for the key. Optional.
    [EndDateTime <DateTime?>]: The date and time at which the credential expires.The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'
    [Key <Byte[]>]: Value for the key credential. Should be a base 64 encoded value.
    [KeyId <String>]: The unique identifier (GUID) for the key.
    [StartDateTime <DateTime?>]: The date and time at which the credential becomes valid.The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'
    [Type <String>]: The type of key credential; for example, 'Symmetric'.
    [Usage <String>]: A string that describes the purpose for which the key can be used; for example, 'Verify'.
  [LicenseDetails <IMicrosoftGraphLicenseDetails[]>]:
    [Id <String>]: Read-only.
    [ServicePlans <IMicrosoftGraphServicePlanInfo[]>]: Information about the service plans assigned with the license. Read-only, Not nullable
      [AppliesTo <String>]: The object the service plan can be assigned to. Possible values:'User' - service plan can be assigned to individual users.'Company' - service plan can be assigned to the entire tenant.
      [ProvisioningStatus <String>]: The provisioning status of the service plan. Possible values:'Success' - Service is fully provisioned.'Disabled' - Service has been disabled.'PendingInput' - Service is not yet provisioned; awaiting service confirmation.'PendingActivation' - Service is provisioned but requires explicit activation by administrator (for example, Intune_O365 service plan)'PendingProvisioning' - Microsoft has added a new service to the product SKU and it has not been activated in the tenant, yet.
      [ServicePlanId <String>]: The unique identifier of the service plan.
      [ServicePlanName <String>]: The name of the service plan.
    [SkuId <String>]: Unique identifier (GUID) for the service SKU. Equal to the skuId property on the related SubscribedSku object. Read-only
    [SkuPartNumber <String>]: Unique SKU display name. Equal to the skuPartNumber on the related SubscribedSku object; for example: 'AAD_Premium'. Read-only
  [LoginUrl <String>]: Specifies the URL where the service provider redirects the user to Azure AD to authenticate. Azure AD uses the URL to launch the application from Microsoft 365 or the Azure AD My Apps. When blank, Azure AD performs IdP-initiated sign-on for applications configured with SAML-based single sign-on. The user launches the application from Microsoft 365, the Azure AD My Apps, or the Azure AD SSO URL.
  [LogoutUrl <String>]: Specifies the URL that will be used by Microsoft's authorization service to logout an user using OpenId Connect front-channel, back-channel or SAML logout protocols.
  [MemberOf <IMicrosoftGraphDirectoryObject[]>]: Roles that this service principal is a member of. HTTP Methods: GET Read-only. Nullable.
  [Notes <String>]:
  [NotificationEmailAddresses <String[]>]: Specifies the list of email addresses where Azure AD sends a notification when the active certificate is near the expiration date. This is only for the certificates used to sign the SAML token issued for Azure AD Gallery applications.
  [Oauth2PermissionGrants <IMicrosoftGraphOAuth2PermissionGrant1[]>]: Delegated permission grants authorizing this service principal to access an API on behalf of a signed-in user. Read-only. Nullable.
    [Id <String>]: Read-only.
    [ClientId <String>]: The id of the client service principal for the application which is authorized to act on behalf of a signed-in user when accessing an API. Required. Supports $filter (eq only).
    [ConsentType <String>]: Indicates if authorization is granted for the client application to impersonate all users or only a specific user. AllPrincipals indicates authorization to impersonate all users. Principal indicates authorization to impersonate a specific user. Consent on behalf of all users can be granted by an administrator. Non-admin users may be authorized to consent on behalf of themselves in some cases, for some delegated permissions. Required. Supports $filter (eq only).
    [ExpiryTime <DateTime?>]:
    [PrincipalId <String>]: The id of the user on behalf of whom the client is authorized to access the resource, when consentType is Principal. If consentType is AllPrincipals this value is null. Required when consentType is Principal.
    [ResourceId <String>]: The id of the resource service principal to which access is authorized. This identifies the API which the client is authorized to attempt to call on behalf of a signed-in user.
    [Scope <String>]: A space-separated list of the claim values for delegated permissions which should be included in access tokens for the resource application (the API). For example, openid User.Read GroupMember.Read.All. Each claim value should match the value field of one of the delegated permissions defined by the API, listed in the publishedPermissionScopes property of the resource service principal.
    [StartTime <DateTime?>]:
  [OwnedObjects <IMicrosoftGraphDirectoryObject[]>]: Directory objects that are owned by this service principal. Read-only. Nullable.
  [Owners <IMicrosoftGraphDirectoryObject[]>]: Directory objects that are owners of this servicePrincipal. The owners are a set of non-admin users or servicePrincipals who are allowed to modify this object. Read-only. Nullable.
  [PasswordCredentials <IMicrosoftGraphPasswordCredential[]>]: The collection of password credentials associated with the service principal. Not nullable.
    [CustomKeyIdentifier <Byte[]>]: Do not use.
    [DisplayName <String>]: Friendly name for the password. Optional.
    [EndDateTime <DateTime?>]: The date and time at which the password expires represented using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Optional.
    [Hint <String>]: Contains the first three characters of the password. Read-only.
    [KeyId <String>]: The unique identifier for the password.
    [SecretText <String>]: Read-only; Contains the strong passwords generated by Azure AD that are 16-64 characters in length. The generated password value is only returned during the initial POST request to addPassword. There is no way to retrieve this password in the future.
    [StartDateTime <DateTime?>]: The date and time at which the password becomes valid. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Optional.
  [PreferredSingleSignOnMode <String>]: Specifies the single sign-on mode configured for this application. Azure AD uses the preferred single sign-on mode to launch the application from Microsoft 365 or the Azure AD My Apps. The supported values are password, saml, external, and oidc.
  [PreferredTokenSigningKeyEndDateTime <DateTime?>]:
  [PreferredTokenSigningKeyThumbprint <String>]:
  [PublishedPermissionScopes <IMicrosoftGraphPermissionScope[]>]:
    [AdminConsentDescription <String>]: A description of the delegated permissions, intended to be read by an administrator granting the permission on behalf of all users. This text appears in tenant-wide admin consent experiences.
    [AdminConsentDisplayName <String>]: The permission's title, intended to be read by an administrator granting the permission on behalf of all users.
    [Id <String>]: Unique delegated permission identifier inside the collection of delegated permissions defined for a resource application.
    [IsEnabled <Boolean?>]: When creating or updating a permission, this property must be set to true (which is the default). To delete a permission, this property must first be set to false. At that point, in a subsequent call, the permission may be removed.
    [Origin <String>]:
    [Type <String>]: Specifies whether this delegated permission should be considered safe for non-admin users to consent to on behalf of themselves, or whether an administrator should be required for consent to the permissions. This will be the default behavior, but each customer can choose to customize the behavior in their organization (by allowing, restricting or limiting user consent to this delegated permission.)
    [UserConsentDescription <String>]: A description of the delegated permissions, intended to be read by a user granting the permission on their own behalf. This text appears in consent experiences where the user is consenting only on behalf of themselves.
    [UserConsentDisplayName <String>]: A title for the permission, intended to be read by a user granting the permission on their own behalf. This text appears in consent experiences where the user is consenting only on behalf of themselves.
    [Value <String>]: Specifies the value to include in the scp (scope) claim in access tokens. Must not exceed 120 characters in length. Allowed characters are : ! # $ % & ' ( ) * + , - . / : ; = ? @ [ ] ^ + _ { } ~, as well as characters in the ranges 0-9, A-Z and a-z. Any other character, including the space character, are not allowed.
  [PublisherName <String>]:
  [ReplyUrls <String[]>]: The URLs that user tokens are sent to for sign in with the associated application, or the redirect URIs that OAuth 2.0 authorization codes and access tokens are sent to for the associated application. Not nullable.
  [SamlMetadataUrl <String>]:
  [SamlSingleSignOnSettings <IMicrosoftGraphSamlSingleSignOnSettings>]: samlSingleSignOnSettings
    [(Any) <Object>]: This indicates any property can be added to this object.
    [RelayState <String>]: The relative URI the service provider would redirect to after completion of the single sign-on flow.
  [ServicePrincipalNames <String[]>]: Contains the list of identifiersUris, copied over from the associated application. Additional values can be added to hybrid applications. These values can be used to identify the permissions exposed by this app within Azure AD. For example,Client apps can specify a resource URI which is based on the values of this property to acquire an access token, which is the URI returned in the 'aud' claim.The any operator is required for filter expressions on multi-valued properties. Not nullable.
  [ServicePrincipalType <String>]: Identifies if the service principal represents an application or a managed identity. This is set by Azure AD internally. For a service principal that represents an application this is set as Application. For a service principal that represent a managed identity this is set as ManagedIdentity.
  [SignInAudience <String>]:
  [Synchronization <IMicrosoftGraphSynchronization>]: synchronization
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Id <String>]: Read-only.
    [Jobs <IMicrosoftGraphSynchronizationJob[]>]:
      [Id <String>]: Read-only.
      [Schedule <IMicrosoftGraphSynchronizationSchedule>]: synchronizationSchedule
        [(Any) <Object>]: This indicates any property can be added to this object.
        [Expiration <DateTime?>]:
        [Interval <TimeSpan?>]:
        [State <String>]: synchronizationScheduleState
      [Schema <IMicrosoftGraphSynchronizationSchema>]: synchronizationSchema
        [(Any) <Object>]: This indicates any property can be added to this object.
        [Id <String>]: Read-only.
        [Directories <IMicrosoftGraphDirectoryDefinition[]>]:
          [Id <String>]: Read-only.
          [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
          [DiscoveryDateTime <DateTime?>]:
          [Name <String>]:
          [Objects <IMicrosoftGraphObjectDefinition[]>]:
            [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
              [Anchor <Boolean?>]:
              [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
                [Key <String>]:
                [Value <String>]:
              [CaseExact <Boolean?>]:
              [DefaultValue <String>]:
              [FlowNullValues <Boolean?>]:
              [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>]:
        [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?>]:
              [Source <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
                [(Any) <Object>]: This indicates any property can be added to this object.
                [Expression <String>]:
                [Name <String>]:
                [Parameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
                  [Key <String>]:
                  [Value <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
                [Type <String>]: attributeMappingSourceType
              [TargetAttributeName <String>]:
            [Enabled <Boolean?>]:
            [FlowTypes <String>]: objectFlowTypes
            [Metadata <IMicrosoftGraphMetadataEntry[]>]:
            [Name <String>]:
            [Scope <IMicrosoftGraphFilter>]: filter
              [(Any) <Object>]: This indicates any property can be added to this object.
              [CategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
                [Clauses <IMicrosoftGraphFilterClause[]>]:
                  [OperatorName <String>]:
                  [SourceOperandName <String>]:
                  [TargetOperand <IMicrosoftGraphFilterOperand>]: filterOperand
                    [(Any) <Object>]: This indicates any property can be added to this object.
                    [Values <String[]>]:
                [Name <String>]:
              [Groups <IMicrosoftGraphFilterGroup[]>]:
              [InputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
            [SourceObjectName <String>]:
            [TargetObjectName <String>]:
          [Priority <Int32?>]:
          [SourceDirectoryName <String>]:
          [TargetDirectoryName <String>]:
        [Version <String>]:
      [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
        [(Any) <Object>]: This indicates any property can be added to this object.
        [Code <String>]: synchronizationStatusCode
        [CountSuccessiveCompleteFailures <Int64?>]:
        [EscrowsPruned <Boolean?>]:
        [LastExecution <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
          [(Any) <Object>]: This indicates any property can be added to this object.
          [ActivityIdentifier <String>]:
          [CountEntitled <Int64?>]:
          [CountEntitledForProvisioning <Int64?>]:
          [CountEscrowed <Int64?>]:
          [CountEscrowedRaw <Int64?>]:
          [CountExported <Int64?>]:
          [CountExports <Int64?>]:
          [CountImported <Int64?>]:
          [CountImportedDeltas <Int64?>]:
          [CountImportedReferenceDeltas <Int64?>]:
          [Error <IMicrosoftGraphSynchronizationError>]: synchronizationError
            [(Any) <Object>]: This indicates any property can be added to this object.
            [Code <String>]:
            [Message <String>]:
            [TenantActionable <Boolean?>]:
          [State <String>]: synchronizationTaskExecutionResult
          [TimeBegan <DateTime?>]:
          [TimeEnded <DateTime?>]:
        [LastSuccessfulExecution <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
        [LastSuccessfulExecutionWithExports <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
        [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
          [CompletedUnits <Int64?>]:
          [ProgressObservationDateTime <DateTime?>]:
          [TotalUnits <Int64?>]:
          [Units <String>]:
        [Quarantine <IMicrosoftGraphSynchronizationQuarantine>]: synchronizationQuarantine
          [(Any) <Object>]: This indicates any property can be added to this object.
          [CurrentBegan <DateTime?>]:
          [Error <IMicrosoftGraphSynchronizationError>]: synchronizationError
          [NextAttempt <DateTime?>]:
          [Reason <String>]: quarantineReason
          [SeriesBegan <DateTime?>]:
          [SeriesCount <Int64?>]:
        [SteadyStateFirstAchievedTime <DateTime?>]:
        [SteadyStateLastAchievedTime <DateTime?>]:
        [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
          [Key <String>]:
          [Value <Int64?>]:
        [TroubleshootingUrl <String>]:
      [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
        [Name <String>]: Name for this key-value pair
        [Value <String>]: Value for this key-value pair
      [TemplateId <String>]:
    [Secrets <IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]>]:
      [Key <String>]: synchronizationSecret
      [Value <String>]:
    [Templates <IMicrosoftGraphSynchronizationTemplate[]>]:
      [Id <String>]: Read-only.
      [ApplicationId <String>]:
      [Default <Boolean?>]:
      [Description <String>]:
      [Discoverable <Boolean?>]:
      [FactoryTag <String>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Schema <IMicrosoftGraphSynchronizationSchema>]: synchronizationSchema
  [Tags <String[]>]: Custom strings that can be used to categorize and identify the service principal. Not nullable.
  [TokenEncryptionKeyId <String>]: Specifies the keyId of a public key from the keyCredentials collection. When configured, Azure AD issues tokens for this application encrypted using the key specified by this property. The application code that receives the encrypted token must use the matching private key to decrypt the token before it can be used for the signed-in user.
  [TokenIssuancePolicies <IMicrosoftGraphTokenIssuancePolicy1[]>]: The tokenIssuancePolicies assigned to this service principal.
    [AppliesTo <IMicrosoftGraphDirectoryObject[]>]:
    [Definition <String[]>]: A string collection containing a JSON string that defines the rules and settings for a policy. The syntax for the definition differs for each derived policy type. Required.
    [IsOrganizationDefault <Boolean?>]: If set to true, activates this policy. There can be many policies for the same policy type, but only one can be activated as the organization default. Optional, default value is false.
    [Description <String>]: Description for this policy.
    [DisplayName <String>]: Display name for this policy.
    [DeletedDateTime <DateTime?>]:
    [Id <String>]: Read-only.
  [TokenLifetimePolicies <IMicrosoftGraphTokenLifetimePolicy1[]>]: The tokenLifetimePolicies assigned to this service principal.
    [AppliesTo <IMicrosoftGraphDirectoryObject[]>]:
    [Definition <String[]>]: A string collection containing a JSON string that defines the rules and settings for a policy. The syntax for the definition differs for each derived policy type. Required.
    [IsOrganizationDefault <Boolean?>]: If set to true, activates this policy. There can be many policies for the same policy type, but only one can be activated as the organization default. Optional, default value is false.
    [Description <String>]: Description for this policy.
    [DisplayName <String>]: Display name for this policy.
    [DeletedDateTime <DateTime?>]:
    [Id <String>]: Read-only.
  [TransitiveMemberOf <IMicrosoftGraphDirectoryObject[]>]:
 
CLAIMSMAPPINGPOLICIES <IMicrosoftGraphClaimsMappingPolicy1[]>: The claimsMappingPolicies assigned to this service principal.
  [AppliesTo <IMicrosoftGraphDirectoryObject[]>]:
    [Id <String>]: Read-only.
    [DeletedDateTime <DateTime?>]:
  [Definition <String[]>]: A string collection containing a JSON string that defines the rules and settings for a policy. The syntax for the definition differs for each derived policy type. Required.
  [IsOrganizationDefault <Boolean?>]: If set to true, activates this policy. There can be many policies for the same policy type, but only one can be activated as the organization default. Optional, default value is false.
  [Description <String>]: Description for this policy.
  [DisplayName <String>]: Display name for this policy.
  [DeletedDateTime <DateTime?>]:
  [Id <String>]: Read-only.
 
CREATEDOBJECTS <IMicrosoftGraphDirectoryObject[]>: Directory objects created by this service principal. Read-only. Nullable.
  [Id <String>]: Read-only.
  [DeletedDateTime <DateTime?>]:
 
ENDPOINTS <IMicrosoftGraphEndpoint[]>: Endpoints available for discovery. Services like Sharepoint populate this property with a tenant specific SharePoint endpoints that other applications can discover and use in their experiences.
  [DeletedDateTime <DateTime?>]:
  [Id <String>]: Read-only.
  [Capability <String>]: Describes the capability that is associated with this resource. (e.g. Messages, Conversations, etc.) Not nullable. Read-only.
  [ProviderId <String>]: Application id of the publishing underlying service. Not nullable. Read-only.
  [ProviderName <String>]: Name of the publishing underlying service. Read-only.
  [ProviderResourceId <String>]: For Microsoft 365 groups, this is set to a well-known name for the resource (e.g. Yammer.FeedURL etc.). Not nullable. Read-only.
  [Uri <String>]: URL of the published resource. Not nullable. Read-only.
 
HOMEREALMDISCOVERYPOLICIES <IMicrosoftGraphHomeRealmDiscoveryPolicy1[]>: The homeRealmDiscoveryPolicies assigned to this service principal.
  [AppliesTo <IMicrosoftGraphDirectoryObject[]>]:
    [Id <String>]: Read-only.
    [DeletedDateTime <DateTime?>]:
  [Definition <String[]>]: A string collection containing a JSON string that defines the rules and settings for a policy. The syntax for the definition differs for each derived policy type. Required.
  [IsOrganizationDefault <Boolean?>]: If set to true, activates this policy. There can be many policies for the same policy type, but only one can be activated as the organization default. Optional, default value is false.
  [Description <String>]: Description for this policy.
  [DisplayName <String>]: Display name for this policy.
  [DeletedDateTime <DateTime?>]:
  [Id <String>]: Read-only.
 
INFO <IMicrosoftGraphInformationalUrl>: informationalUrl
  [(Any) <Object>]: This indicates any property can be added to this object.
  [LogoUrl <String>]: CDN URL to the application's logo, Read-only.
  [MarketingUrl <String>]: Link to the application's marketing page. For example, https://www.contoso.com/app/marketing
  [PrivacyStatementUrl <String>]: Link to the application's privacy statement. For example, https://www.contoso.com/app/privacy
  [SupportUrl <String>]: Link to the application's support page. For example, https://www.contoso.com/app/support
  [TermsOfServiceUrl <String>]: Link to the application's terms of service statement. For example, https://www.contoso.com/app/termsofservice
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: id of directoryDefinition
  [DirectoryObjectId <String>]: key: id of directoryObject
  [EndpointId <String>]: key: id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: id of servicePrincipal
  [SynchronizationJobId <String>]: key: id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: id of tokenLifetimePolicy
 
KEYCREDENTIALS <IMicrosoftGraphKeyCredential[]>: The collection of key credentials associated with the service principal. Not nullable.
  [CustomKeyIdentifier <Byte[]>]: Custom key identifier
  [DisplayName <String>]: Friendly name for the key. Optional.
  [EndDateTime <DateTime?>]: The date and time at which the credential expires.The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'
  [Key <Byte[]>]: Value for the key credential. Should be a base 64 encoded value.
  [KeyId <String>]: The unique identifier (GUID) for the key.
  [StartDateTime <DateTime?>]: The date and time at which the credential becomes valid.The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'
  [Type <String>]: The type of key credential; for example, 'Symmetric'.
  [Usage <String>]: A string that describes the purpose for which the key can be used; for example, 'Verify'.
 
LICENSEDETAILS <IMicrosoftGraphLicenseDetails[]>: .
  [Id <String>]: Read-only.
  [ServicePlans <IMicrosoftGraphServicePlanInfo[]>]: Information about the service plans assigned with the license. Read-only, Not nullable
    [AppliesTo <String>]: The object the service plan can be assigned to. Possible values:'User' - service plan can be assigned to individual users.'Company' - service plan can be assigned to the entire tenant.
    [ProvisioningStatus <String>]: The provisioning status of the service plan. Possible values:'Success' - Service is fully provisioned.'Disabled' - Service has been disabled.'PendingInput' - Service is not yet provisioned; awaiting service confirmation.'PendingActivation' - Service is provisioned but requires explicit activation by administrator (for example, Intune_O365 service plan)'PendingProvisioning' - Microsoft has added a new service to the product SKU and it has not been activated in the tenant, yet.
    [ServicePlanId <String>]: The unique identifier of the service plan.
    [ServicePlanName <String>]: The name of the service plan.
  [SkuId <String>]: Unique identifier (GUID) for the service SKU. Equal to the skuId property on the related SubscribedSku object. Read-only
  [SkuPartNumber <String>]: Unique SKU display name. Equal to the skuPartNumber on the related SubscribedSku object; for example: 'AAD_Premium'. Read-only
 
MEMBEROF <IMicrosoftGraphDirectoryObject[]>: Roles that this service principal is a member of. HTTP Methods: GET Read-only. Nullable.
  [Id <String>]: Read-only.
  [DeletedDateTime <DateTime?>]:
 
OAUTH2PERMISSIONGRANTS <IMicrosoftGraphOAuth2PermissionGrant1[]>: Delegated permission grants authorizing this service principal to access an API on behalf of a signed-in user. Read-only. Nullable.
  [Id <String>]: Read-only.
  [ClientId <String>]: The id of the client service principal for the application which is authorized to act on behalf of a signed-in user when accessing an API. Required. Supports $filter (eq only).
  [ConsentType <String>]: Indicates if authorization is granted for the client application to impersonate all users or only a specific user. AllPrincipals indicates authorization to impersonate all users. Principal indicates authorization to impersonate a specific user. Consent on behalf of all users can be granted by an administrator. Non-admin users may be authorized to consent on behalf of themselves in some cases, for some delegated permissions. Required. Supports $filter (eq only).
  [ExpiryTime <DateTime?>]:
  [PrincipalId <String>]: The id of the user on behalf of whom the client is authorized to access the resource, when consentType is Principal. If consentType is AllPrincipals this value is null. Required when consentType is Principal.
  [ResourceId <String>]: The id of the resource service principal to which access is authorized. This identifies the API which the client is authorized to attempt to call on behalf of a signed-in user.
  [Scope <String>]: A space-separated list of the claim values for delegated permissions which should be included in access tokens for the resource application (the API). For example, openid User.Read GroupMember.Read.All. Each claim value should match the value field of one of the delegated permissions defined by the API, listed in the publishedPermissionScopes property of the resource service principal.
  [StartTime <DateTime?>]:
 
OWNEDOBJECTS <IMicrosoftGraphDirectoryObject[]>: Directory objects that are owned by this service principal. Read-only. Nullable.
  [Id <String>]: Read-only.
  [DeletedDateTime <DateTime?>]:
 
OWNERS <IMicrosoftGraphDirectoryObject[]>: Directory objects that are owners of this servicePrincipal. The owners are a set of non-admin users or servicePrincipals who are allowed to modify this object. Read-only. Nullable.
  [Id <String>]: Read-only.
  [DeletedDateTime <DateTime?>]:
 
PASSWORDCREDENTIALS <IMicrosoftGraphPasswordCredential[]>: The collection of password credentials associated with the service principal. Not nullable.
  [CustomKeyIdentifier <Byte[]>]: Do not use.
  [DisplayName <String>]: Friendly name for the password. Optional.
  [EndDateTime <DateTime?>]: The date and time at which the password expires represented using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Optional.
  [Hint <String>]: Contains the first three characters of the password. Read-only.
  [KeyId <String>]: The unique identifier for the password.
  [SecretText <String>]: Read-only; Contains the strong passwords generated by Azure AD that are 16-64 characters in length. The generated password value is only returned during the initial POST request to addPassword. There is no way to retrieve this password in the future.
  [StartDateTime <DateTime?>]: The date and time at which the password becomes valid. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Optional.
 
PUBLISHEDPERMISSIONSCOPES <IMicrosoftGraphPermissionScope[]>: .
  [AdminConsentDescription <String>]: A description of the delegated permissions, intended to be read by an administrator granting the permission on behalf of all users. This text appears in tenant-wide admin consent experiences.
  [AdminConsentDisplayName <String>]: The permission's title, intended to be read by an administrator granting the permission on behalf of all users.
  [Id <String>]: Unique delegated permission identifier inside the collection of delegated permissions defined for a resource application.
  [IsEnabled <Boolean?>]: When creating or updating a permission, this property must be set to true (which is the default). To delete a permission, this property must first be set to false. At that point, in a subsequent call, the permission may be removed.
  [Origin <String>]:
  [Type <String>]: Specifies whether this delegated permission should be considered safe for non-admin users to consent to on behalf of themselves, or whether an administrator should be required for consent to the permissions. This will be the default behavior, but each customer can choose to customize the behavior in their organization (by allowing, restricting or limiting user consent to this delegated permission.)
  [UserConsentDescription <String>]: A description of the delegated permissions, intended to be read by a user granting the permission on their own behalf. This text appears in consent experiences where the user is consenting only on behalf of themselves.
  [UserConsentDisplayName <String>]: A title for the permission, intended to be read by a user granting the permission on their own behalf. This text appears in consent experiences where the user is consenting only on behalf of themselves.
  [Value <String>]: Specifies the value to include in the scp (scope) claim in access tokens. Must not exceed 120 characters in length. Allowed characters are : ! # $ % & ' ( ) * + , - . / : ; = ? @ [ ] ^ + _ { } ~, as well as characters in the ranges 0-9, A-Z and a-z. Any other character, including the space character, are not allowed.
 
SAMLSINGLESIGNONSETTINGS <IMicrosoftGraphSamlSingleSignOnSettings>: samlSingleSignOnSettings
  [(Any) <Object>]: This indicates any property can be added to this object.
  [RelayState <String>]: The relative URI the service provider would redirect to after completion of the single sign-on flow.
 
SYNCHRONIZATION <IMicrosoftGraphSynchronization>: synchronization
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [Jobs <IMicrosoftGraphSynchronizationJob[]>]:
    [Id <String>]: Read-only.
    [Schedule <IMicrosoftGraphSynchronizationSchedule>]: synchronizationSchedule
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Expiration <DateTime?>]:
      [Interval <TimeSpan?>]:
      [State <String>]: synchronizationScheduleState
    [Schema <IMicrosoftGraphSynchronizationSchema>]: synchronizationSchema
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Id <String>]: Read-only.
      [Directories <IMicrosoftGraphDirectoryDefinition[]>]:
        [Id <String>]: Read-only.
        [Discoverabilities <String>]: directoryDefinitionDiscoverabilities
        [DiscoveryDateTime <DateTime?>]:
        [Name <String>]:
        [Objects <IMicrosoftGraphObjectDefinition[]>]:
          [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
            [Anchor <Boolean?>]:
            [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
              [Key <String>]:
              [Value <String>]:
            [CaseExact <Boolean?>]:
            [DefaultValue <String>]:
            [FlowNullValues <Boolean?>]:
            [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>]:
      [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?>]:
            [Source <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
              [(Any) <Object>]: This indicates any property can be added to this object.
              [Expression <String>]:
              [Name <String>]:
              [Parameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
                [Key <String>]:
                [Value <IMicrosoftGraphAttributeMappingSource>]: attributeMappingSource
              [Type <String>]: attributeMappingSourceType
            [TargetAttributeName <String>]:
          [Enabled <Boolean?>]:
          [FlowTypes <String>]: objectFlowTypes
          [Metadata <IMicrosoftGraphMetadataEntry[]>]:
          [Name <String>]:
          [Scope <IMicrosoftGraphFilter>]: filter
            [(Any) <Object>]: This indicates any property can be added to this object.
            [CategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
              [Clauses <IMicrosoftGraphFilterClause[]>]:
                [OperatorName <String>]:
                [SourceOperandName <String>]:
                [TargetOperand <IMicrosoftGraphFilterOperand>]: filterOperand
                  [(Any) <Object>]: This indicates any property can be added to this object.
                  [Values <String[]>]:
              [Name <String>]:
            [Groups <IMicrosoftGraphFilterGroup[]>]:
            [InputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
          [SourceObjectName <String>]:
          [TargetObjectName <String>]:
        [Priority <Int32?>]:
        [SourceDirectoryName <String>]:
        [TargetDirectoryName <String>]:
      [Version <String>]:
    [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Code <String>]: synchronizationStatusCode
      [CountSuccessiveCompleteFailures <Int64?>]:
      [EscrowsPruned <Boolean?>]:
      [LastExecution <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
        [(Any) <Object>]: This indicates any property can be added to this object.
        [ActivityIdentifier <String>]:
        [CountEntitled <Int64?>]:
        [CountEntitledForProvisioning <Int64?>]:
        [CountEscrowed <Int64?>]:
        [CountEscrowedRaw <Int64?>]:
        [CountExported <Int64?>]:
        [CountExports <Int64?>]:
        [CountImported <Int64?>]:
        [CountImportedDeltas <Int64?>]:
        [CountImportedReferenceDeltas <Int64?>]:
        [Error <IMicrosoftGraphSynchronizationError>]: synchronizationError
          [(Any) <Object>]: This indicates any property can be added to this object.
          [Code <String>]:
          [Message <String>]:
          [TenantActionable <Boolean?>]:
        [State <String>]: synchronizationTaskExecutionResult
        [TimeBegan <DateTime?>]:
        [TimeEnded <DateTime?>]:
      [LastSuccessfulExecution <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
      [LastSuccessfulExecutionWithExports <IMicrosoftGraphSynchronizationTaskExecution>]: synchronizationTaskExecution
      [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
        [CompletedUnits <Int64?>]:
        [ProgressObservationDateTime <DateTime?>]:
        [TotalUnits <Int64?>]:
        [Units <String>]:
      [Quarantine <IMicrosoftGraphSynchronizationQuarantine>]: synchronizationQuarantine
        [(Any) <Object>]: This indicates any property can be added to this object.
        [CurrentBegan <DateTime?>]:
        [Error <IMicrosoftGraphSynchronizationError>]: synchronizationError
        [NextAttempt <DateTime?>]:
        [Reason <String>]: quarantineReason
        [SeriesBegan <DateTime?>]:
        [SeriesCount <Int64?>]:
      [SteadyStateFirstAchievedTime <DateTime?>]:
      [SteadyStateLastAchievedTime <DateTime?>]:
      [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
        [Key <String>]:
        [Value <Int64?>]:
      [TroubleshootingUrl <String>]:
    [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
      [Name <String>]: Name for this key-value pair
      [Value <String>]: Value for this key-value pair
    [TemplateId <String>]:
  [Secrets <IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]>]:
    [Key <String>]: synchronizationSecret
    [Value <String>]:
  [Templates <IMicrosoftGraphSynchronizationTemplate[]>]:
    [Id <String>]: Read-only.
    [ApplicationId <String>]:
    [Default <Boolean?>]:
    [Description <String>]:
    [Discoverable <Boolean?>]:
    [FactoryTag <String>]:
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Schema <IMicrosoftGraphSynchronizationSchema>]: synchronizationSchema
 
TOKENISSUANCEPOLICIES <IMicrosoftGraphTokenIssuancePolicy1[]>: The tokenIssuancePolicies assigned to this service principal.
  [AppliesTo <IMicrosoftGraphDirectoryObject[]>]:
    [Id <String>]: Read-only.
    [DeletedDateTime <DateTime?>]:
  [Definition <String[]>]: A string collection containing a JSON string that defines the rules and settings for a policy. The syntax for the definition differs for each derived policy type. Required.
  [IsOrganizationDefault <Boolean?>]: If set to true, activates this policy. There can be many policies for the same policy type, but only one can be activated as the organization default. Optional, default value is false.
  [Description <String>]: Description for this policy.
  [DisplayName <String>]: Display name for this policy.
  [DeletedDateTime <DateTime?>]:
  [Id <String>]: Read-only.
 
TOKENLIFETIMEPOLICIES <IMicrosoftGraphTokenLifetimePolicy1[]>: The tokenLifetimePolicies assigned to this service principal.
  [AppliesTo <IMicrosoftGraphDirectoryObject[]>]:
    [Id <String>]: Read-only.
    [DeletedDateTime <DateTime?>]:
  [Definition <String[]>]: A string collection containing a JSON string that defines the rules and settings for a policy. The syntax for the definition differs for each derived policy type. Required.
  [IsOrganizationDefault <Boolean?>]: If set to true, activates this policy. There can be many policies for the same policy type, but only one can be activated as the organization default. Optional, default value is false.
  [Description <String>]: Description for this policy.
  [DisplayName <String>]: Display name for this policy.
  [DeletedDateTime <DateTime?>]:
  [Id <String>]: Read-only.
 
TRANSITIVEMEMBEROF <IMicrosoftGraphDirectoryObject[]>: .
  [Id <String>]: Read-only.
  [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='UpdateExpanded1', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Update1', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded1', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='UpdateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1', 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='Update1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePrincipal1]
    # Represents an Azure Active Directory object.
    # The directoryObject type is the base type for many other directory entity types.
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # true if the service principal account is enabled; otherwise, false.
    ${AccountEnabled},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAddIn[]]
    # Defines custom behavior that a consuming service can use to call an app in specific contexts.
    # For example, applications that can render file streams may set the addIns property for its 'FileHandler' functionality.
    # This will let services like Microsoft 365 call the application in the context of a document the user is working on.
    # To construct, see NOTES section for ADDINS properties and create a hash table.
    ${AddIns},

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

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Used to retrieve service principals by subscription, identify resource group and full resource ids for managed identities.
    ${AlternativeNames},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${AppDescription},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The display name exposed by the associated application.
    ${AppDisplayName},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The unique identifier for the associated application (its appId property).
    ${AppId},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains the tenant id where the application is registered.
    # This is applicable only to service principals backed by applications.
    ${AppOwnerOrganizationId},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment1[]]
    # Principals (users, groups, and service principals) that are assigned to this service principal.
    # Read-only.
    # To construct, see NOTES section for APPROLEASSIGNEDTO properties and create a hash table.
    ${AppRoleAssignedTo},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Specifies whether users or other service principals need to be granted an app role assignment for this service principal before users can sign in or apps can get tokens.
    # The default value is false.
    # Not nullable.
    ${AppRoleAssignmentRequired},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment1[]]
    # Applications that this service principal is assigned to.
    # Read-only.
    # Nullable.
    # To construct, see NOTES section for APPROLEASSIGNMENTS properties and create a hash table.
    ${AppRoleAssignments},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRole[]]
    # The roles exposed by the application which this service principal represents.
    # For more information see the appRoles property definition on the application entity.
    # Not nullable.
    # To construct, see NOTES section for APPROLES properties and create a hash table.
    ${AppRoles},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Unique identifier of the applicationTemplate that the servicePrincipal was created from.
    # Read-only.
    ${ApplicationTemplateId},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphClaimsMappingPolicy1[]]
    # The claimsMappingPolicies assigned to this service principal.
    # To construct, see NOTES section for CLAIMSMAPPINGPOLICIES properties and create a hash table.
    ${ClaimsMappingPolicies},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject[]]
    # Directory objects created by this service principal.
    # Read-only.
    # Nullable.
    # To construct, see NOTES section for CREATEDOBJECTS properties and create a hash table.
    ${CreatedObjects},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # .
    ${DeletedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${Description},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The display name for the service principal.
    ${DisplayName},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphEndpoint[]]
    # Endpoints available for discovery.
    # Services like Sharepoint populate this property with a tenant specific SharePoint endpoints that other applications can discover and use in their experiences.
    # To construct, see NOTES section for ENDPOINTS properties and create a hash table.
    ${Endpoints},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${ErrorUrl},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphHomeRealmDiscoveryPolicy1[]]
    # The homeRealmDiscoveryPolicies assigned to this service principal.
    # To construct, see NOTES section for HOMEREALMDISCOVERYPOLICIES properties and create a hash table.
    ${HomeRealmDiscoveryPolicies},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Home page or landing page of the application.
    ${Homepage},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphInformationalUrl]
    # informationalUrl
    # To construct, see NOTES section for INFO properties and create a hash table.
    ${Info},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphKeyCredential[]]
    # The collection of key credentials associated with the service principal.
    # Not nullable.
    # To construct, see NOTES section for KEYCREDENTIALS properties and create a hash table.
    ${KeyCredentials},

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

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Specifies the URL where the service provider redirects the user to Azure AD to authenticate.
    # Azure AD uses the URL to launch the application from Microsoft 365 or the Azure AD My Apps.
    # When blank, Azure AD performs IdP-initiated sign-on for applications configured with SAML-based single sign-on.
    # The user launches the application from Microsoft 365, the Azure AD My Apps, or the Azure AD SSO URL.
    ${LoginUrl},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Specifies the URL that will be used by Microsoft's authorization service to logout an user using OpenId Connect front-channel, back-channel or SAML logout protocols.
    ${LogoutUrl},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject[]]
    # Roles that this service principal is a member of.
    # HTTP Methods: GET Read-only.
    # Nullable.
    # To construct, see NOTES section for MEMBEROF properties and create a hash table.
    ${MemberOf},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${Notes},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Specifies the list of email addresses where Azure AD sends a notification when the active certificate is near the expiration date.
    # This is only for the certificates used to sign the SAML token issued for Azure AD Gallery applications.
    ${NotificationEmailAddresses},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphOAuth2PermissionGrant1[]]
    # Delegated permission grants authorizing this service principal to access an API on behalf of a signed-in user.
    # Read-only.
    # Nullable.
    # To construct, see NOTES section for OAUTH2PERMISSIONGRANTS properties and create a hash table.
    ${Oauth2PermissionGrants},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject[]]
    # Directory objects that are owned by this service principal.
    # Read-only.
    # Nullable.
    # To construct, see NOTES section for OWNEDOBJECTS properties and create a hash table.
    ${OwnedObjects},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject[]]
    # Directory objects that are owners of this servicePrincipal.
    # The owners are a set of non-admin users or servicePrincipals who are allowed to modify this object.
    # Read-only.
    # Nullable.
    # To construct, see NOTES section for OWNERS properties and create a hash table.
    ${Owners},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPasswordCredential[]]
    # The collection of password credentials associated with the service principal.
    # Not nullable.
    # To construct, see NOTES section for PASSWORDCREDENTIALS properties and create a hash table.
    ${PasswordCredentials},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Specifies the single sign-on mode configured for this application.
    # Azure AD uses the preferred single sign-on mode to launch the application from Microsoft 365 or the Azure AD My Apps.
    # The supported values are password, saml, external, and oidc.
    ${PreferredSingleSignOnMode},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # .
    ${PreferredTokenSigningKeyEndDateTime},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${PreferredTokenSigningKeyThumbprint},

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

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${PublisherName},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # The URLs that user tokens are sent to for sign in with the associated application, or the redirect URIs that OAuth 2.0 authorization codes and access tokens are sent to for the associated application.
    # Not nullable.
    ${ReplyUrls},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${SamlMetadataUrl},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSamlSingleSignOnSettings]
    # samlSingleSignOnSettings
    # To construct, see NOTES section for SAMLSINGLESIGNONSETTINGS properties and create a hash table.
    ${SamlSingleSignOnSettings},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Contains the list of identifiersUris, copied over from the associated application.
    # Additional values can be added to hybrid applications.
    # These values can be used to identify the permissions exposed by this app within Azure AD.
    # For example,Client apps can specify a resource URI which is based on the values of this property to acquire an access token, which is the URI returned in the 'aud' claim.The any operator is required for filter expressions on multi-valued properties.
    # Not nullable.
    ${ServicePrincipalNames},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Identifies if the service principal represents an application or a managed identity.
    # This is set by Azure AD internally.
    # For a service principal that represents an application this is set as Application.
    # For a service principal that represent a managed identity this is set as ManagedIdentity.
    ${ServicePrincipalType},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${SignInAudience},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronization]
    # synchronization
    # To construct, see NOTES section for SYNCHRONIZATION properties and create a hash table.
    ${Synchronization},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Custom strings that can be used to categorize and identify the service principal.
    # Not nullable.
    ${Tags},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Specifies the keyId of a public key from the keyCredentials collection.
    # When configured, Azure AD issues tokens for this application encrypted using the key specified by this property.
    # The application code that receives the encrypted token must use the matching private key to decrypt the token before it can be used for the signed-in user.
    ${TokenEncryptionKeyId},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphTokenIssuancePolicy1[]]
    # The tokenIssuancePolicies assigned to this service principal.
    # To construct, see NOTES section for TOKENISSUANCEPOLICIES properties and create a hash table.
    ${TokenIssuancePolicies},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphTokenLifetimePolicy1[]]
    # The tokenLifetimePolicies assigned to this service principal.
    # To construct, see NOTES section for TOKENLIFETIMEPOLICIES properties and create a hash table.
    ${TokenLifetimePolicies},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryObject[]]
    # .
    # 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 = @{
            Update1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipal_Update1';
            UpdateExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipal_UpdateExpanded1';
            UpdateViaIdentity1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipal_UpdateViaIdentity1';
            UpdateViaIdentityExpanded1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipal_UpdateViaIdentityExpanded1';
        }
        $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
# MIIjkgYJKoZIhvcNAQcCoIIjgzCCI38CAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCC/b6Rvs5y36Tij
# W8bDxmJSqS7jZJdYT/YiB+0FHqajiKCCDYEwggX/MIID56ADAgECAhMzAAABh3IX
# chVZQMcJAAAAAAGHMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
# bmcgUENBIDIwMTEwHhcNMjAwMzA0MTgzOTQ3WhcNMjEwMzAzMTgzOTQ3WjB0MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
# AQDOt8kLc7P3T7MKIhouYHewMFmnq8Ayu7FOhZCQabVwBp2VS4WyB2Qe4TQBT8aB
# znANDEPjHKNdPT8Xz5cNali6XHefS8i/WXtF0vSsP8NEv6mBHuA2p1fw2wB/F0dH
# sJ3GfZ5c0sPJjklsiYqPw59xJ54kM91IOgiO2OUzjNAljPibjCWfH7UzQ1TPHc4d
# weils8GEIrbBRb7IWwiObL12jWT4Yh71NQgvJ9Fn6+UhD9x2uk3dLj84vwt1NuFQ
# itKJxIV0fVsRNR3abQVOLqpDugbr0SzNL6o8xzOHL5OXiGGwg6ekiXA1/2XXY7yV
# Fc39tledDtZjSjNbex1zzwSXAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE
# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUhov4ZyO96axkJdMjpzu2zVXOJcsw
# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1
# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDU4Mzg1MB8GA1UdIwQYMBaAFEhu
# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu
# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w
# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3
# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx
# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAixmy
# S6E6vprWD9KFNIB9G5zyMuIjZAOuUJ1EK/Vlg6Fb3ZHXjjUwATKIcXbFuFC6Wr4K
# NrU4DY/sBVqmab5AC/je3bpUpjtxpEyqUqtPc30wEg/rO9vmKmqKoLPT37svc2NV
# BmGNl+85qO4fV/w7Cx7J0Bbqk19KcRNdjt6eKoTnTPHBHlVHQIHZpMxacbFOAkJr
# qAVkYZdz7ikNXTxV+GRb36tC4ByMNxE2DF7vFdvaiZP0CVZ5ByJ2gAhXMdK9+usx
# zVk913qKde1OAuWdv+rndqkAIm8fUlRnr4saSCg7cIbUwCCf116wUJ7EuJDg0vHe
# yhnCeHnBbyH3RZkHEi2ofmfgnFISJZDdMAeVZGVOh20Jp50XBzqokpPzeZ6zc1/g
# yILNyiVgE+RPkjnUQshd1f1PMgn3tns2Cz7bJiVUaqEO3n9qRFgy5JuLae6UweGf
# AeOo3dgLZxikKzYs3hDMaEtJq8IP71cX7QXe6lnMmXU/Hdfz2p897Zd+kU+vZvKI
# 3cwLfuVQgK2RZ2z+Kc3K3dRPz2rXycK5XCuRZmvGab/WbrZiC7wJQapgBodltMI5
# GMdFrBg9IeF7/rP4EqVQXeKtevTlZXjpuNhhjuR+2DMt/dWufjXpiW91bo3aH6Ea
# jOALXmoxgltCp1K7hrS6gmsvj94cLRf50QQ4U8Qwggd6MIIFYqADAgECAgphDpDS
# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK
# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0
# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla
# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS
# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT
# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB
# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG
# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S
# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz
# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7
# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u
# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33
# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl
# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP
# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB
# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF
# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM
# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ
# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud
# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO
# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0
# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y
# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p
# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y
# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB
# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw
# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA
# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY
# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj
# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd
# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ
# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf
# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ
# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j
# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B
# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96
# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7
# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I
# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIVZzCCFWMCAQEwgZUwfjELMAkG
# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z
# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAYdyF3IVWUDHCQAAAAABhzAN
# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor
# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgWJHwj301
# 1tL4WXDpelYjr/ooLxVWb2+IYDTkXga4+iwwQgYKKwYBBAGCNwIBDDE0MDKgFIAS
# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN
# BgkqhkiG9w0BAQEFAASCAQAwNPgOnwkmzZC26F8oDrXSSG9BX17RtBuL+6zZCRyZ
# nZZV4dghSjbQr/R36/6KZO+GR8mlVKxH7gNW6I/P02Q+PdaUQgWGFVVH8whhjavO
# IDgYQNRBJN6yWH8lNTsWoMLjxYKVZ1vMQcyIOHBObDd41vRT39eApTka01+dutQc
# bPMOc/RtRiCl5A4tpefQB2+9ydqcE26LHsg+7lBwjM2j+be631chp+s9rTL84+pG
# TAp4COY2t6k19AkqA9ou97Nlxnsp2j7GaUhlvriv44UWsIVJY2TfDjmJsv3JpuJM
# FXr306UnyS94DUazxcPU/e+dqiAwhaoaeDRI3ktttHGAoYIS8TCCEu0GCisGAQQB
# gjcDAwExghLdMIIS2QYJKoZIhvcNAQcCoIISyjCCEsYCAQMxDzANBglghkgBZQME
# AgEFADCCAVUGCyqGSIb3DQEJEAEEoIIBRASCAUAwggE8AgEBBgorBgEEAYRZCgMB
# MDEwDQYJYIZIAWUDBAIBBQAEIBtwVCl7wGaVoI5+Ko/ptG/SWbvbKo82ABdYwWHE
# I/gYAgZfFvvu7V4YEzIwMjAwODE0MDE1NzM0Ljg1NlowBIACAfSggdSkgdEwgc4x
# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1p
# Y3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMg
# VFNTIEVTTjowQTU2LUUzMjktNEQ0RDElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt
# U3RhbXAgU2VydmljZaCCDkQwggT1MIID3aADAgECAhMzAAABJy9uo++RqBmoAAAA
# AAEnMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo
# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y
# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw
# MB4XDTE5MTIxOTAxMTQ1OVoXDTIxMDMxNzAxMTQ1OVowgc4xCzAJBgNVBAYTAlVT
# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVy
# YXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjowQTU2
# LUUzMjktNEQ0RDElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vydmlj
# ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPgB3nERnk6fS40vvWeD
# 3HCgM9Ep4xTIQiPnJXE9E+HkZVtTsPemoOyhfNAyF95E/rUvXOVTUcJFL7Xb16jT
# KPXONsCWY8DCixSDIiid6xa30TiEWVcIZRwiDlcx29D467OTav5rA1G6TwAEY5rQ
# jhUHLrOoJgfJfakZq6IHjd+slI0/qlys7QIGakFk2OB6mh/ln/nS8G4kNRK6Do4g
# xDtnBSFLNfhsSZlRSMDJwFvrZ2FCkaoexd7rKlUNOAAScY411IEqQeI1PwfRm3aW
# bS8IvAfJPC2Ah2LrtP8sKn5faaU8epexje7vZfcZif/cbxgUKStJzqbdvTBNc93n
# /Z8CAwEAAaOCARswggEXMB0GA1UdDgQWBBTl9JZVgF85MSRbYlOJXbhY022V8jAf
# BgNVHSMEGDAWgBTVYzpcijGQ80N7fEYbxTNoWoVtVTBWBgNVHR8ETzBNMEugSaBH
# hkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNU
# aW1TdGFQQ0FfMjAxMC0wNy0wMS5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUF
# BzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1RpbVN0
# YVBDQV8yMDEwLTA3LTAxLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsG
# AQUFBwMIMA0GCSqGSIb3DQEBCwUAA4IBAQAKyo180VXHBqVnjZwQy7NlzXbo2+W5
# qfHxR7ANV5RBkRkdGamkwUcDNL+DpHObFPJHa0oTeYKE0Zbl1MvvfS8RtGGdhGYG
# CJf+BPd/gBCs4+dkZdjvOzNyuVuDPGlqQ5f7HS7iuQ/cCyGHcHYJ0nXVewF2Lk+J
# lrWykHpTlLwPXmCpNR+gieItPi/UMF2RYTGwojW+yIVwNyMYnjFGUxEX5/DtJjRZ
# mg7PBHMrENN2DgO6wBelp4ptyH2KK2EsWT+8jFCuoKv+eJby0QD55LN5f8SrUPRn
# K86fh7aVOfCglQofo5ABZIGiDIrg4JsV4k6p0oBSIFOAcqRAhiH+1spCMIIGcTCC
# BFmgAwIBAgIKYQmBKgAAAAAAAjANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC
# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV
# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJv
# b3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMTAwNzAxMjEzNjU1WhcN
# MjUwNzAxMjE0NjU1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv
# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0
# aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCASIw
# DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKkdDbx3EYo6IOz8E5f1+n9plGt0
# VBDVpQoAgoX77XxoSyxfxcPlYcJ2tz5mK1vwFVMnBDEfQRsalR3OCROOfGEwWbEw
# RA/xYIiEVEMM1024OAizQt2TrNZzMFcmgqNFDdDq9UeBzb8kYDJYYEbyWEeGMoQe
# dGFnkV+BVLHPk0ySwcSmXdFhE24oxhr5hoC732H8RsEnHSRnEnIaIYqvS2SJUGKx
# Xf13Hz3wV3WsvYpCTUBR0Q+cBj5nf/VmwAOWRH7v0Ev9buWayrGo8noqCjHw2k4G
# kbaICDXoeByw6ZnNPOcvRLqn9NxkvaQBwSAJk3jN/LzAyURdXhacAQVPIk0CAwEA
# AaOCAeYwggHiMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBTVYzpcijGQ80N7
# fEYbxTNoWoVtVTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC
# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX
# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v
# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI
# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j
# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDCBoAYDVR0g
# AQH/BIGVMIGSMIGPBgkrBgEEAYI3LgMwgYEwPQYIKwYBBQUHAgEWMWh0dHA6Ly93
# d3cubWljcm9zb2Z0LmNvbS9QS0kvZG9jcy9DUFMvZGVmYXVsdC5odG0wQAYIKwYB
# BQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AUABvAGwAaQBjAHkAXwBTAHQAYQB0AGUA
# bQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAAfmiFEN4sbgmD+BcQM9naOh
# IW+z66bM9TG+zwXiqf76V20ZMLPCxWbJat/15/B4vceoniXj+bzta1RXCCtRgkQS
# +7lTjMz0YBKKdsxAQEGb3FwX/1z5Xhc1mCRWS3TvQhDIr79/xn/yN31aPxzymXlK
# kVIArzgPF/UveYFl2am1a+THzvbKegBvSzBEJCI8z+0DpZaPWSm8tv0E4XCfMkon
# /VWvL/625Y4zu2JfmttXQOnxzplmkIz/amJ/3cVKC5Em4jnsGUpxY517IW3DnKOi
# PPp/fZZqkHimbdLhnPkd/DjYlPTGpQqWhqS9nhquBEKDuLWAmyI4ILUl5WTs9/S/
# fmNZJQ96LjlXdqJxqgaKD4kWumGnEcua2A5HmoDF0M2n0O99g/DhO3EJ3110mCII
# YdqwUB5vvfHhAN/nMQekkzr3ZUd46PioSKv33nJ+YWtvd6mBy6cJrDm77MbL2IK0
# cs0d9LiFAR6A+xuJKlQ5slvayA1VmXqHczsI5pgt6o3gMy4SKfXAL1QnIffIrE7a
# KLixqduWsqdCosnPGUFN4Ib5KpqjEWYw07t0MkvfY3v1mYovG8chr1m1rtxEPJdQ
# cdeh0sVV42neV8HR3jDA/czmTfsNv11P6Z0eGTgvvM9YBS7vDaBQNdrvCScc1bN+
# NR4Iuto229Nfj950iEkSoYIC0jCCAjsCAQEwgfyhgdSkgdEwgc4xCzAJBgNVBAYT
# AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD
# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBP
# cGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjow
# QTU2LUUzMjktNEQ0RDElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vy
# dmljZaIjCgEBMAcGBSsOAwIaAxUAs5W4TmyDHMRM7iz6mgGojqvXHzOggYMwgYCk
# fjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD
# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIF
# AOLfy/owIhgPMjAyMDA4MTMxODI2MDJaGA8yMDIwMDgxNDE4MjYwMlowdzA9Bgor
# BgEEAYRZCgQBMS8wLTAKAgUA4t/L+gIBADAKAgEAAgIWbwIB/zAHAgEAAgIRqzAK
# AgUA4uEdegIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB
# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBBQUAA4GBAI0JZ1U12MATOr2B
# XmtHLnO++bilcA+poIlYdm8QDMzA+dJRosuJjvlsYOm3xIY9yXRQTb4Vn+JkBLYM
# 0Nt9nAPgnwTGUz7RcbhpNThXLZ2oqfqnguMskDxLMiZPc1qiCrTRFO810bKr2RW+
# S/Jy63VXUackRaLDxHB7Mb+rj3zIMYIDDTCCAwkCAQEwgZMwfDELMAkGA1UEBhMC
# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV
# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp
# bWUtU3RhbXAgUENBIDIwMTACEzMAAAEnL26j75GoGagAAAAAAScwDQYJYIZIAWUD
# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B
# CQQxIgQgBKEtktn1zdeJhzUzTPXAP+xxqHUlc4dUsIE0Jyv3bkIwgfoGCyqGSIb3
# DQEJEAIvMYHqMIHnMIHkMIG9BCAbkuhLEoYdahb/BUyVszO2VDi6kB3MSaof/+8u
# 7SM+IjCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u
# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp
# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB
# Jy9uo++RqBmoAAAAAAEnMCIEIOX9v2A7aqOXwUPS1SbxMAnT7Hgk5MjfJ48Oh0Jf
# OfJKMA0GCSqGSIb3DQEBCwUABIIBAIJZkkFX6RXOOxdaTngsDs+sQm/lZDqKzDCc
# kbH7MVpkN6vFcjDLLv0TWFDBygWbTPp02LYSaUcYaEJfIqpFJ1DCGZfRNXoLijuo
# oSupXjKQG3VeWnG6jdIn3Eozya1s98JHguW2O0f2E4CS9Cbhmn+OHHPXlFA4MmFi
# vSak0PJnCGA1vhWaZCJQNh95V6J8fxf16QCmiikv6EvjWsDtaAknJth17PTdlLJP
# 09TKyizc57EeYlqhd78xHHVMmzB30Gf9+FZL81mTqu0ECuaX/JbnQHGwVY2zy8Gj
# JFUCsy7BPh8h9hAVsPAdVsDabQdSqN2z9iruG1dzSWH2iRitfvE=
# SIG # End signature block