exports/ProxyCmdletDefinitions.ps1


# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Invoke action apply
.Description
Invoke action apply
.Example
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.IPaths1Hve2SxServiceprincipalsServiceprincipalIdSynchronizationJobsSynchronizationjobIdMicrosoftGraphApplyPostRequestbodyContentApplicationJsonSchema
.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 <IPaths1Hve2SxServiceprincipalsServiceprincipalIdSynchronizationJobsSynchronizationjobIdMicrosoftGraphApplyPostRequestbodyContentApplicationJsonSchema>: .
  [ObjectId <String>]:
  [RuleId <String>]:
  [TypeName <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-id of tokenLifetimePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/add-mgserviceprincipalsynchronizationjob
#>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Apply = 'Microsoft.Graph.Identity.ServicePrincipal.private\Add-MgServicePrincipalSynchronizationJob_Apply';
            ApplyExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Add-MgServicePrincipalSynchronizationJob_ApplyExpanded';
            ApplyViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Add-MgServicePrincipalSynchronizationJob_ApplyViaIdentity';
            ApplyViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Add-MgServicePrincipalSynchronizationJob_ApplyViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
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>: .
  [GroupIds <String[]>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Check', Mandatory)]
    [Parameter(ParameterSetName='CheckExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CheckViaIdentityExpanded', 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='Check', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CheckViaIdentity', 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='CheckExpanded')]
    [Parameter(ParameterSetName='CheckViaIdentityExpanded')]
    [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 = @{
            Check = 'Microsoft.Graph.Identity.ServicePrincipal.private\Confirm-MgServicePrincipalMemberGroup_Check';
            CheckExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Confirm-MgServicePrincipalMemberGroup_CheckExpanded';
            CheckViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Confirm-MgServicePrincipalMemberGroup_CheckViaIdentity';
            CheckViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Confirm-MgServicePrincipalMemberGroup_CheckViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $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>: .
  [Ids <String[]>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Check', Mandatory)]
    [Parameter(ParameterSetName='CheckExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CheckViaIdentityExpanded', 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='Check', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CheckViaIdentity', 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='CheckExpanded')]
    [Parameter(ParameterSetName='CheckViaIdentityExpanded')]
    [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 = @{
            Check = 'Microsoft.Graph.Identity.ServicePrincipal.private\Confirm-MgServicePrincipalMemberObject_Check';
            CheckExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Confirm-MgServicePrincipalMemberObject_CheckExpanded';
            CheckViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Confirm-MgServicePrincipalMemberObject_CheckViaIdentity';
            CheckViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Confirm-MgServicePrincipalMemberObject_CheckViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $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.IMicrosoftGraphAppRoleAssignment
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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.IMicrosoftGraphAppRoleAssignment])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: appRoleAssignment-id of appRoleAssignment
    ${AppRoleAssignmentId},

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

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

    [Parameter()]
    [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')]
    [Alias('Top')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${PageSize},

    [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(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalAppRoleAssignedTo_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalAppRoleAssignedTo_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalAppRoleAssignedTo_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Get appRoleAssignments from servicePrincipals
.Description
Get appRoleAssignments from servicePrincipals
.Example
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.IMicrosoftGraphAppRoleAssignment
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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.IMicrosoftGraphAppRoleAssignment])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: appRoleAssignment-id of appRoleAssignment
    ${AppRoleAssignmentId},

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

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

    [Parameter()]
    [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')]
    [Alias('Top')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${PageSize},

    [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(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalAppRoleAssignment_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalAppRoleAssignment_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalAppRoleAssignment_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
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.IPaths15YkyvsServiceprincipalsMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema
.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 <IPaths15YkyvsServiceprincipalsMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema>: .
  [Ids <String[]>]:
  [Types <String[]>]:
.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')]
param(
    [Parameter(ParameterSetName='Get1', 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(ParameterSetName='GetExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # .
    ${Ids},

    [Parameter(ParameterSetName='GetExpanded')]
    [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 = @{
            Get1 = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalById_Get1';
            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 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.IMicrosoftGraphClaimsMappingPolicy
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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.IMicrosoftGraphClaimsMappingPolicy])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: claimsMappingPolicy-id of claimsMappingPolicy
    ${ClaimsMappingPolicyId},

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

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

    [Parameter()]
    [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')]
    [Alias('Top')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${PageSize},

    [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(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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-MgServicePrincipalClaimMappingPolicy_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalClaimMappingPolicy_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalClaimMappingPolicy_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Get createdObjects from servicePrincipals
.Description
Get createdObjects from servicePrincipals
.Example
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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: directoryObject-id of directoryObject
    ${DirectoryObjectId},

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

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

    [Parameter()]
    [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')]
    [Alias('Top')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${PageSize},

    [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(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalCreatedObject_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalCreatedObject_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalCreatedObject_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Invoke function delta
.Description
Invoke function delta
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePrincipal
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/get-mgserviceprincipaldelta
#>

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Delta = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalDelta_Delta';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Get 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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: endpoint-id of endpoint
    ${EndpointId},

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

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

    [Parameter()]
    [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')]
    [Alias('Top')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${PageSize},

    [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(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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-MgServicePrincipalEndpoint_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalEndpoint_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalEndpoint_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 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.IMicrosoftGraphHomeRealmDiscoveryPolicy
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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.IMicrosoftGraphHomeRealmDiscoveryPolicy])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
    ${HomeRealmDiscoveryPolicyId},

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

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

    [Parameter()]
    [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')]
    [Alias('Top')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${PageSize},

    [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(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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-MgServicePrincipalHomeRealmDiscoveryPolicy_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalHomeRealmDiscoveryPolicy_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalHomeRealmDiscoveryPolicy_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 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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: licenseDetails-id of licenseDetails
    ${LicenseDetailsId},

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

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

    [Parameter()]
    [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')]
    [Alias('Top')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${PageSize},

    [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(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalLicenseDetail_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalLicenseDetail_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalLicenseDetail_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
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>: .
  [SecurityEnabledOnly <Boolean?>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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='GetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='GetExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

    [Parameter(ParameterSetName='Get', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IPaths1850388ServiceprincipalsServiceprincipalIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema]
    # .
    # 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.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 = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMemberGroup_Get';
            GetExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMemberGroup_GetExpanded';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMemberGroup_GetViaIdentity';
            GetViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMemberGroup_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 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>: .
  [SecurityEnabledOnly <Boolean?>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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='GetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='GetExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

    [Parameter(ParameterSetName='Get', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IPaths1Md6PmhServiceprincipalsServiceprincipalIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema]
    # .
    # 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.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 = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMemberObject_Get';
            GetExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMemberObject_GetExpanded';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMemberObject_GetViaIdentity';
            GetViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMemberObject_GetViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Get 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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: directoryObject-id of directoryObject
    ${DirectoryObjectId},

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

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

    [Parameter()]
    [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')]
    [Alias('Top')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${PageSize},

    [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(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMember_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMember_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalMember_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Get oauth2PermissionGrants from servicePrincipals
.Description
Get oauth2PermissionGrants from servicePrincipals
.Example
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.IMicrosoftGraphOAuth2PermissionGrant
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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.IMicrosoftGraphOAuth2PermissionGrant])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
    ${OAuth2PermissionGrantId},

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

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

    [Parameter()]
    [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')]
    [Alias('Top')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${PageSize},

    [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(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOauth2PermissionGrant_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOauth2PermissionGrant_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOauth2PermissionGrant_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Get ownedObjects from servicePrincipals
.Description
Get ownedObjects from servicePrincipals
.Example
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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: directoryObject-id of directoryObject
    ${DirectoryObjectId},

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

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

    [Parameter()]
    [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')]
    [Alias('Top')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${PageSize},

    [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(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOwnedObject_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOwnedObject_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOwnedObject_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Get owners from servicePrincipals
.Description
Get owners from servicePrincipals
.Example
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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: directoryObject-id of directoryObject
    ${DirectoryObjectId},

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

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

    [Parameter()]
    [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')]
    [Alias('Top')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${PageSize},

    [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(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOwner_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOwner_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalOwner_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Invoke action getPasswordSingleSignOnCredentials
.Description
Invoke action getPasswordSingleSignOnCredentials
.Example
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>: .
  [Id <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='GetExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

    [Parameter(ParameterSetName='Get', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.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.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
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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: directoryDefinition-id of directoryDefinition
    ${DirectoryDefinitionId},

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

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

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

    [Parameter()]
    [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')]
    [Alias('Top')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${PageSize},

    [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(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationJobSchemaDirectory_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationJobSchemaDirectory_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationJobSchemaDirectory_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Get schema from servicePrincipals
.Description
Get schema from servicePrincipals
.Example
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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

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

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

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

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

    [Parameter()]
    [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')]
    [Alias('Top')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${PageSize},

    [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(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationJob_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationJob_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationJob_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Get directories from servicePrincipals
.Description
Get directories from servicePrincipals
.Example
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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: directoryDefinition-id of directoryDefinition
    ${DirectoryDefinitionId},

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

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

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

    [Parameter()]
    [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')]
    [Alias('Top')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${PageSize},

    [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(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationTemplateSchemaDirectory_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationTemplateSchemaDirectory_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationTemplateSchemaDirectory_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Get schema from servicePrincipals
.Description
Get schema from servicePrincipals
.Example
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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

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

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

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

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

    [Parameter()]
    [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')]
    [Alias('Top')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${PageSize},

    [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(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationTemplate_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationTemplate_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalSynchronizationTemplate_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Get synchronization from servicePrincipals
.Description
Get synchronization from servicePrincipals
.Example
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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

    [Parameter()]
    [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 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.IMicrosoftGraphTokenIssuancePolicy
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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.IMicrosoftGraphTokenIssuancePolicy])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: tokenIssuancePolicy-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')]
    [Alias('Top')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${PageSize},

    [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(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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-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 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.IMicrosoftGraphTokenLifetimePolicy
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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.IMicrosoftGraphTokenLifetimePolicy])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: tokenLifetimePolicy-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')]
    [Alias('Top')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${PageSize},

    [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(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

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

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

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

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

    [Parameter()]
    [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')]
    [Alias('Top')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${PageSize},

    [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(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalTransitiveMember_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalTransitiveMember_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipalTransitiveMember_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
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>: .
  [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')]
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.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
Get entity from servicePrincipals by key
.Description
Get entity from servicePrincipals by key
.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.IMicrosoftGraphServicePrincipal
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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.IMicrosoftGraphServicePrincipal])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

    [Parameter()]
    [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')]
    [Alias('Top')]
    [Microsoft.Graph.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${PageSize},

    [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(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipal_Get';
            GetViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipal_GetViaIdentity';
            List = 'Microsoft.Graph.Identity.ServicePrincipal.private\Get-MgServicePrincipal_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Invoke function filterOperators
.Description
Invoke function filterOperators
.Example
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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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)]
param(
    [Parameter(ParameterSetName='Filter', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Filter = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgFilterServicePrincipalSynchronizationJobSchemaOperator_Filter';
            FilterViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgFilterServicePrincipalSynchronizationJobSchemaOperator_FilterViaIdentity';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Invoke function filterOperators
.Description
Invoke function filterOperators
.Example
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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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)]
param(
    [Parameter(ParameterSetName='Filter', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Filter = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgFilterServicePrincipalSynchronizationTemplateSchemaOperator_Filter';
            FilterViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgFilterServicePrincipalSynchronizationTemplateSchemaOperator_FilterViaIdentity';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Invoke function functions
.Description
Invoke function functions
.Example
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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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)]
param(
    [Parameter(ParameterSetName='Functions', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Functions = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgFunctionServicePrincipalSynchronizationJobSchema_Functions';
            FunctionsViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgFunctionServicePrincipalSynchronizationJobSchema_FunctionsViaIdentity';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Invoke function functions
.Description
Invoke function functions
.Example
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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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)]
param(
    [Parameter(ParameterSetName='Functions', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Functions = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgFunctionServicePrincipalSynchronizationTemplateSchema_Functions';
            FunctionsViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgFunctionServicePrincipalSynchronizationTemplateSchema_FunctionsViaIdentity';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Invoke action parseExpression
.Description
Invoke action parseExpression
.Example
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>: .
  [DefinitionAttributes <IMicrosoftGraphAttributeDefinition[]>]:
    [Anchor <Boolean?>]:
    [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Key <String>]:
      [Value <String>]:
    [CaseExact <Boolean?>]:
    [DefaultValue <String>]:
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Multivalued <Boolean?>]:
    [Mutability <String>]: mutability
    [Name <String>]:
    [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
      [ReferencedObjectName <String>]:
      [ReferencedProperty <String>]:
    [Required <Boolean?>]:
    [Type <String>]: attributeType
  [DefinitionMetadata <IMicrosoftGraphMetadataEntry[]>]:
  [DefinitionName <String>]:
  [DefinitionSupportedApis <String[]>]:
  [Expression <String>]:
  [TargetAttributeDefinitionAnchor <Boolean?>]:
  [TargetAttributeDefinitionApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
  [TargetAttributeDefinitionCaseExact <Boolean?>]:
  [TargetAttributeDefinitionDefaultValue <String>]:
  [TargetAttributeDefinitionMetadata <IMicrosoftGraphMetadataEntry[]>]:
  [TargetAttributeDefinitionMultivalued <Boolean?>]:
  [TargetAttributeDefinitionMutability <String>]: mutability
  [TargetAttributeDefinitionName <String>]:
  [TargetAttributeDefinitionReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
  [TargetAttributeDefinitionRequired <Boolean?>]:
  [TargetAttributeDefinitionType <String>]: attributeType
  [TestInputObjectProperties <IMicrosoftGraphStringKeyObjectValuePair[]>]:
    [Key <String>]:
 
DEFINITIONATTRIBUTES <IMicrosoftGraphAttributeDefinition[]>: .
  [Anchor <Boolean?>]:
  [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Key <String>]:
    [Value <String>]:
  [CaseExact <Boolean?>]:
  [DefaultValue <String>]:
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Key <String>]:
    [Value <String>]:
  [Multivalued <Boolean?>]:
  [Mutability <String>]: mutability
  [Name <String>]:
  [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
    [ReferencedObjectName <String>]:
    [ReferencedProperty <String>]:
  [Required <Boolean?>]:
  [Type <String>]: attributeType
 
DEFINITIONMETADATA <IMicrosoftGraphMetadataEntry[]>: .
  [Key <String>]:
  [Value <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-id of tokenLifetimePolicy
 
TARGETATTRIBUTEDEFINITIONAPIEXPRESSIONS <IMicrosoftGraphStringKeyStringValuePair[]>: .
  [Key <String>]:
  [Value <String>]:
 
TARGETATTRIBUTEDEFINITIONMETADATA <IMicrosoftGraphMetadataEntry[]>: .
  [Key <String>]:
  [Value <String>]:
 
TARGETATTRIBUTEDEFINITIONREFERENCEDOBJECTS <IMicrosoftGraphReferencedObject[]>: .
  [ReferencedObjectName <String>]:
  [ReferencedProperty <String>]:
 
TESTINPUTOBJECTPROPERTIES <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')]
param(
    [Parameter(ParameterSetName='Parse', Mandatory)]
    [Parameter(ParameterSetName='ParseExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

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

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

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

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

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

    [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')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${TargetAttributeDefinitionAnchor},

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Parse = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgParseServicePrincipalSynchronizationJobSchemaExpression_Parse';
            ParseExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgParseServicePrincipalSynchronizationJobSchemaExpression_ParseExpanded';
            ParseViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgParseServicePrincipalSynchronizationJobSchemaExpression_ParseViaIdentity';
            ParseViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgParseServicePrincipalSynchronizationJobSchemaExpression_ParseViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Invoke action parseExpression
.Description
Invoke action parseExpression
.Example
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>: .
  [DefinitionAttributes <IMicrosoftGraphAttributeDefinition[]>]:
    [Anchor <Boolean?>]:
    [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Key <String>]:
      [Value <String>]:
    [CaseExact <Boolean?>]:
    [DefaultValue <String>]:
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Multivalued <Boolean?>]:
    [Mutability <String>]: mutability
    [Name <String>]:
    [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
      [ReferencedObjectName <String>]:
      [ReferencedProperty <String>]:
    [Required <Boolean?>]:
    [Type <String>]: attributeType
  [DefinitionMetadata <IMicrosoftGraphMetadataEntry[]>]:
  [DefinitionName <String>]:
  [DefinitionSupportedApis <String[]>]:
  [Expression <String>]:
  [TargetAttributeDefinitionAnchor <Boolean?>]:
  [TargetAttributeDefinitionApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
  [TargetAttributeDefinitionCaseExact <Boolean?>]:
  [TargetAttributeDefinitionDefaultValue <String>]:
  [TargetAttributeDefinitionMetadata <IMicrosoftGraphMetadataEntry[]>]:
  [TargetAttributeDefinitionMultivalued <Boolean?>]:
  [TargetAttributeDefinitionMutability <String>]: mutability
  [TargetAttributeDefinitionName <String>]:
  [TargetAttributeDefinitionReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
  [TargetAttributeDefinitionRequired <Boolean?>]:
  [TargetAttributeDefinitionType <String>]: attributeType
  [TestInputObjectProperties <IMicrosoftGraphStringKeyObjectValuePair[]>]:
    [Key <String>]:
 
DEFINITIONATTRIBUTES <IMicrosoftGraphAttributeDefinition[]>: .
  [Anchor <Boolean?>]:
  [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Key <String>]:
    [Value <String>]:
  [CaseExact <Boolean?>]:
  [DefaultValue <String>]:
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Key <String>]:
    [Value <String>]:
  [Multivalued <Boolean?>]:
  [Mutability <String>]: mutability
  [Name <String>]:
  [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
    [ReferencedObjectName <String>]:
    [ReferencedProperty <String>]:
  [Required <Boolean?>]:
  [Type <String>]: attributeType
 
DEFINITIONMETADATA <IMicrosoftGraphMetadataEntry[]>: .
  [Key <String>]:
  [Value <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-id of tokenLifetimePolicy
 
TARGETATTRIBUTEDEFINITIONAPIEXPRESSIONS <IMicrosoftGraphStringKeyStringValuePair[]>: .
  [Key <String>]:
  [Value <String>]:
 
TARGETATTRIBUTEDEFINITIONMETADATA <IMicrosoftGraphMetadataEntry[]>: .
  [Key <String>]:
  [Value <String>]:
 
TARGETATTRIBUTEDEFINITIONREFERENCEDOBJECTS <IMicrosoftGraphReferencedObject[]>: .
  [ReferencedObjectName <String>]:
  [ReferencedProperty <String>]:
 
TESTINPUTOBJECTPROPERTIES <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')]
param(
    [Parameter(ParameterSetName='Parse', Mandatory)]
    [Parameter(ParameterSetName='ParseExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

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

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

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

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

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

    [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')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${TargetAttributeDefinitionAnchor},

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Parse = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgParseServicePrincipalSynchronizationTemplateSchemaExpression_Parse';
            ParseExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgParseServicePrincipalSynchronizationTemplateSchemaExpression_ParseExpanded';
            ParseViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgParseServicePrincipalSynchronizationTemplateSchemaExpression_ParseViaIdentity';
            ParseViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Invoke-MgParseServicePrincipalSynchronizationTemplateSchemaExpression_ParseViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Create new navigation property to appRoleAssignedTo for servicePrincipals
.Description
Create new navigation property to appRoleAssignedTo for servicePrincipals
.Example
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.IMicrosoftGraphAppRoleAssignment
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
BODYPARAMETER <IMicrosoftGraphAppRoleAssignment>: appRoleAssignment
  [Id <String>]: Read-only.
  [AppRoleId <String>]:
  [CreationTimestamp <DateTime?>]:
  [PrincipalDisplayName <String>]:
  [PrincipalId <String>]:
  [PrincipalType <String>]:
  [ResourceDisplayName <String>]:
  [ResourceId <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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.IMicrosoftGraphAppRoleAssignment])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment]
    # 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.String]
    # .
    ${AppRoleId},

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Create = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalAppRoleAssignedTo_Create';
            CreateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalAppRoleAssignedTo_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalAppRoleAssignedTo_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalAppRoleAssignedTo_CreateViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Create new navigation property to appRoleAssignments for servicePrincipals
.Description
Create new navigation property to appRoleAssignments for servicePrincipals
.Example
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.IMicrosoftGraphAppRoleAssignment
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
BODYPARAMETER <IMicrosoftGraphAppRoleAssignment>: appRoleAssignment
  [Id <String>]: Read-only.
  [AppRoleId <String>]:
  [CreationTimestamp <DateTime?>]:
  [PrincipalDisplayName <String>]:
  [PrincipalId <String>]:
  [PrincipalType <String>]:
  [ResourceDisplayName <String>]:
  [ResourceId <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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.IMicrosoftGraphAppRoleAssignment])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment]
    # 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.String]
    # .
    ${AppRoleId},

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Create = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalAppRoleAssignment_Create';
            CreateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalAppRoleAssignment_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalAppRoleAssignment_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalAppRoleAssignment_CreateViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Create new navigation property to 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.
  [DeletedDateTime <DateTime?>]:
  [Id <String>]: Read-only.
  [Capability <String>]:
  [ProviderId <String>]:
  [ProviderName <String>]:
  [ProviderResourceId <String>]:
  [Uri <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.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='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${Capability},

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

    [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]
    # .
    ${ProviderId},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${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 = @{
            Create = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalEndpoint_Create';
            CreateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalEndpoint_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalEndpoint_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalEndpoint_CreateViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Create new navigation property to licenseDetails for servicePrincipals
.Description
Create new navigation property to licenseDetails for servicePrincipals
.Example
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
  [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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLicenseDetails]
    # 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.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
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>: .
  [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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.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')]
    [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
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
  [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>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Key <String>]:
        [Value <String>]:
      [Multivalued <Boolean?>]:
      [Mutability <String>]: mutability
      [Name <String>]:
      [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
        [ReferencedObjectName <String>]:
        [ReferencedProperty <String>]:
      [Required <Boolean?>]:
      [Type <String>]: attributeType
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Name <String>]:
    [SupportedApis <String[]>]:
  [ReadOnly <Boolean?>]:
  [Version <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-id of tokenLifetimePolicy
 
OBJECTS <IMicrosoftGraphObjectDefinition[]>: .
  [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
    [Anchor <Boolean?>]:
    [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Key <String>]:
      [Value <String>]:
    [CaseExact <Boolean?>]:
    [DefaultValue <String>]:
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Multivalued <Boolean?>]:
    [Mutability <String>]: mutability
    [Name <String>]:
    [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
      [ReferencedObjectName <String>]:
      [ReferencedProperty <String>]:
    [Required <Boolean?>]:
    [Type <String>]: attributeType
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
  [Name <String>]:
  [SupportedApis <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalsynchronizationjobschemadirectory
#>

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

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

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

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition]
    # 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.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
  [Id <String>]: Read-only.
  [ScheduleExpiration <DateTime?>]:
  [ScheduleInterval <TimeSpan?>]:
  [ScheduleState <String>]: synchronizationScheduleState
  [SchemaDirectories <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>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
          [Key <String>]:
          [Value <String>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [SchemaId <String>]: Read-only.
  [SchemaProvisioningTaskIdentifier <String>]:
  [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [SchemaVersion <String>]:
  [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
    [Code <String>]: synchronizationStatusCode
    [CountSuccessiveCompleteFailures <Int64?>]:
    [EscrowsPruned <Boolean?>]:
    [LastExecutionActivityIdentifier <String>]:
    [LastExecutionCountEntitled <Int64?>]:
    [LastExecutionCountEntitledForProvisioning <Int64?>]:
    [LastExecutionCountEscrowed <Int64?>]:
    [LastExecutionCountEscrowedRaw <Int64?>]:
    [LastExecutionCountExported <Int64?>]:
    [LastExecutionCountExports <Int64?>]:
    [LastExecutionCountImported <Int64?>]:
    [LastExecutionCountImportedDeltas <Int64?>]:
    [LastExecutionCountImportedReferenceDeltas <Int64?>]:
    [LastExecutionErrorCode <String>]:
    [LastExecutionErrorMessage <String>]:
    [LastExecutionErrorTenantActionable <Boolean?>]:
    [LastExecutionState <String>]: synchronizationTaskExecutionResult
    [LastExecutionTimeBegan <DateTime?>]:
    [LastExecutionTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionActivityIdentifier <String>]:
    [LastSuccessfulExecutionCountEntitled <Int64?>]:
    [LastSuccessfulExecutionCountEntitledForProvisioning <Int64?>]:
    [LastSuccessfulExecutionCountEscrowed <Int64?>]:
    [LastSuccessfulExecutionCountEscrowedRaw <Int64?>]:
    [LastSuccessfulExecutionCountExported <Int64?>]:
    [LastSuccessfulExecutionCountExports <Int64?>]:
    [LastSuccessfulExecutionCountImported <Int64?>]:
    [LastSuccessfulExecutionCountImportedDeltas <Int64?>]:
    [LastSuccessfulExecutionCountImportedReferenceDeltas <Int64?>]:
    [LastSuccessfulExecutionErrorCode <String>]:
    [LastSuccessfulExecutionErrorMessage <String>]:
    [LastSuccessfulExecutionErrorTenantActionable <Boolean?>]:
    [LastSuccessfulExecutionState <String>]: synchronizationTaskExecutionResult
    [LastSuccessfulExecutionTimeBegan <DateTime?>]:
    [LastSuccessfulExecutionTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionWithExportActivityIdentifier <String>]:
    [LastSuccessfulExecutionWithExportCountEntitled <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEntitledForProvisioning <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEscrowed <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEscrowedRaw <Int64?>]:
    [LastSuccessfulExecutionWithExportCountExported <Int64?>]:
    [LastSuccessfulExecutionWithExportCountExports <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImported <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImportedDeltas <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImportedReferenceDeltas <Int64?>]:
    [LastSuccessfulExecutionWithExportState <String>]: synchronizationTaskExecutionResult
    [LastSuccessfulExecutionWithExportTimeBegan <DateTime?>]:
    [LastSuccessfulExecutionWithExportTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionWithExportsErrorCode <String>]:
    [LastSuccessfulExecutionWithExportsErrorMessage <String>]:
    [LastSuccessfulExecutionWithExportsErrorTenantActionable <Boolean?>]:
    [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
      [CompletedUnits <Int64?>]:
      [ProgressObservationDateTime <DateTime?>]:
      [TotalUnits <Int64?>]:
      [Units <String>]:
    [QuarantineCurrentBegan <DateTime?>]:
    [QuarantineErrorCode <String>]:
    [QuarantineErrorMessage <String>]:
    [QuarantineErrorTenantActionable <Boolean?>]:
    [QuarantineNextAttempt <DateTime?>]:
    [QuarantineReason <String>]: quarantineReason
    [QuarantineSeriesBegan <DateTime?>]:
    [QuarantineSeriesCount <Int64?>]:
    [SteadyStateFirstAchievedTime <DateTime?>]:
    [SteadyStateLastAchievedTime <DateTime?>]:
    [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
      [Key <String>]:
      [Value <Int64?>]:
    [TroubleshootingUrl <String>]:
  [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
    [Name <String>]: Name for this key-value pair
    [Value <String>]: Value for this key-value pair
  [TemplateId <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-id of tokenLifetimePolicy
 
SCHEMADIRECTORIES <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>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Key <String>]:
        [Value <String>]:
      [Multivalued <Boolean?>]:
      [Mutability <String>]: mutability
      [Name <String>]:
      [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
        [ReferencedObjectName <String>]:
        [ReferencedProperty <String>]:
      [Required <Boolean?>]:
      [Type <String>]: attributeType
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Name <String>]:
    [SupportedApis <String[]>]:
  [ReadOnly <Boolean?>]:
  [Version <String>]:
 
SCHEMASYNCHRONIZATIONRULES <IMicrosoftGraphSynchronizationRule[]>: .
  [Editable <Boolean?>]:
  [Id <String>]:
  [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Key <String>]:
    [Value <String>]:
  [Name <String>]:
  [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
    [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
      [DefaultValue <String>]:
      [ExportMissingReferences <Boolean?>]:
      [FlowBehavior <String>]: attributeFlowBehavior
      [FlowType <String>]: attributeFlowType
      [MatchingPriority <Int32?>]:
      [SourceExpression <String>]:
      [SourceName <String>]:
      [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [Key <String>]:
        [ValueExpression <String>]:
        [ValueName <String>]:
        [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [ValueType <String>]: attributeMappingSourceType
      [SourceType <String>]: attributeMappingSourceType
      [TargetAttributeName <String>]:
    [Enabled <Boolean?>]:
    [FlowTypes <String>]: objectFlowTypes
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Name <String>]:
    [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [Clauses <IMicrosoftGraphFilterClause[]>]:
        [OperatorName <String>]:
        [SourceOperandName <String>]:
        [TargetOperandValues <String[]>]:
      [Name <String>]:
    [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
    [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
    [SourceObjectName <String>]:
    [TargetObjectName <String>]:
  [Priority <Int32?>]:
  [SourceDirectoryName <String>]:
  [TargetDirectoryName <String>]:
 
STATUS <IMicrosoftGraphSynchronizationStatus>: synchronizationStatus
  [Code <String>]: synchronizationStatusCode
  [CountSuccessiveCompleteFailures <Int64?>]:
  [EscrowsPruned <Boolean?>]:
  [LastExecutionActivityIdentifier <String>]:
  [LastExecutionCountEntitled <Int64?>]:
  [LastExecutionCountEntitledForProvisioning <Int64?>]:
  [LastExecutionCountEscrowed <Int64?>]:
  [LastExecutionCountEscrowedRaw <Int64?>]:
  [LastExecutionCountExported <Int64?>]:
  [LastExecutionCountExports <Int64?>]:
  [LastExecutionCountImported <Int64?>]:
  [LastExecutionCountImportedDeltas <Int64?>]:
  [LastExecutionCountImportedReferenceDeltas <Int64?>]:
  [LastExecutionErrorCode <String>]:
  [LastExecutionErrorMessage <String>]:
  [LastExecutionErrorTenantActionable <Boolean?>]:
  [LastExecutionState <String>]: synchronizationTaskExecutionResult
  [LastExecutionTimeBegan <DateTime?>]:
  [LastExecutionTimeEnded <DateTime?>]:
  [LastSuccessfulExecutionActivityIdentifier <String>]:
  [LastSuccessfulExecutionCountEntitled <Int64?>]:
  [LastSuccessfulExecutionCountEntitledForProvisioning <Int64?>]:
  [LastSuccessfulExecutionCountEscrowed <Int64?>]:
  [LastSuccessfulExecutionCountEscrowedRaw <Int64?>]:
  [LastSuccessfulExecutionCountExported <Int64?>]:
  [LastSuccessfulExecutionCountExports <Int64?>]:
  [LastSuccessfulExecutionCountImported <Int64?>]:
  [LastSuccessfulExecutionCountImportedDeltas <Int64?>]:
  [LastSuccessfulExecutionCountImportedReferenceDeltas <Int64?>]:
  [LastSuccessfulExecutionErrorCode <String>]:
  [LastSuccessfulExecutionErrorMessage <String>]:
  [LastSuccessfulExecutionErrorTenantActionable <Boolean?>]:
  [LastSuccessfulExecutionState <String>]: synchronizationTaskExecutionResult
  [LastSuccessfulExecutionTimeBegan <DateTime?>]:
  [LastSuccessfulExecutionTimeEnded <DateTime?>]:
  [LastSuccessfulExecutionWithExportActivityIdentifier <String>]:
  [LastSuccessfulExecutionWithExportCountEntitled <Int64?>]:
  [LastSuccessfulExecutionWithExportCountEntitledForProvisioning <Int64?>]:
  [LastSuccessfulExecutionWithExportCountEscrowed <Int64?>]:
  [LastSuccessfulExecutionWithExportCountEscrowedRaw <Int64?>]:
  [LastSuccessfulExecutionWithExportCountExported <Int64?>]:
  [LastSuccessfulExecutionWithExportCountExports <Int64?>]:
  [LastSuccessfulExecutionWithExportCountImported <Int64?>]:
  [LastSuccessfulExecutionWithExportCountImportedDeltas <Int64?>]:
  [LastSuccessfulExecutionWithExportCountImportedReferenceDeltas <Int64?>]:
  [LastSuccessfulExecutionWithExportState <String>]: synchronizationTaskExecutionResult
  [LastSuccessfulExecutionWithExportTimeBegan <DateTime?>]:
  [LastSuccessfulExecutionWithExportTimeEnded <DateTime?>]:
  [LastSuccessfulExecutionWithExportsErrorCode <String>]:
  [LastSuccessfulExecutionWithExportsErrorMessage <String>]:
  [LastSuccessfulExecutionWithExportsErrorTenantActionable <Boolean?>]:
  [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
    [CompletedUnits <Int64?>]:
    [ProgressObservationDateTime <DateTime?>]:
    [TotalUnits <Int64?>]:
    [Units <String>]:
  [QuarantineCurrentBegan <DateTime?>]:
  [QuarantineErrorCode <String>]:
  [QuarantineErrorMessage <String>]:
  [QuarantineErrorTenantActionable <Boolean?>]:
  [QuarantineNextAttempt <DateTime?>]:
  [QuarantineReason <String>]: quarantineReason
  [QuarantineSeriesBegan <DateTime?>]:
  [QuarantineSeriesCount <Int64?>]:
  [SteadyStateFirstAchievedTime <DateTime?>]:
  [SteadyStateLastAchievedTime <DateTime?>]:
  [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
    [Key <String>]:
    [Value <Int64?>]:
  [TroubleshootingUrl <String>]:
 
SYNCHRONIZATIONJOBSETTINGS <IMicrosoftGraphKeyValuePair[]>: .
  [Name <String>]: 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')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationJob]
    # 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.String]
    # Read-only.
    ${Id},

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

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

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

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

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

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

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphKeyValuePair[]]
    # .
    # 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
  [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>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Key <String>]:
        [Value <String>]:
      [Multivalued <Boolean?>]:
      [Mutability <String>]: mutability
      [Name <String>]:
      [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
        [ReferencedObjectName <String>]:
        [ReferencedProperty <String>]:
      [Required <Boolean?>]:
      [Type <String>]: attributeType
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Name <String>]:
    [SupportedApis <String[]>]:
  [ReadOnly <Boolean?>]:
  [Version <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-id of tokenLifetimePolicy
 
OBJECTS <IMicrosoftGraphObjectDefinition[]>: .
  [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
    [Anchor <Boolean?>]:
    [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Key <String>]:
      [Value <String>]:
    [CaseExact <Boolean?>]:
    [DefaultValue <String>]:
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Multivalued <Boolean?>]:
    [Mutability <String>]: mutability
    [Name <String>]:
    [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
      [ReferencedObjectName <String>]:
      [ReferencedProperty <String>]:
    [Required <Boolean?>]:
    [Type <String>]: attributeType
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
  [Name <String>]:
  [SupportedApis <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalsynchronizationtemplateschemadirectory
#>

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

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

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

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition]
    # 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.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
  [Id <String>]: Read-only.
  [ApplicationId <String>]:
  [Default <Boolean?>]:
  [Description <String>]:
  [Discoverable <Boolean?>]:
  [FactoryTag <String>]:
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Key <String>]:
    [Value <String>]:
  [SchemaDirectories <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>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [SchemaId <String>]: Read-only.
  [SchemaProvisioningTaskIdentifier <String>]:
  [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [SchemaVersion <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-id of tokenLifetimePolicy
 
METADATA <IMicrosoftGraphMetadataEntry[]>: .
  [Key <String>]:
  [Value <String>]:
 
SCHEMADIRECTORIES <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>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Key <String>]:
        [Value <String>]:
      [Multivalued <Boolean?>]:
      [Mutability <String>]: mutability
      [Name <String>]:
      [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
        [ReferencedObjectName <String>]:
        [ReferencedProperty <String>]:
      [Required <Boolean?>]:
      [Type <String>]: attributeType
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Name <String>]:
    [SupportedApis <String[]>]:
  [ReadOnly <Boolean?>]:
  [Version <String>]:
 
SCHEMASYNCHRONIZATIONRULES <IMicrosoftGraphSynchronizationRule[]>: .
  [Editable <Boolean?>]:
  [Id <String>]:
  [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Key <String>]:
    [Value <String>]:
  [Name <String>]:
  [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
    [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
      [DefaultValue <String>]:
      [ExportMissingReferences <Boolean?>]:
      [FlowBehavior <String>]: attributeFlowBehavior
      [FlowType <String>]: attributeFlowType
      [MatchingPriority <Int32?>]:
      [SourceExpression <String>]:
      [SourceName <String>]:
      [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [Key <String>]:
        [ValueExpression <String>]:
        [ValueName <String>]:
        [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [ValueType <String>]: attributeMappingSourceType
      [SourceType <String>]: attributeMappingSourceType
      [TargetAttributeName <String>]:
    [Enabled <Boolean?>]:
    [FlowTypes <String>]: objectFlowTypes
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Name <String>]:
    [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [Clauses <IMicrosoftGraphFilterClause[]>]:
        [OperatorName <String>]:
        [SourceOperandName <String>]:
        [TargetOperandValues <String[]>]:
      [Name <String>]:
    [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
    [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
    [SourceObjectName <String>]:
    [TargetObjectName <String>]:
  [Priority <Int32?>]:
  [SourceDirectoryName <String>]:
  [TargetDirectoryName <String>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/new-mgserviceprincipalsynchronizationtemplate
#>

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

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

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationTemplate]
    # 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.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.IMicrosoftGraphDirectoryDefinition[]]
    # .
    # To construct, see NOTES section for SCHEMADIRECTORIES properties and create a hash table.
    ${SchemaDirectories},

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Create = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationTemplate_Create';
            CreateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationTemplate_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationTemplate_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\New-MgServicePrincipalSynchronizationTemplate_CreateViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Add new entity to servicePrincipals
.Description
Add new entity to servicePrincipals
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
.Example
PS C:\> {{ Add code here }}
 
{{ Add output here }}
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePrincipal
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePrincipal
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
ADDINS <IMicrosoftGraphAddIn[]>: .
  [Id <String>]:
  [Properties <IMicrosoftGraphKeyValue[]>]:
    [Key <String>]: Key for the key-value pair.
    [Value <String>]: Value for the key-value pair.
  [Type <String>]:
 
APPROLEASSIGNEDTO <IMicrosoftGraphAppRoleAssignment[]>: .
  [Id <String>]: Read-only.
  [AppRoleId <String>]:
  [CreationTimestamp <DateTime?>]:
  [PrincipalDisplayName <String>]:
  [PrincipalId <String>]:
  [PrincipalType <String>]:
  [ResourceDisplayName <String>]:
  [ResourceId <String>]:
 
APPROLEASSIGNMENTS <IMicrosoftGraphAppRoleAssignment[]>: .
  [Id <String>]: Read-only.
  [AppRoleId <String>]:
  [CreationTimestamp <DateTime?>]:
  [PrincipalDisplayName <String>]:
  [PrincipalId <String>]:
  [PrincipalType <String>]:
  [ResourceDisplayName <String>]:
  [ResourceId <String>]:
 
APPROLES <IMicrosoftGraphAppRole[]>: .
  [AllowedMemberTypes <String[]>]: Specifies whether this app role definition can be assigned to users and groups by setting to 'User', or to other applications (that are accessing this application in daemon service scenarios) by setting to 'Application', or to both.
  [Description <String>]: Permission help text that appears in the admin app assignment and consent experiences.
  [DisplayName <String>]: Display name for the permission that appears in the admin consent and app assignment 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>]: Read-only. Specifies if the app role is defined on the Application object . Must not be included in any POST or PATCH requests.
  [Value <String>]: Specifies the value which will be included in the roles claim in authentication and 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.
 
BODYPARAMETER <IMicrosoftGraphServicePrincipal>: Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.
  [DeletedDateTime <DateTime?>]:
  [Id <String>]: Read-only.
  [AccountEnabled <Boolean?>]:
  [AddIns <IMicrosoftGraphAddIn[]>]:
    [Id <String>]:
    [Properties <IMicrosoftGraphKeyValue[]>]:
      [Key <String>]: Key for the key-value pair.
      [Value <String>]: Value for the key-value pair.
    [Type <String>]:
  [AlternativeNames <String[]>]:
  [AppDisplayName <String>]:
  [AppId <String>]:
  [AppOwnerOrganizationId <String>]:
  [AppRoleAssignedTo <IMicrosoftGraphAppRoleAssignment[]>]:
    [Id <String>]: Read-only.
    [AppRoleId <String>]:
    [CreationTimestamp <DateTime?>]:
    [PrincipalDisplayName <String>]:
    [PrincipalId <String>]:
    [PrincipalType <String>]:
    [ResourceDisplayName <String>]:
    [ResourceId <String>]:
  [AppRoleAssignmentRequired <Boolean?>]:
  [AppRoleAssignments <IMicrosoftGraphAppRoleAssignment[]>]:
  [AppRoles <IMicrosoftGraphAppRole[]>]:
    [AllowedMemberTypes <String[]>]: Specifies whether this app role definition can be assigned to users and groups by setting to 'User', or to other applications (that are accessing this application in daemon service scenarios) by setting to 'Application', or to both.
    [Description <String>]: Permission help text that appears in the admin app assignment and consent experiences.
    [DisplayName <String>]: Display name for the permission that appears in the admin consent and app assignment 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>]: Read-only. Specifies if the app role is defined on the Application object . Must not be included in any POST or PATCH requests.
    [Value <String>]: Specifies the value which will be included in the roles claim in authentication and 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.
  [ApplicationTemplateId <String>]:
  [ClaimsMappingPolicies <IMicrosoftGraphClaimsMappingPolicy[]>]:
    [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.
    [Id <String>]: Read-only.
  [CreatedObjects <IMicrosoftGraphDirectoryObject[]>]:
  [DisplayName <String>]:
  [Endpoints <IMicrosoftGraphEndpoint[]>]:
    [DeletedDateTime <DateTime?>]:
    [Id <String>]: Read-only.
    [Capability <String>]:
    [ProviderId <String>]:
    [ProviderName <String>]:
    [ProviderResourceId <String>]:
    [Uri <String>]:
  [ErrorUrl <String>]:
  [HomeRealmDiscoveryPolicies <IMicrosoftGraphHomeRealmDiscoveryPolicy[]>]:
    [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.
    [Id <String>]: Read-only.
  [Homepage <String>]:
  [InfoLogoUrl <String>]: CDN URL to the application's logo, Read-only.
  [InfoMarketingUrl <String>]: Link to the application's marketing page. For example, https://www.contoso.com/app/marketing
  [InfoPrivacyStatementUrl <String>]: Link to the application's privacy statement. For example, https://www.contoso.com/app/privacy
  [InfoSupportUrl <String>]: Link to the application's support page. For example, https://www.contoso.com/app/support
  [InfoTermsOfServiceUrl <String>]: Link to the application's terms of service statement. For example, https://www.contoso.com/app/termsofservice
  [KeyCredentials <IMicrosoftGraphKeyCredential[]>]:
    [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>]:
  [LogoutUrl <String>]:
  [MemberOf <IMicrosoftGraphDirectoryObject[]>]:
  [NotificationEmailAddresses <String[]>]:
  [Oauth2PermissionGrants <IMicrosoftGraphOAuth2PermissionGrant[]>]:
    [Id <String>]: Read-only.
    [ClientId <String>]:
    [ConsentType <String>]:
    [ExpiryTime <DateTime?>]:
    [PrincipalId <String>]:
    [ResourceId <String>]:
    [Scope <String>]:
    [StartTime <DateTime?>]:
  [OwnedObjects <IMicrosoftGraphDirectoryObject[]>]:
  [Owners <IMicrosoftGraphDirectoryObject[]>]:
  [PasswordCredentials <IMicrosoftGraphPasswordCredential[]>]:
    [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>]:
  [PreferredTokenSigningKeyEndDateTime <DateTime?>]:
  [PreferredTokenSigningKeyThumbprint <String>]:
  [PublishedPermissionScopes <IMicrosoftGraphPermissionScope[]>]:
    [AdminConsentDescription <String>]: Permission help text that appears in the admin consent and app assignment experiences.
    [AdminConsentDisplayName <String>]: Display name for the permission that appears in the admin consent and app assignment experiences.
    [Id <String>]: Unique scope permission identifier inside the oauth2Permissions collection.
    [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>]: For internal use.
    [Type <String>]: Specifies whether this scope permission can be consented to by an end user, or whether it is a tenant-wide permission that must be consented to by a company administrator. Possible values are User or Admin.
    [UserConsentDescription <String>]: Permission help text that appears in the end-user consent experience.
    [UserConsentDisplayName <String>]: Display name for the permission that appears in the end-user consent experience.
    [Value <String>]: The value of the scope claim that the resource application should expect in the OAuth 2.0 access token.
  [PublisherName <String>]:
  [ReplyUrls <String[]>]:
  [SamlMetadataUrl <String>]:
  [SamlSingleSignOnSettingRelayState <String>]:
  [ServicePrincipalNames <String[]>]:
  [ServicePrincipalType <String>]:
  [SignInAudience <String>]:
  [SynchronizationId <String>]: Read-only.
  [SynchronizationJobs <IMicrosoftGraphSynchronizationJob[]>]:
    [Id <String>]: Read-only.
    [ScheduleExpiration <DateTime?>]:
    [ScheduleInterval <TimeSpan?>]:
    [ScheduleState <String>]: synchronizationScheduleState
    [SchemaDirectories <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>]:
          [Metadata <IMicrosoftGraphMetadataEntry[]>]:
            [Key <String>]:
            [Value <String>]:
          [Multivalued <Boolean?>]:
          [Mutability <String>]: mutability
          [Name <String>]:
          [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
            [ReferencedObjectName <String>]:
            [ReferencedProperty <String>]:
          [Required <Boolean?>]:
          [Type <String>]: attributeType
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Name <String>]:
        [SupportedApis <String[]>]:
      [ReadOnly <Boolean?>]:
      [Version <String>]:
    [SchemaId <String>]: Read-only.
    [SchemaProvisioningTaskIdentifier <String>]:
    [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
      [Editable <Boolean?>]:
      [Id <String>]:
      [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Name <String>]:
      [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
        [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
          [DefaultValue <String>]:
          [ExportMissingReferences <Boolean?>]:
          [FlowBehavior <String>]: attributeFlowBehavior
          [FlowType <String>]: attributeFlowType
          [MatchingPriority <Int32?>]:
          [SourceExpression <String>]:
          [SourceName <String>]:
          [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
            [Key <String>]:
            [ValueExpression <String>]:
            [ValueName <String>]:
            [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
            [ValueType <String>]: attributeMappingSourceType
          [SourceType <String>]: attributeMappingSourceType
          [TargetAttributeName <String>]:
        [Enabled <Boolean?>]:
        [FlowTypes <String>]: objectFlowTypes
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Name <String>]:
        [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
          [Clauses <IMicrosoftGraphFilterClause[]>]:
            [OperatorName <String>]:
            [SourceOperandName <String>]:
            [TargetOperandValues <String[]>]:
          [Name <String>]:
        [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
        [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [SourceObjectName <String>]:
        [TargetObjectName <String>]:
      [Priority <Int32?>]:
      [SourceDirectoryName <String>]:
      [TargetDirectoryName <String>]:
    [SchemaVersion <String>]:
    [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
      [Code <String>]: synchronizationStatusCode
      [CountSuccessiveCompleteFailures <Int64?>]:
      [EscrowsPruned <Boolean?>]:
      [LastExecutionActivityIdentifier <String>]:
      [LastExecutionCountEntitled <Int64?>]:
      [LastExecutionCountEntitledForProvisioning <Int64?>]:
      [LastExecutionCountEscrowed <Int64?>]:
      [LastExecutionCountEscrowedRaw <Int64?>]:
      [LastExecutionCountExported <Int64?>]:
      [LastExecutionCountExports <Int64?>]:
      [LastExecutionCountImported <Int64?>]:
      [LastExecutionCountImportedDeltas <Int64?>]:
      [LastExecutionCountImportedReferenceDeltas <Int64?>]:
      [LastExecutionErrorCode <String>]:
      [LastExecutionErrorMessage <String>]:
      [LastExecutionErrorTenantActionable <Boolean?>]:
      [LastExecutionState <String>]: synchronizationTaskExecutionResult
      [LastExecutionTimeBegan <DateTime?>]:
      [LastExecutionTimeEnded <DateTime?>]:
      [LastSuccessfulExecutionActivityIdentifier <String>]:
      [LastSuccessfulExecutionCountEntitled <Int64?>]:
      [LastSuccessfulExecutionCountEntitledForProvisioning <Int64?>]:
      [LastSuccessfulExecutionCountEscrowed <Int64?>]:
      [LastSuccessfulExecutionCountEscrowedRaw <Int64?>]:
      [LastSuccessfulExecutionCountExported <Int64?>]:
      [LastSuccessfulExecutionCountExports <Int64?>]:
      [LastSuccessfulExecutionCountImported <Int64?>]:
      [LastSuccessfulExecutionCountImportedDeltas <Int64?>]:
      [LastSuccessfulExecutionCountImportedReferenceDeltas <Int64?>]:
      [LastSuccessfulExecutionErrorCode <String>]:
      [LastSuccessfulExecutionErrorMessage <String>]:
      [LastSuccessfulExecutionErrorTenantActionable <Boolean?>]:
      [LastSuccessfulExecutionState <String>]: synchronizationTaskExecutionResult
      [LastSuccessfulExecutionTimeBegan <DateTime?>]:
      [LastSuccessfulExecutionTimeEnded <DateTime?>]:
      [LastSuccessfulExecutionWithExportActivityIdentifier <String>]:
      [LastSuccessfulExecutionWithExportCountEntitled <Int64?>]:
      [LastSuccessfulExecutionWithExportCountEntitledForProvisioning <Int64?>]:
      [LastSuccessfulExecutionWithExportCountEscrowed <Int64?>]:
      [LastSuccessfulExecutionWithExportCountEscrowedRaw <Int64?>]:
      [LastSuccessfulExecutionWithExportCountExported <Int64?>]:
      [LastSuccessfulExecutionWithExportCountExports <Int64?>]:
      [LastSuccessfulExecutionWithExportCountImported <Int64?>]:
      [LastSuccessfulExecutionWithExportCountImportedDeltas <Int64?>]:
      [LastSuccessfulExecutionWithExportCountImportedReferenceDeltas <Int64?>]:
      [LastSuccessfulExecutionWithExportState <String>]: synchronizationTaskExecutionResult
      [LastSuccessfulExecutionWithExportTimeBegan <DateTime?>]:
      [LastSuccessfulExecutionWithExportTimeEnded <DateTime?>]:
      [LastSuccessfulExecutionWithExportsErrorCode <String>]:
      [LastSuccessfulExecutionWithExportsErrorMessage <String>]:
      [LastSuccessfulExecutionWithExportsErrorTenantActionable <Boolean?>]:
      [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
        [CompletedUnits <Int64?>]:
        [ProgressObservationDateTime <DateTime?>]:
        [TotalUnits <Int64?>]:
        [Units <String>]:
      [QuarantineCurrentBegan <DateTime?>]:
      [QuarantineErrorCode <String>]:
      [QuarantineErrorMessage <String>]:
      [QuarantineErrorTenantActionable <Boolean?>]:
      [QuarantineNextAttempt <DateTime?>]:
      [QuarantineReason <String>]: quarantineReason
      [QuarantineSeriesBegan <DateTime?>]:
      [QuarantineSeriesCount <Int64?>]:
      [SteadyStateFirstAchievedTime <DateTime?>]:
      [SteadyStateLastAchievedTime <DateTime?>]:
      [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
        [Key <String>]:
        [Value <Int64?>]:
      [TroubleshootingUrl <String>]:
    [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
      [Name <String>]: Name for this key-value pair
      [Value <String>]: Value for this key-value pair
    [TemplateId <String>]:
  [SynchronizationSecrets <IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]>]:
    [Key <String>]: synchronizationSecret
    [Value <String>]:
  [SynchronizationTemplates <IMicrosoftGraphSynchronizationTemplate[]>]:
    [Id <String>]: Read-only.
    [ApplicationId <String>]:
    [Default <Boolean?>]:
    [Description <String>]:
    [Discoverable <Boolean?>]:
    [FactoryTag <String>]:
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [SchemaDirectories <IMicrosoftGraphDirectoryDefinition[]>]:
    [SchemaId <String>]: Read-only.
    [SchemaProvisioningTaskIdentifier <String>]:
    [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [SchemaVersion <String>]:
  [Tags <String[]>]:
  [TokenEncryptionKeyId <String>]:
  [TokenIssuancePolicies <IMicrosoftGraphTokenIssuancePolicy[]>]:
    [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.
    [Id <String>]: Read-only.
  [TokenLifetimePolicies <IMicrosoftGraphTokenLifetimePolicy[]>]:
    [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.
    [Id <String>]: Read-only.
  [TransitiveMemberOf <IMicrosoftGraphDirectoryObject[]>]:
 
CLAIMSMAPPINGPOLICIES <IMicrosoftGraphClaimsMappingPolicy[]>: .
  [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.
  [Id <String>]: Read-only.
 
CREATEDOBJECTS <IMicrosoftGraphDirectoryObject[]>: .
  [Id <String>]: Read-only.
  [DeletedDateTime <DateTime?>]:
 
ENDPOINTS <IMicrosoftGraphEndpoint[]>: .
  [DeletedDateTime <DateTime?>]:
  [Id <String>]: Read-only.
  [Capability <String>]:
  [ProviderId <String>]:
  [ProviderName <String>]:
  [ProviderResourceId <String>]:
  [Uri <String>]:
 
HOMEREALMDISCOVERYPOLICIES <IMicrosoftGraphHomeRealmDiscoveryPolicy[]>: .
  [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.
  [Id <String>]: Read-only.
 
KEYCREDENTIALS <IMicrosoftGraphKeyCredential[]>: .
  [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[]>: .
  [Id <String>]: Read-only.
  [DeletedDateTime <DateTime?>]:
 
OAUTH2PERMISSIONGRANTS <IMicrosoftGraphOAuth2PermissionGrant[]>: .
  [Id <String>]: Read-only.
  [ClientId <String>]:
  [ConsentType <String>]:
  [ExpiryTime <DateTime?>]:
  [PrincipalId <String>]:
  [ResourceId <String>]:
  [Scope <String>]:
  [StartTime <DateTime?>]:
 
OWNEDOBJECTS <IMicrosoftGraphDirectoryObject[]>: .
  [Id <String>]: Read-only.
  [DeletedDateTime <DateTime?>]:
 
OWNERS <IMicrosoftGraphDirectoryObject[]>: .
  [Id <String>]: Read-only.
  [DeletedDateTime <DateTime?>]:
 
PASSWORDCREDENTIALS <IMicrosoftGraphPasswordCredential[]>: .
  [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>]: Permission help text that appears in the admin consent and app assignment experiences.
  [AdminConsentDisplayName <String>]: Display name for the permission that appears in the admin consent and app assignment experiences.
  [Id <String>]: Unique scope permission identifier inside the oauth2Permissions collection.
  [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>]: For internal use.
  [Type <String>]: Specifies whether this scope permission can be consented to by an end user, or whether it is a tenant-wide permission that must be consented to by a company administrator. Possible values are User or Admin.
  [UserConsentDescription <String>]: Permission help text that appears in the end-user consent experience.
  [UserConsentDisplayName <String>]: Display name for the permission that appears in the end-user consent experience.
  [Value <String>]: The value of the scope claim that the resource application should expect in the OAuth 2.0 access token.
 
SYNCHRONIZATIONJOBS <IMicrosoftGraphSynchronizationJob[]>: .
  [Id <String>]: Read-only.
  [ScheduleExpiration <DateTime?>]:
  [ScheduleInterval <TimeSpan?>]:
  [ScheduleState <String>]: synchronizationScheduleState
  [SchemaDirectories <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>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
          [Key <String>]:
          [Value <String>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [SchemaId <String>]: Read-only.
  [SchemaProvisioningTaskIdentifier <String>]:
  [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [SchemaVersion <String>]:
  [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
    [Code <String>]: synchronizationStatusCode
    [CountSuccessiveCompleteFailures <Int64?>]:
    [EscrowsPruned <Boolean?>]:
    [LastExecutionActivityIdentifier <String>]:
    [LastExecutionCountEntitled <Int64?>]:
    [LastExecutionCountEntitledForProvisioning <Int64?>]:
    [LastExecutionCountEscrowed <Int64?>]:
    [LastExecutionCountEscrowedRaw <Int64?>]:
    [LastExecutionCountExported <Int64?>]:
    [LastExecutionCountExports <Int64?>]:
    [LastExecutionCountImported <Int64?>]:
    [LastExecutionCountImportedDeltas <Int64?>]:
    [LastExecutionCountImportedReferenceDeltas <Int64?>]:
    [LastExecutionErrorCode <String>]:
    [LastExecutionErrorMessage <String>]:
    [LastExecutionErrorTenantActionable <Boolean?>]:
    [LastExecutionState <String>]: synchronizationTaskExecutionResult
    [LastExecutionTimeBegan <DateTime?>]:
    [LastExecutionTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionActivityIdentifier <String>]:
    [LastSuccessfulExecutionCountEntitled <Int64?>]:
    [LastSuccessfulExecutionCountEntitledForProvisioning <Int64?>]:
    [LastSuccessfulExecutionCountEscrowed <Int64?>]:
    [LastSuccessfulExecutionCountEscrowedRaw <Int64?>]:
    [LastSuccessfulExecutionCountExported <Int64?>]:
    [LastSuccessfulExecutionCountExports <Int64?>]:
    [LastSuccessfulExecutionCountImported <Int64?>]:
    [LastSuccessfulExecutionCountImportedDeltas <Int64?>]:
    [LastSuccessfulExecutionCountImportedReferenceDeltas <Int64?>]:
    [LastSuccessfulExecutionErrorCode <String>]:
    [LastSuccessfulExecutionErrorMessage <String>]:
    [LastSuccessfulExecutionErrorTenantActionable <Boolean?>]:
    [LastSuccessfulExecutionState <String>]: synchronizationTaskExecutionResult
    [LastSuccessfulExecutionTimeBegan <DateTime?>]:
    [LastSuccessfulExecutionTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionWithExportActivityIdentifier <String>]:
    [LastSuccessfulExecutionWithExportCountEntitled <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEntitledForProvisioning <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEscrowed <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEscrowedRaw <Int64?>]:
    [LastSuccessfulExecutionWithExportCountExported <Int64?>]:
    [LastSuccessfulExecutionWithExportCountExports <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImported <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImportedDeltas <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImportedReferenceDeltas <Int64?>]:
    [LastSuccessfulExecutionWithExportState <String>]: synchronizationTaskExecutionResult
    [LastSuccessfulExecutionWithExportTimeBegan <DateTime?>]:
    [LastSuccessfulExecutionWithExportTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionWithExportsErrorCode <String>]:
    [LastSuccessfulExecutionWithExportsErrorMessage <String>]:
    [LastSuccessfulExecutionWithExportsErrorTenantActionable <Boolean?>]:
    [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
      [CompletedUnits <Int64?>]:
      [ProgressObservationDateTime <DateTime?>]:
      [TotalUnits <Int64?>]:
      [Units <String>]:
    [QuarantineCurrentBegan <DateTime?>]:
    [QuarantineErrorCode <String>]:
    [QuarantineErrorMessage <String>]:
    [QuarantineErrorTenantActionable <Boolean?>]:
    [QuarantineNextAttempt <DateTime?>]:
    [QuarantineReason <String>]: quarantineReason
    [QuarantineSeriesBegan <DateTime?>]:
    [QuarantineSeriesCount <Int64?>]:
    [SteadyStateFirstAchievedTime <DateTime?>]:
    [SteadyStateLastAchievedTime <DateTime?>]:
    [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
      [Key <String>]:
      [Value <Int64?>]:
    [TroubleshootingUrl <String>]:
  [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
    [Name <String>]: Name for this key-value pair
    [Value <String>]: Value for this key-value pair
  [TemplateId <String>]:
 
SYNCHRONIZATIONSECRETS <IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]>: .
  [Key <String>]: synchronizationSecret
  [Value <String>]:
 
SYNCHRONIZATIONTEMPLATES <IMicrosoftGraphSynchronizationTemplate[]>: .
  [Id <String>]: Read-only.
  [ApplicationId <String>]:
  [Default <Boolean?>]:
  [Description <String>]:
  [Discoverable <Boolean?>]:
  [FactoryTag <String>]:
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Key <String>]:
    [Value <String>]:
  [SchemaDirectories <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>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [SchemaId <String>]: Read-only.
  [SchemaProvisioningTaskIdentifier <String>]:
  [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [SchemaVersion <String>]:
 
TOKENISSUANCEPOLICIES <IMicrosoftGraphTokenIssuancePolicy[]>: .
  [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.
  [Id <String>]: Read-only.
 
TOKENLIFETIMEPOLICIES <IMicrosoftGraphTokenLifetimePolicy[]>: .
  [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.
  [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.IMicrosoftGraphServicePrincipal])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePrincipal]
    # 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]
    # .
    ${AccountEnabled},

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

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

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

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

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

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

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

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

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

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # CDN URL to the application's logo, Read-only.
    ${InfoLogoUrl},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Link to the application's marketing page.
    # For example, https://www.contoso.com/app/marketing
    ${InfoMarketingUrl},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Link to the application's privacy statement.
    # For example, https://www.contoso.com/app/privacy
    ${InfoPrivacyStatementUrl},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Link to the application's support page.
    # For example, https://www.contoso.com/app/support
    ${InfoSupportUrl},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Link to the application's terms of service statement.
    # For example, https://www.contoso.com/app/termsofservice
    ${InfoTermsOfServiceUrl},

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphTokenIssuancePolicy[]]
    # .
    # 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.IMicrosoftGraphTokenLifetimePolicy[]]
    # .
    # 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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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)]
param(
    [Parameter(ParameterSetName='Ping', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Ping = 'Microsoft.Graph.Identity.ServicePrincipal.private\Ping-MgServicePrincipalsSynchronization_Ping';
            PingViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Ping-MgServicePrincipalsSynchronization_PingViaIdentity';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Invoke action deletePasswordSingleSignOnCredentials
.Description
Invoke action deletePasswordSingleSignOnCredentials
.Example
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>: .
  [Id <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Parameter(ParameterSetName='DeleteExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

    [Parameter(ParameterSetName='Delete', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.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.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 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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Delete = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipal_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Remove-MgServicePrincipal_DeleteViaIdentity';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Invoke action restart
.Description
Invoke action restart
.Example
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>: .
  [CriterionResetScope <String>]: synchronizationJobRestartScope
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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')]
param(
    [Parameter(ParameterSetName='Restart', Mandatory)]
    [Parameter(ParameterSetName='RestartExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

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

    [Parameter(ParameterSetName='Restart', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='RestartViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.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.String]
    # synchronizationJobRestartScope
    ${CriterionResetScope},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Restart = 'Microsoft.Graph.Identity.ServicePrincipal.private\Restart-MgServicePrincipalSynchronizationJob_Restart';
            RestartExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Restart-MgServicePrincipalSynchronizationJob_RestartExpanded';
            RestartViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Restart-MgServicePrincipalSynchronizationJob_RestartViaIdentity';
            RestartViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Restart-MgServicePrincipalSynchronizationJob_RestartViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Invoke action 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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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='Restore', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Restore', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

    [Parameter(ParameterSetName='RestoreViaIdentity', 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 = @{
            Restore = 'Microsoft.Graph.Identity.ServicePrincipal.private\Restore-MgServicePrincipal_Restore';
            RestoreViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Restore-MgServicePrincipal_RestoreViaIdentity';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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')]
param(
    [Parameter(ParameterSetName='Start', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Start = 'Microsoft.Graph.Identity.ServicePrincipal.private\Start-MgServicePrincipalSynchronizationJob_Start';
            StartViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Start-MgServicePrincipalSynchronizationJob_StartViaIdentity';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Invoke action stop
.Description
Invoke action stop
.Example
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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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')]
param(
    [Parameter(ParameterSetName='Stop', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Stop = 'Microsoft.Graph.Identity.ServicePrincipal.private\Stop-MgServicePrincipalSynchronizationJob_Stop';
            StopViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Stop-MgServicePrincipalSynchronizationJob_StopViaIdentity';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Invoke action pause
.Description
Invoke action pause
.Example
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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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')]
param(
    [Parameter(ParameterSetName='Pause', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Pause = 'Microsoft.Graph.Identity.ServicePrincipal.private\Suspend-MgServicePrincipalSynchronizationJob_Pause';
            PauseViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Suspend-MgServicePrincipalSynchronizationJob_PauseViaIdentity';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Invoke action 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>: .
  [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')]
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.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>: .
  [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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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')]
param(
    [Parameter(ParameterSetName='Validate', Mandatory)]
    [Parameter(ParameterSetName='ValidateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

    [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='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.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.IMicrosoftGraphAppRoleAssignment
.Outputs
System.Boolean
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
BODYPARAMETER <IMicrosoftGraphAppRoleAssignment>: appRoleAssignment
  [Id <String>]: Read-only.
  [AppRoleId <String>]:
  [CreationTimestamp <DateTime?>]:
  [PrincipalDisplayName <String>]:
  [PrincipalId <String>]:
  [PrincipalType <String>]:
  [ResourceDisplayName <String>]:
  [ResourceId <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: appRoleAssignment-id of appRoleAssignment
    ${AppRoleAssignmentId},

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

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment]
    # 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.String]
    # .
    ${AppRoleId},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # .
    ${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]
    # .
    ${PrincipalDisplayName},

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Update = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalAppRoleAssignedTo_Update';
            UpdateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalAppRoleAssignedTo_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalAppRoleAssignedTo_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalAppRoleAssignedTo_UpdateViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Update the navigation property appRoleAssignments in servicePrincipals
.Description
Update the navigation property appRoleAssignments in servicePrincipals
.Example
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.IMicrosoftGraphAppRoleAssignment
.Outputs
System.Boolean
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
BODYPARAMETER <IMicrosoftGraphAppRoleAssignment>: appRoleAssignment
  [Id <String>]: Read-only.
  [AppRoleId <String>]:
  [CreationTimestamp <DateTime?>]:
  [PrincipalDisplayName <String>]:
  [PrincipalId <String>]:
  [PrincipalType <String>]:
  [ResourceDisplayName <String>]:
  [ResourceId <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: appRoleAssignment-id of appRoleAssignment
    ${AppRoleAssignmentId},

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

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphAppRoleAssignment]
    # 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.String]
    # .
    ${AppRoleId},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # .
    ${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]
    # .
    ${PrincipalDisplayName},

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${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.
  [DeletedDateTime <DateTime?>]:
  [Id <String>]: Read-only.
  [Capability <String>]:
  [ProviderId <String>]:
  [ProviderName <String>]:
  [ProviderResourceId <String>]:
  [Uri <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: endpoint-id of endpoint
    ${EndpointId},

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

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.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='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${Capability},

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

    [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]
    # .
    ${ProviderId},

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${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 = @{
            Update = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalEndpoint_Update';
            UpdateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalEndpoint_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalEndpoint_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalEndpoint_UpdateViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Update the navigation property licenseDetails in servicePrincipals
.Description
Update the navigation property licenseDetails in servicePrincipals
.Example
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
  [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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: licenseDetails-id of licenseDetails
    ${LicenseDetailsId},

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

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLicenseDetails]
    # 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.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>: .
  [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: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.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')]
    [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
  [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>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Key <String>]:
        [Value <String>]:
      [Multivalued <Boolean?>]:
      [Mutability <String>]: mutability
      [Name <String>]:
      [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
        [ReferencedObjectName <String>]:
        [ReferencedProperty <String>]:
      [Required <Boolean?>]:
      [Type <String>]: attributeType
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Name <String>]:
    [SupportedApis <String[]>]:
  [ReadOnly <Boolean?>]:
  [Version <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-id of tokenLifetimePolicy
 
OBJECTS <IMicrosoftGraphObjectDefinition[]>: .
  [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
    [Anchor <Boolean?>]:
    [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Key <String>]:
      [Value <String>]:
    [CaseExact <Boolean?>]:
    [DefaultValue <String>]:
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Multivalued <Boolean?>]:
    [Mutability <String>]: mutability
    [Name <String>]:
    [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
      [ReferencedObjectName <String>]:
      [ReferencedProperty <String>]:
    [Required <Boolean?>]:
    [Type <String>]: attributeType
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
  [Name <String>]:
  [SupportedApis <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalsynchronizationjobschemadirectory
#>

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

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

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

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition]
    # 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.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
  [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>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
          [Key <String>]:
          [Value <String>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [ProvisioningTaskIdentifier <String>]:
  [SynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [Version <String>]:
 
DIRECTORIES <IMicrosoftGraphDirectoryDefinition[]>: .
  [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>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Key <String>]:
        [Value <String>]:
      [Multivalued <Boolean?>]:
      [Mutability <String>]: mutability
      [Name <String>]:
      [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
        [ReferencedObjectName <String>]:
        [ReferencedProperty <String>]:
      [Required <Boolean?>]:
      [Type <String>]: attributeType
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Name <String>]:
    [SupportedApis <String[]>]:
  [ReadOnly <Boolean?>]:
  [Version <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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?>]:
      [SourceExpression <String>]:
      [SourceName <String>]:
      [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [Key <String>]:
        [ValueExpression <String>]:
        [ValueName <String>]:
        [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [ValueType <String>]: attributeMappingSourceType
      [SourceType <String>]: attributeMappingSourceType
      [TargetAttributeName <String>]:
    [Enabled <Boolean?>]:
    [FlowTypes <String>]: objectFlowTypes
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Name <String>]:
    [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [Clauses <IMicrosoftGraphFilterClause[]>]:
        [OperatorName <String>]:
        [SourceOperandName <String>]:
        [TargetOperandValues <String[]>]:
      [Name <String>]:
    [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
    [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
    [SourceObjectName <String>]:
    [TargetObjectName <String>]:
  [Priority <Int32?>]:
  [SourceDirectoryName <String>]:
  [TargetDirectoryName <String>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalsynchronizationjobschema
#>

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

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

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationSchema]
    # 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')]
    [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')]
    [System.String]
    # .
    ${ProvisioningTaskIdentifier},

    [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
  [Id <String>]: Read-only.
  [ScheduleExpiration <DateTime?>]:
  [ScheduleInterval <TimeSpan?>]:
  [ScheduleState <String>]: synchronizationScheduleState
  [SchemaDirectories <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>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
          [Key <String>]:
          [Value <String>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [SchemaId <String>]: Read-only.
  [SchemaProvisioningTaskIdentifier <String>]:
  [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [SchemaVersion <String>]:
  [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
    [Code <String>]: synchronizationStatusCode
    [CountSuccessiveCompleteFailures <Int64?>]:
    [EscrowsPruned <Boolean?>]:
    [LastExecutionActivityIdentifier <String>]:
    [LastExecutionCountEntitled <Int64?>]:
    [LastExecutionCountEntitledForProvisioning <Int64?>]:
    [LastExecutionCountEscrowed <Int64?>]:
    [LastExecutionCountEscrowedRaw <Int64?>]:
    [LastExecutionCountExported <Int64?>]:
    [LastExecutionCountExports <Int64?>]:
    [LastExecutionCountImported <Int64?>]:
    [LastExecutionCountImportedDeltas <Int64?>]:
    [LastExecutionCountImportedReferenceDeltas <Int64?>]:
    [LastExecutionErrorCode <String>]:
    [LastExecutionErrorMessage <String>]:
    [LastExecutionErrorTenantActionable <Boolean?>]:
    [LastExecutionState <String>]: synchronizationTaskExecutionResult
    [LastExecutionTimeBegan <DateTime?>]:
    [LastExecutionTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionActivityIdentifier <String>]:
    [LastSuccessfulExecutionCountEntitled <Int64?>]:
    [LastSuccessfulExecutionCountEntitledForProvisioning <Int64?>]:
    [LastSuccessfulExecutionCountEscrowed <Int64?>]:
    [LastSuccessfulExecutionCountEscrowedRaw <Int64?>]:
    [LastSuccessfulExecutionCountExported <Int64?>]:
    [LastSuccessfulExecutionCountExports <Int64?>]:
    [LastSuccessfulExecutionCountImported <Int64?>]:
    [LastSuccessfulExecutionCountImportedDeltas <Int64?>]:
    [LastSuccessfulExecutionCountImportedReferenceDeltas <Int64?>]:
    [LastSuccessfulExecutionErrorCode <String>]:
    [LastSuccessfulExecutionErrorMessage <String>]:
    [LastSuccessfulExecutionErrorTenantActionable <Boolean?>]:
    [LastSuccessfulExecutionState <String>]: synchronizationTaskExecutionResult
    [LastSuccessfulExecutionTimeBegan <DateTime?>]:
    [LastSuccessfulExecutionTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionWithExportActivityIdentifier <String>]:
    [LastSuccessfulExecutionWithExportCountEntitled <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEntitledForProvisioning <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEscrowed <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEscrowedRaw <Int64?>]:
    [LastSuccessfulExecutionWithExportCountExported <Int64?>]:
    [LastSuccessfulExecutionWithExportCountExports <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImported <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImportedDeltas <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImportedReferenceDeltas <Int64?>]:
    [LastSuccessfulExecutionWithExportState <String>]: synchronizationTaskExecutionResult
    [LastSuccessfulExecutionWithExportTimeBegan <DateTime?>]:
    [LastSuccessfulExecutionWithExportTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionWithExportsErrorCode <String>]:
    [LastSuccessfulExecutionWithExportsErrorMessage <String>]:
    [LastSuccessfulExecutionWithExportsErrorTenantActionable <Boolean?>]:
    [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
      [CompletedUnits <Int64?>]:
      [ProgressObservationDateTime <DateTime?>]:
      [TotalUnits <Int64?>]:
      [Units <String>]:
    [QuarantineCurrentBegan <DateTime?>]:
    [QuarantineErrorCode <String>]:
    [QuarantineErrorMessage <String>]:
    [QuarantineErrorTenantActionable <Boolean?>]:
    [QuarantineNextAttempt <DateTime?>]:
    [QuarantineReason <String>]: quarantineReason
    [QuarantineSeriesBegan <DateTime?>]:
    [QuarantineSeriesCount <Int64?>]:
    [SteadyStateFirstAchievedTime <DateTime?>]:
    [SteadyStateLastAchievedTime <DateTime?>]:
    [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
      [Key <String>]:
      [Value <Int64?>]:
    [TroubleshootingUrl <String>]:
  [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
    [Name <String>]: Name for this key-value pair
    [Value <String>]: Value for this key-value pair
  [TemplateId <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-id of tokenLifetimePolicy
 
SCHEMADIRECTORIES <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>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Key <String>]:
        [Value <String>]:
      [Multivalued <Boolean?>]:
      [Mutability <String>]: mutability
      [Name <String>]:
      [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
        [ReferencedObjectName <String>]:
        [ReferencedProperty <String>]:
      [Required <Boolean?>]:
      [Type <String>]: attributeType
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Name <String>]:
    [SupportedApis <String[]>]:
  [ReadOnly <Boolean?>]:
  [Version <String>]:
 
SCHEMASYNCHRONIZATIONRULES <IMicrosoftGraphSynchronizationRule[]>: .
  [Editable <Boolean?>]:
  [Id <String>]:
  [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Key <String>]:
    [Value <String>]:
  [Name <String>]:
  [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
    [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
      [DefaultValue <String>]:
      [ExportMissingReferences <Boolean?>]:
      [FlowBehavior <String>]: attributeFlowBehavior
      [FlowType <String>]: attributeFlowType
      [MatchingPriority <Int32?>]:
      [SourceExpression <String>]:
      [SourceName <String>]:
      [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [Key <String>]:
        [ValueExpression <String>]:
        [ValueName <String>]:
        [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [ValueType <String>]: attributeMappingSourceType
      [SourceType <String>]: attributeMappingSourceType
      [TargetAttributeName <String>]:
    [Enabled <Boolean?>]:
    [FlowTypes <String>]: objectFlowTypes
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Name <String>]:
    [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [Clauses <IMicrosoftGraphFilterClause[]>]:
        [OperatorName <String>]:
        [SourceOperandName <String>]:
        [TargetOperandValues <String[]>]:
      [Name <String>]:
    [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
    [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
    [SourceObjectName <String>]:
    [TargetObjectName <String>]:
  [Priority <Int32?>]:
  [SourceDirectoryName <String>]:
  [TargetDirectoryName <String>]:
 
STATUS <IMicrosoftGraphSynchronizationStatus>: synchronizationStatus
  [Code <String>]: synchronizationStatusCode
  [CountSuccessiveCompleteFailures <Int64?>]:
  [EscrowsPruned <Boolean?>]:
  [LastExecutionActivityIdentifier <String>]:
  [LastExecutionCountEntitled <Int64?>]:
  [LastExecutionCountEntitledForProvisioning <Int64?>]:
  [LastExecutionCountEscrowed <Int64?>]:
  [LastExecutionCountEscrowedRaw <Int64?>]:
  [LastExecutionCountExported <Int64?>]:
  [LastExecutionCountExports <Int64?>]:
  [LastExecutionCountImported <Int64?>]:
  [LastExecutionCountImportedDeltas <Int64?>]:
  [LastExecutionCountImportedReferenceDeltas <Int64?>]:
  [LastExecutionErrorCode <String>]:
  [LastExecutionErrorMessage <String>]:
  [LastExecutionErrorTenantActionable <Boolean?>]:
  [LastExecutionState <String>]: synchronizationTaskExecutionResult
  [LastExecutionTimeBegan <DateTime?>]:
  [LastExecutionTimeEnded <DateTime?>]:
  [LastSuccessfulExecutionActivityIdentifier <String>]:
  [LastSuccessfulExecutionCountEntitled <Int64?>]:
  [LastSuccessfulExecutionCountEntitledForProvisioning <Int64?>]:
  [LastSuccessfulExecutionCountEscrowed <Int64?>]:
  [LastSuccessfulExecutionCountEscrowedRaw <Int64?>]:
  [LastSuccessfulExecutionCountExported <Int64?>]:
  [LastSuccessfulExecutionCountExports <Int64?>]:
  [LastSuccessfulExecutionCountImported <Int64?>]:
  [LastSuccessfulExecutionCountImportedDeltas <Int64?>]:
  [LastSuccessfulExecutionCountImportedReferenceDeltas <Int64?>]:
  [LastSuccessfulExecutionErrorCode <String>]:
  [LastSuccessfulExecutionErrorMessage <String>]:
  [LastSuccessfulExecutionErrorTenantActionable <Boolean?>]:
  [LastSuccessfulExecutionState <String>]: synchronizationTaskExecutionResult
  [LastSuccessfulExecutionTimeBegan <DateTime?>]:
  [LastSuccessfulExecutionTimeEnded <DateTime?>]:
  [LastSuccessfulExecutionWithExportActivityIdentifier <String>]:
  [LastSuccessfulExecutionWithExportCountEntitled <Int64?>]:
  [LastSuccessfulExecutionWithExportCountEntitledForProvisioning <Int64?>]:
  [LastSuccessfulExecutionWithExportCountEscrowed <Int64?>]:
  [LastSuccessfulExecutionWithExportCountEscrowedRaw <Int64?>]:
  [LastSuccessfulExecutionWithExportCountExported <Int64?>]:
  [LastSuccessfulExecutionWithExportCountExports <Int64?>]:
  [LastSuccessfulExecutionWithExportCountImported <Int64?>]:
  [LastSuccessfulExecutionWithExportCountImportedDeltas <Int64?>]:
  [LastSuccessfulExecutionWithExportCountImportedReferenceDeltas <Int64?>]:
  [LastSuccessfulExecutionWithExportState <String>]: synchronizationTaskExecutionResult
  [LastSuccessfulExecutionWithExportTimeBegan <DateTime?>]:
  [LastSuccessfulExecutionWithExportTimeEnded <DateTime?>]:
  [LastSuccessfulExecutionWithExportsErrorCode <String>]:
  [LastSuccessfulExecutionWithExportsErrorMessage <String>]:
  [LastSuccessfulExecutionWithExportsErrorTenantActionable <Boolean?>]:
  [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
    [CompletedUnits <Int64?>]:
    [ProgressObservationDateTime <DateTime?>]:
    [TotalUnits <Int64?>]:
    [Units <String>]:
  [QuarantineCurrentBegan <DateTime?>]:
  [QuarantineErrorCode <String>]:
  [QuarantineErrorMessage <String>]:
  [QuarantineErrorTenantActionable <Boolean?>]:
  [QuarantineNextAttempt <DateTime?>]:
  [QuarantineReason <String>]: quarantineReason
  [QuarantineSeriesBegan <DateTime?>]:
  [QuarantineSeriesCount <Int64?>]:
  [SteadyStateFirstAchievedTime <DateTime?>]:
  [SteadyStateLastAchievedTime <DateTime?>]:
  [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
    [Key <String>]:
    [Value <Int64?>]:
  [TroubleshootingUrl <String>]:
 
SYNCHRONIZATIONJOBSETTINGS <IMicrosoftGraphKeyValuePair[]>: .
  [Name <String>]: 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')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationJob]
    # 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.String]
    # Read-only.
    ${Id},

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

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

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

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

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

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

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphKeyValuePair[]]
    # .
    # 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
  [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>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Key <String>]:
        [Value <String>]:
      [Multivalued <Boolean?>]:
      [Mutability <String>]: mutability
      [Name <String>]:
      [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
        [ReferencedObjectName <String>]:
        [ReferencedProperty <String>]:
      [Required <Boolean?>]:
      [Type <String>]: attributeType
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Name <String>]:
    [SupportedApis <String[]>]:
  [ReadOnly <Boolean?>]:
  [Version <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-id of tokenLifetimePolicy
 
OBJECTS <IMicrosoftGraphObjectDefinition[]>: .
  [Attributes <IMicrosoftGraphAttributeDefinition[]>]:
    [Anchor <Boolean?>]:
    [ApiExpressions <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Key <String>]:
      [Value <String>]:
    [CaseExact <Boolean?>]:
    [DefaultValue <String>]:
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Multivalued <Boolean?>]:
    [Mutability <String>]: mutability
    [Name <String>]:
    [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
      [ReferencedObjectName <String>]:
      [ReferencedProperty <String>]:
    [Required <Boolean?>]:
    [Type <String>]: attributeType
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
  [Name <String>]:
  [SupportedApis <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalsynchronizationtemplateschemadirectory
#>

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

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

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

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphDirectoryDefinition]
    # 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.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
  [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>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
          [Key <String>]:
          [Value <String>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [ProvisioningTaskIdentifier <String>]:
  [SynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [Version <String>]:
 
DIRECTORIES <IMicrosoftGraphDirectoryDefinition[]>: .
  [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>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Key <String>]:
        [Value <String>]:
      [Multivalued <Boolean?>]:
      [Mutability <String>]: mutability
      [Name <String>]:
      [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
        [ReferencedObjectName <String>]:
        [ReferencedProperty <String>]:
      [Required <Boolean?>]:
      [Type <String>]: attributeType
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Name <String>]:
    [SupportedApis <String[]>]:
  [ReadOnly <Boolean?>]:
  [Version <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-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?>]:
      [SourceExpression <String>]:
      [SourceName <String>]:
      [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [Key <String>]:
        [ValueExpression <String>]:
        [ValueName <String>]:
        [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [ValueType <String>]: attributeMappingSourceType
      [SourceType <String>]: attributeMappingSourceType
      [TargetAttributeName <String>]:
    [Enabled <Boolean?>]:
    [FlowTypes <String>]: objectFlowTypes
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Name <String>]:
    [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [Clauses <IMicrosoftGraphFilterClause[]>]:
        [OperatorName <String>]:
        [SourceOperandName <String>]:
        [TargetOperandValues <String[]>]:
      [Name <String>]:
    [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
    [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
    [SourceObjectName <String>]:
    [TargetObjectName <String>]:
  [Priority <Int32?>]:
  [SourceDirectoryName <String>]:
  [TargetDirectoryName <String>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalsynchronizationtemplateschema
#>

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

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

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationSchema]
    # 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')]
    [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')]
    [System.String]
    # .
    ${ProvisioningTaskIdentifier},

    [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
  [Id <String>]: Read-only.
  [ApplicationId <String>]:
  [Default <Boolean?>]:
  [Description <String>]:
  [Discoverable <Boolean?>]:
  [FactoryTag <String>]:
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Key <String>]:
    [Value <String>]:
  [SchemaDirectories <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>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [SchemaId <String>]: Read-only.
  [SchemaProvisioningTaskIdentifier <String>]:
  [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [SchemaVersion <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-id of tokenLifetimePolicy
 
METADATA <IMicrosoftGraphMetadataEntry[]>: .
  [Key <String>]:
  [Value <String>]:
 
SCHEMADIRECTORIES <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>]:
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Key <String>]:
        [Value <String>]:
      [Multivalued <Boolean?>]:
      [Mutability <String>]: mutability
      [Name <String>]:
      [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
        [ReferencedObjectName <String>]:
        [ReferencedProperty <String>]:
      [Required <Boolean?>]:
      [Type <String>]: attributeType
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Name <String>]:
    [SupportedApis <String[]>]:
  [ReadOnly <Boolean?>]:
  [Version <String>]:
 
SCHEMASYNCHRONIZATIONRULES <IMicrosoftGraphSynchronizationRule[]>: .
  [Editable <Boolean?>]:
  [Id <String>]:
  [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Key <String>]:
    [Value <String>]:
  [Name <String>]:
  [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
    [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
      [DefaultValue <String>]:
      [ExportMissingReferences <Boolean?>]:
      [FlowBehavior <String>]: attributeFlowBehavior
      [FlowType <String>]: attributeFlowType
      [MatchingPriority <Int32?>]:
      [SourceExpression <String>]:
      [SourceName <String>]:
      [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [Key <String>]:
        [ValueExpression <String>]:
        [ValueName <String>]:
        [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
        [ValueType <String>]: attributeMappingSourceType
      [SourceType <String>]: attributeMappingSourceType
      [TargetAttributeName <String>]:
    [Enabled <Boolean?>]:
    [FlowTypes <String>]: objectFlowTypes
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Key <String>]:
      [Value <String>]:
    [Name <String>]:
    [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [Clauses <IMicrosoftGraphFilterClause[]>]:
        [OperatorName <String>]:
        [SourceOperandName <String>]:
        [TargetOperandValues <String[]>]:
      [Name <String>]:
    [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
    [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
    [SourceObjectName <String>]:
    [TargetObjectName <String>]:
  [Priority <Int32?>]:
  [SourceDirectoryName <String>]:
  [TargetDirectoryName <String>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalsynchronizationtemplate
#>

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

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

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronizationTemplate]
    # 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.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.IMicrosoftGraphDirectoryDefinition[]]
    # .
    # To construct, see NOTES section for SCHEMADIRECTORIES properties and create a hash table.
    ${SchemaDirectories},

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Update = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationTemplate_Update';
            UpdateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationTemplate_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationTemplate_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipalSynchronizationTemplate_UpdateViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Update the navigation property synchronization in servicePrincipals
.Description
Update the navigation property synchronization in servicePrincipals
.Example
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
  [Id <String>]: Read-only.
  [Jobs <IMicrosoftGraphSynchronizationJob[]>]:
    [Id <String>]: Read-only.
    [ScheduleExpiration <DateTime?>]:
    [ScheduleInterval <TimeSpan?>]:
    [ScheduleState <String>]: synchronizationScheduleState
    [SchemaDirectories <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>]:
          [Metadata <IMicrosoftGraphMetadataEntry[]>]:
            [Key <String>]:
            [Value <String>]:
          [Multivalued <Boolean?>]:
          [Mutability <String>]: mutability
          [Name <String>]:
          [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
            [ReferencedObjectName <String>]:
            [ReferencedProperty <String>]:
          [Required <Boolean?>]:
          [Type <String>]: attributeType
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Name <String>]:
        [SupportedApis <String[]>]:
      [ReadOnly <Boolean?>]:
      [Version <String>]:
    [SchemaId <String>]: Read-only.
    [SchemaProvisioningTaskIdentifier <String>]:
    [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
      [Editable <Boolean?>]:
      [Id <String>]:
      [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Name <String>]:
      [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
        [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
          [DefaultValue <String>]:
          [ExportMissingReferences <Boolean?>]:
          [FlowBehavior <String>]: attributeFlowBehavior
          [FlowType <String>]: attributeFlowType
          [MatchingPriority <Int32?>]:
          [SourceExpression <String>]:
          [SourceName <String>]:
          [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
            [Key <String>]:
            [ValueExpression <String>]:
            [ValueName <String>]:
            [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
            [ValueType <String>]: attributeMappingSourceType
          [SourceType <String>]: attributeMappingSourceType
          [TargetAttributeName <String>]:
        [Enabled <Boolean?>]:
        [FlowTypes <String>]: objectFlowTypes
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Name <String>]:
        [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
          [Clauses <IMicrosoftGraphFilterClause[]>]:
            [OperatorName <String>]:
            [SourceOperandName <String>]:
            [TargetOperandValues <String[]>]:
          [Name <String>]:
        [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
        [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [SourceObjectName <String>]:
        [TargetObjectName <String>]:
      [Priority <Int32?>]:
      [SourceDirectoryName <String>]:
      [TargetDirectoryName <String>]:
    [SchemaVersion <String>]:
    [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
      [Code <String>]: synchronizationStatusCode
      [CountSuccessiveCompleteFailures <Int64?>]:
      [EscrowsPruned <Boolean?>]:
      [LastExecutionActivityIdentifier <String>]:
      [LastExecutionCountEntitled <Int64?>]:
      [LastExecutionCountEntitledForProvisioning <Int64?>]:
      [LastExecutionCountEscrowed <Int64?>]:
      [LastExecutionCountEscrowedRaw <Int64?>]:
      [LastExecutionCountExported <Int64?>]:
      [LastExecutionCountExports <Int64?>]:
      [LastExecutionCountImported <Int64?>]:
      [LastExecutionCountImportedDeltas <Int64?>]:
      [LastExecutionCountImportedReferenceDeltas <Int64?>]:
      [LastExecutionErrorCode <String>]:
      [LastExecutionErrorMessage <String>]:
      [LastExecutionErrorTenantActionable <Boolean?>]:
      [LastExecutionState <String>]: synchronizationTaskExecutionResult
      [LastExecutionTimeBegan <DateTime?>]:
      [LastExecutionTimeEnded <DateTime?>]:
      [LastSuccessfulExecutionActivityIdentifier <String>]:
      [LastSuccessfulExecutionCountEntitled <Int64?>]:
      [LastSuccessfulExecutionCountEntitledForProvisioning <Int64?>]:
      [LastSuccessfulExecutionCountEscrowed <Int64?>]:
      [LastSuccessfulExecutionCountEscrowedRaw <Int64?>]:
      [LastSuccessfulExecutionCountExported <Int64?>]:
      [LastSuccessfulExecutionCountExports <Int64?>]:
      [LastSuccessfulExecutionCountImported <Int64?>]:
      [LastSuccessfulExecutionCountImportedDeltas <Int64?>]:
      [LastSuccessfulExecutionCountImportedReferenceDeltas <Int64?>]:
      [LastSuccessfulExecutionErrorCode <String>]:
      [LastSuccessfulExecutionErrorMessage <String>]:
      [LastSuccessfulExecutionErrorTenantActionable <Boolean?>]:
      [LastSuccessfulExecutionState <String>]: synchronizationTaskExecutionResult
      [LastSuccessfulExecutionTimeBegan <DateTime?>]:
      [LastSuccessfulExecutionTimeEnded <DateTime?>]:
      [LastSuccessfulExecutionWithExportActivityIdentifier <String>]:
      [LastSuccessfulExecutionWithExportCountEntitled <Int64?>]:
      [LastSuccessfulExecutionWithExportCountEntitledForProvisioning <Int64?>]:
      [LastSuccessfulExecutionWithExportCountEscrowed <Int64?>]:
      [LastSuccessfulExecutionWithExportCountEscrowedRaw <Int64?>]:
      [LastSuccessfulExecutionWithExportCountExported <Int64?>]:
      [LastSuccessfulExecutionWithExportCountExports <Int64?>]:
      [LastSuccessfulExecutionWithExportCountImported <Int64?>]:
      [LastSuccessfulExecutionWithExportCountImportedDeltas <Int64?>]:
      [LastSuccessfulExecutionWithExportCountImportedReferenceDeltas <Int64?>]:
      [LastSuccessfulExecutionWithExportState <String>]: synchronizationTaskExecutionResult
      [LastSuccessfulExecutionWithExportTimeBegan <DateTime?>]:
      [LastSuccessfulExecutionWithExportTimeEnded <DateTime?>]:
      [LastSuccessfulExecutionWithExportsErrorCode <String>]:
      [LastSuccessfulExecutionWithExportsErrorMessage <String>]:
      [LastSuccessfulExecutionWithExportsErrorTenantActionable <Boolean?>]:
      [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
        [CompletedUnits <Int64?>]:
        [ProgressObservationDateTime <DateTime?>]:
        [TotalUnits <Int64?>]:
        [Units <String>]:
      [QuarantineCurrentBegan <DateTime?>]:
      [QuarantineErrorCode <String>]:
      [QuarantineErrorMessage <String>]:
      [QuarantineErrorTenantActionable <Boolean?>]:
      [QuarantineNextAttempt <DateTime?>]:
      [QuarantineReason <String>]: quarantineReason
      [QuarantineSeriesBegan <DateTime?>]:
      [QuarantineSeriesCount <Int64?>]:
      [SteadyStateFirstAchievedTime <DateTime?>]:
      [SteadyStateLastAchievedTime <DateTime?>]:
      [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
        [Key <String>]:
        [Value <Int64?>]:
      [TroubleshootingUrl <String>]:
    [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
      [Name <String>]: 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[]>]:
    [SchemaDirectories <IMicrosoftGraphDirectoryDefinition[]>]:
    [SchemaId <String>]: Read-only.
    [SchemaProvisioningTaskIdentifier <String>]:
    [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [SchemaVersion <String>]:
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-id of tokenLifetimePolicy
 
JOBS <IMicrosoftGraphSynchronizationJob[]>: .
  [Id <String>]: Read-only.
  [ScheduleExpiration <DateTime?>]:
  [ScheduleInterval <TimeSpan?>]:
  [ScheduleState <String>]: synchronizationScheduleState
  [SchemaDirectories <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>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
          [Key <String>]:
          [Value <String>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [SchemaId <String>]: Read-only.
  [SchemaProvisioningTaskIdentifier <String>]:
  [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [SchemaVersion <String>]:
  [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
    [Code <String>]: synchronizationStatusCode
    [CountSuccessiveCompleteFailures <Int64?>]:
    [EscrowsPruned <Boolean?>]:
    [LastExecutionActivityIdentifier <String>]:
    [LastExecutionCountEntitled <Int64?>]:
    [LastExecutionCountEntitledForProvisioning <Int64?>]:
    [LastExecutionCountEscrowed <Int64?>]:
    [LastExecutionCountEscrowedRaw <Int64?>]:
    [LastExecutionCountExported <Int64?>]:
    [LastExecutionCountExports <Int64?>]:
    [LastExecutionCountImported <Int64?>]:
    [LastExecutionCountImportedDeltas <Int64?>]:
    [LastExecutionCountImportedReferenceDeltas <Int64?>]:
    [LastExecutionErrorCode <String>]:
    [LastExecutionErrorMessage <String>]:
    [LastExecutionErrorTenantActionable <Boolean?>]:
    [LastExecutionState <String>]: synchronizationTaskExecutionResult
    [LastExecutionTimeBegan <DateTime?>]:
    [LastExecutionTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionActivityIdentifier <String>]:
    [LastSuccessfulExecutionCountEntitled <Int64?>]:
    [LastSuccessfulExecutionCountEntitledForProvisioning <Int64?>]:
    [LastSuccessfulExecutionCountEscrowed <Int64?>]:
    [LastSuccessfulExecutionCountEscrowedRaw <Int64?>]:
    [LastSuccessfulExecutionCountExported <Int64?>]:
    [LastSuccessfulExecutionCountExports <Int64?>]:
    [LastSuccessfulExecutionCountImported <Int64?>]:
    [LastSuccessfulExecutionCountImportedDeltas <Int64?>]:
    [LastSuccessfulExecutionCountImportedReferenceDeltas <Int64?>]:
    [LastSuccessfulExecutionErrorCode <String>]:
    [LastSuccessfulExecutionErrorMessage <String>]:
    [LastSuccessfulExecutionErrorTenantActionable <Boolean?>]:
    [LastSuccessfulExecutionState <String>]: synchronizationTaskExecutionResult
    [LastSuccessfulExecutionTimeBegan <DateTime?>]:
    [LastSuccessfulExecutionTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionWithExportActivityIdentifier <String>]:
    [LastSuccessfulExecutionWithExportCountEntitled <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEntitledForProvisioning <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEscrowed <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEscrowedRaw <Int64?>]:
    [LastSuccessfulExecutionWithExportCountExported <Int64?>]:
    [LastSuccessfulExecutionWithExportCountExports <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImported <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImportedDeltas <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImportedReferenceDeltas <Int64?>]:
    [LastSuccessfulExecutionWithExportState <String>]: synchronizationTaskExecutionResult
    [LastSuccessfulExecutionWithExportTimeBegan <DateTime?>]:
    [LastSuccessfulExecutionWithExportTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionWithExportsErrorCode <String>]:
    [LastSuccessfulExecutionWithExportsErrorMessage <String>]:
    [LastSuccessfulExecutionWithExportsErrorTenantActionable <Boolean?>]:
    [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
      [CompletedUnits <Int64?>]:
      [ProgressObservationDateTime <DateTime?>]:
      [TotalUnits <Int64?>]:
      [Units <String>]:
    [QuarantineCurrentBegan <DateTime?>]:
    [QuarantineErrorCode <String>]:
    [QuarantineErrorMessage <String>]:
    [QuarantineErrorTenantActionable <Boolean?>]:
    [QuarantineNextAttempt <DateTime?>]:
    [QuarantineReason <String>]: quarantineReason
    [QuarantineSeriesBegan <DateTime?>]:
    [QuarantineSeriesCount <Int64?>]:
    [SteadyStateFirstAchievedTime <DateTime?>]:
    [SteadyStateLastAchievedTime <DateTime?>]:
    [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
      [Key <String>]:
      [Value <Int64?>]:
    [TroubleshootingUrl <String>]:
  [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
    [Name <String>]: 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>]:
  [SchemaDirectories <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>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [SchemaId <String>]: Read-only.
  [SchemaProvisioningTaskIdentifier <String>]:
  [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [SchemaVersion <String>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.identity.serviceprincipal/update-mgserviceprincipalsynchronization
#>

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

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSynchronization]
    # 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.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.IMicrosoftGraphServicePrincipal
.Outputs
System.Boolean
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
ADDINS <IMicrosoftGraphAddIn[]>: .
  [Id <String>]:
  [Properties <IMicrosoftGraphKeyValue[]>]:
    [Key <String>]: Key for the key-value pair.
    [Value <String>]: Value for the key-value pair.
  [Type <String>]:
 
APPROLEASSIGNEDTO <IMicrosoftGraphAppRoleAssignment[]>: .
  [Id <String>]: Read-only.
  [AppRoleId <String>]:
  [CreationTimestamp <DateTime?>]:
  [PrincipalDisplayName <String>]:
  [PrincipalId <String>]:
  [PrincipalType <String>]:
  [ResourceDisplayName <String>]:
  [ResourceId <String>]:
 
APPROLEASSIGNMENTS <IMicrosoftGraphAppRoleAssignment[]>: .
  [Id <String>]: Read-only.
  [AppRoleId <String>]:
  [CreationTimestamp <DateTime?>]:
  [PrincipalDisplayName <String>]:
  [PrincipalId <String>]:
  [PrincipalType <String>]:
  [ResourceDisplayName <String>]:
  [ResourceId <String>]:
 
APPROLES <IMicrosoftGraphAppRole[]>: .
  [AllowedMemberTypes <String[]>]: Specifies whether this app role definition can be assigned to users and groups by setting to 'User', or to other applications (that are accessing this application in daemon service scenarios) by setting to 'Application', or to both.
  [Description <String>]: Permission help text that appears in the admin app assignment and consent experiences.
  [DisplayName <String>]: Display name for the permission that appears in the admin consent and app assignment 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>]: Read-only. Specifies if the app role is defined on the Application object . Must not be included in any POST or PATCH requests.
  [Value <String>]: Specifies the value which will be included in the roles claim in authentication and 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.
 
BODYPARAMETER <IMicrosoftGraphServicePrincipal>: Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.
  [DeletedDateTime <DateTime?>]:
  [Id <String>]: Read-only.
  [AccountEnabled <Boolean?>]:
  [AddIns <IMicrosoftGraphAddIn[]>]:
    [Id <String>]:
    [Properties <IMicrosoftGraphKeyValue[]>]:
      [Key <String>]: Key for the key-value pair.
      [Value <String>]: Value for the key-value pair.
    [Type <String>]:
  [AlternativeNames <String[]>]:
  [AppDisplayName <String>]:
  [AppId <String>]:
  [AppOwnerOrganizationId <String>]:
  [AppRoleAssignedTo <IMicrosoftGraphAppRoleAssignment[]>]:
    [Id <String>]: Read-only.
    [AppRoleId <String>]:
    [CreationTimestamp <DateTime?>]:
    [PrincipalDisplayName <String>]:
    [PrincipalId <String>]:
    [PrincipalType <String>]:
    [ResourceDisplayName <String>]:
    [ResourceId <String>]:
  [AppRoleAssignmentRequired <Boolean?>]:
  [AppRoleAssignments <IMicrosoftGraphAppRoleAssignment[]>]:
  [AppRoles <IMicrosoftGraphAppRole[]>]:
    [AllowedMemberTypes <String[]>]: Specifies whether this app role definition can be assigned to users and groups by setting to 'User', or to other applications (that are accessing this application in daemon service scenarios) by setting to 'Application', or to both.
    [Description <String>]: Permission help text that appears in the admin app assignment and consent experiences.
    [DisplayName <String>]: Display name for the permission that appears in the admin consent and app assignment 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>]: Read-only. Specifies if the app role is defined on the Application object . Must not be included in any POST or PATCH requests.
    [Value <String>]: Specifies the value which will be included in the roles claim in authentication and 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.
  [ApplicationTemplateId <String>]:
  [ClaimsMappingPolicies <IMicrosoftGraphClaimsMappingPolicy[]>]:
    [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.
    [Id <String>]: Read-only.
  [CreatedObjects <IMicrosoftGraphDirectoryObject[]>]:
  [DisplayName <String>]:
  [Endpoints <IMicrosoftGraphEndpoint[]>]:
    [DeletedDateTime <DateTime?>]:
    [Id <String>]: Read-only.
    [Capability <String>]:
    [ProviderId <String>]:
    [ProviderName <String>]:
    [ProviderResourceId <String>]:
    [Uri <String>]:
  [ErrorUrl <String>]:
  [HomeRealmDiscoveryPolicies <IMicrosoftGraphHomeRealmDiscoveryPolicy[]>]:
    [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.
    [Id <String>]: Read-only.
  [Homepage <String>]:
  [InfoLogoUrl <String>]: CDN URL to the application's logo, Read-only.
  [InfoMarketingUrl <String>]: Link to the application's marketing page. For example, https://www.contoso.com/app/marketing
  [InfoPrivacyStatementUrl <String>]: Link to the application's privacy statement. For example, https://www.contoso.com/app/privacy
  [InfoSupportUrl <String>]: Link to the application's support page. For example, https://www.contoso.com/app/support
  [InfoTermsOfServiceUrl <String>]: Link to the application's terms of service statement. For example, https://www.contoso.com/app/termsofservice
  [KeyCredentials <IMicrosoftGraphKeyCredential[]>]:
    [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>]:
  [LogoutUrl <String>]:
  [MemberOf <IMicrosoftGraphDirectoryObject[]>]:
  [NotificationEmailAddresses <String[]>]:
  [Oauth2PermissionGrants <IMicrosoftGraphOAuth2PermissionGrant[]>]:
    [Id <String>]: Read-only.
    [ClientId <String>]:
    [ConsentType <String>]:
    [ExpiryTime <DateTime?>]:
    [PrincipalId <String>]:
    [ResourceId <String>]:
    [Scope <String>]:
    [StartTime <DateTime?>]:
  [OwnedObjects <IMicrosoftGraphDirectoryObject[]>]:
  [Owners <IMicrosoftGraphDirectoryObject[]>]:
  [PasswordCredentials <IMicrosoftGraphPasswordCredential[]>]:
    [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>]:
  [PreferredTokenSigningKeyEndDateTime <DateTime?>]:
  [PreferredTokenSigningKeyThumbprint <String>]:
  [PublishedPermissionScopes <IMicrosoftGraphPermissionScope[]>]:
    [AdminConsentDescription <String>]: Permission help text that appears in the admin consent and app assignment experiences.
    [AdminConsentDisplayName <String>]: Display name for the permission that appears in the admin consent and app assignment experiences.
    [Id <String>]: Unique scope permission identifier inside the oauth2Permissions collection.
    [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>]: For internal use.
    [Type <String>]: Specifies whether this scope permission can be consented to by an end user, or whether it is a tenant-wide permission that must be consented to by a company administrator. Possible values are User or Admin.
    [UserConsentDescription <String>]: Permission help text that appears in the end-user consent experience.
    [UserConsentDisplayName <String>]: Display name for the permission that appears in the end-user consent experience.
    [Value <String>]: The value of the scope claim that the resource application should expect in the OAuth 2.0 access token.
  [PublisherName <String>]:
  [ReplyUrls <String[]>]:
  [SamlMetadataUrl <String>]:
  [SamlSingleSignOnSettingRelayState <String>]:
  [ServicePrincipalNames <String[]>]:
  [ServicePrincipalType <String>]:
  [SignInAudience <String>]:
  [SynchronizationId <String>]: Read-only.
  [SynchronizationJobs <IMicrosoftGraphSynchronizationJob[]>]:
    [Id <String>]: Read-only.
    [ScheduleExpiration <DateTime?>]:
    [ScheduleInterval <TimeSpan?>]:
    [ScheduleState <String>]: synchronizationScheduleState
    [SchemaDirectories <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>]:
          [Metadata <IMicrosoftGraphMetadataEntry[]>]:
            [Key <String>]:
            [Value <String>]:
          [Multivalued <Boolean?>]:
          [Mutability <String>]: mutability
          [Name <String>]:
          [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
            [ReferencedObjectName <String>]:
            [ReferencedProperty <String>]:
          [Required <Boolean?>]:
          [Type <String>]: attributeType
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Name <String>]:
        [SupportedApis <String[]>]:
      [ReadOnly <Boolean?>]:
      [Version <String>]:
    [SchemaId <String>]: Read-only.
    [SchemaProvisioningTaskIdentifier <String>]:
    [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
      [Editable <Boolean?>]:
      [Id <String>]:
      [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
      [Name <String>]:
      [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
        [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
          [DefaultValue <String>]:
          [ExportMissingReferences <Boolean?>]:
          [FlowBehavior <String>]: attributeFlowBehavior
          [FlowType <String>]: attributeFlowType
          [MatchingPriority <Int32?>]:
          [SourceExpression <String>]:
          [SourceName <String>]:
          [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
            [Key <String>]:
            [ValueExpression <String>]:
            [ValueName <String>]:
            [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
            [ValueType <String>]: attributeMappingSourceType
          [SourceType <String>]: attributeMappingSourceType
          [TargetAttributeName <String>]:
        [Enabled <Boolean?>]:
        [FlowTypes <String>]: objectFlowTypes
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Name <String>]:
        [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
          [Clauses <IMicrosoftGraphFilterClause[]>]:
            [OperatorName <String>]:
            [SourceOperandName <String>]:
            [TargetOperandValues <String[]>]:
          [Name <String>]:
        [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
        [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [SourceObjectName <String>]:
        [TargetObjectName <String>]:
      [Priority <Int32?>]:
      [SourceDirectoryName <String>]:
      [TargetDirectoryName <String>]:
    [SchemaVersion <String>]:
    [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
      [Code <String>]: synchronizationStatusCode
      [CountSuccessiveCompleteFailures <Int64?>]:
      [EscrowsPruned <Boolean?>]:
      [LastExecutionActivityIdentifier <String>]:
      [LastExecutionCountEntitled <Int64?>]:
      [LastExecutionCountEntitledForProvisioning <Int64?>]:
      [LastExecutionCountEscrowed <Int64?>]:
      [LastExecutionCountEscrowedRaw <Int64?>]:
      [LastExecutionCountExported <Int64?>]:
      [LastExecutionCountExports <Int64?>]:
      [LastExecutionCountImported <Int64?>]:
      [LastExecutionCountImportedDeltas <Int64?>]:
      [LastExecutionCountImportedReferenceDeltas <Int64?>]:
      [LastExecutionErrorCode <String>]:
      [LastExecutionErrorMessage <String>]:
      [LastExecutionErrorTenantActionable <Boolean?>]:
      [LastExecutionState <String>]: synchronizationTaskExecutionResult
      [LastExecutionTimeBegan <DateTime?>]:
      [LastExecutionTimeEnded <DateTime?>]:
      [LastSuccessfulExecutionActivityIdentifier <String>]:
      [LastSuccessfulExecutionCountEntitled <Int64?>]:
      [LastSuccessfulExecutionCountEntitledForProvisioning <Int64?>]:
      [LastSuccessfulExecutionCountEscrowed <Int64?>]:
      [LastSuccessfulExecutionCountEscrowedRaw <Int64?>]:
      [LastSuccessfulExecutionCountExported <Int64?>]:
      [LastSuccessfulExecutionCountExports <Int64?>]:
      [LastSuccessfulExecutionCountImported <Int64?>]:
      [LastSuccessfulExecutionCountImportedDeltas <Int64?>]:
      [LastSuccessfulExecutionCountImportedReferenceDeltas <Int64?>]:
      [LastSuccessfulExecutionErrorCode <String>]:
      [LastSuccessfulExecutionErrorMessage <String>]:
      [LastSuccessfulExecutionErrorTenantActionable <Boolean?>]:
      [LastSuccessfulExecutionState <String>]: synchronizationTaskExecutionResult
      [LastSuccessfulExecutionTimeBegan <DateTime?>]:
      [LastSuccessfulExecutionTimeEnded <DateTime?>]:
      [LastSuccessfulExecutionWithExportActivityIdentifier <String>]:
      [LastSuccessfulExecutionWithExportCountEntitled <Int64?>]:
      [LastSuccessfulExecutionWithExportCountEntitledForProvisioning <Int64?>]:
      [LastSuccessfulExecutionWithExportCountEscrowed <Int64?>]:
      [LastSuccessfulExecutionWithExportCountEscrowedRaw <Int64?>]:
      [LastSuccessfulExecutionWithExportCountExported <Int64?>]:
      [LastSuccessfulExecutionWithExportCountExports <Int64?>]:
      [LastSuccessfulExecutionWithExportCountImported <Int64?>]:
      [LastSuccessfulExecutionWithExportCountImportedDeltas <Int64?>]:
      [LastSuccessfulExecutionWithExportCountImportedReferenceDeltas <Int64?>]:
      [LastSuccessfulExecutionWithExportState <String>]: synchronizationTaskExecutionResult
      [LastSuccessfulExecutionWithExportTimeBegan <DateTime?>]:
      [LastSuccessfulExecutionWithExportTimeEnded <DateTime?>]:
      [LastSuccessfulExecutionWithExportsErrorCode <String>]:
      [LastSuccessfulExecutionWithExportsErrorMessage <String>]:
      [LastSuccessfulExecutionWithExportsErrorTenantActionable <Boolean?>]:
      [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
        [CompletedUnits <Int64?>]:
        [ProgressObservationDateTime <DateTime?>]:
        [TotalUnits <Int64?>]:
        [Units <String>]:
      [QuarantineCurrentBegan <DateTime?>]:
      [QuarantineErrorCode <String>]:
      [QuarantineErrorMessage <String>]:
      [QuarantineErrorTenantActionable <Boolean?>]:
      [QuarantineNextAttempt <DateTime?>]:
      [QuarantineReason <String>]: quarantineReason
      [QuarantineSeriesBegan <DateTime?>]:
      [QuarantineSeriesCount <Int64?>]:
      [SteadyStateFirstAchievedTime <DateTime?>]:
      [SteadyStateLastAchievedTime <DateTime?>]:
      [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
        [Key <String>]:
        [Value <Int64?>]:
      [TroubleshootingUrl <String>]:
    [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
      [Name <String>]: Name for this key-value pair
      [Value <String>]: Value for this key-value pair
    [TemplateId <String>]:
  [SynchronizationSecrets <IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]>]:
    [Key <String>]: synchronizationSecret
    [Value <String>]:
  [SynchronizationTemplates <IMicrosoftGraphSynchronizationTemplate[]>]:
    [Id <String>]: Read-only.
    [ApplicationId <String>]:
    [Default <Boolean?>]:
    [Description <String>]:
    [Discoverable <Boolean?>]:
    [FactoryTag <String>]:
    [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [SchemaDirectories <IMicrosoftGraphDirectoryDefinition[]>]:
    [SchemaId <String>]: Read-only.
    [SchemaProvisioningTaskIdentifier <String>]:
    [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [SchemaVersion <String>]:
  [Tags <String[]>]:
  [TokenEncryptionKeyId <String>]:
  [TokenIssuancePolicies <IMicrosoftGraphTokenIssuancePolicy[]>]:
    [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.
    [Id <String>]: Read-only.
  [TokenLifetimePolicies <IMicrosoftGraphTokenLifetimePolicy[]>]:
    [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.
    [Id <String>]: Read-only.
  [TransitiveMemberOf <IMicrosoftGraphDirectoryObject[]>]:
 
CLAIMSMAPPINGPOLICIES <IMicrosoftGraphClaimsMappingPolicy[]>: .
  [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.
  [Id <String>]: Read-only.
 
CREATEDOBJECTS <IMicrosoftGraphDirectoryObject[]>: .
  [Id <String>]: Read-only.
  [DeletedDateTime <DateTime?>]:
 
ENDPOINTS <IMicrosoftGraphEndpoint[]>: .
  [DeletedDateTime <DateTime?>]:
  [Id <String>]: Read-only.
  [Capability <String>]:
  [ProviderId <String>]:
  [ProviderName <String>]:
  [ProviderResourceId <String>]:
  [Uri <String>]:
 
HOMEREALMDISCOVERYPOLICIES <IMicrosoftGraphHomeRealmDiscoveryPolicy[]>: .
  [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.
  [Id <String>]: Read-only.
 
INPUTOBJECT <IIdentityServicePrincipalIdentity>: Identity Parameter
  [AppRoleAssignmentId <String>]: key: appRoleAssignment-id of appRoleAssignment
  [ClaimsMappingPolicyId <String>]: key: claimsMappingPolicy-id of claimsMappingPolicy
  [DirectoryDefinitionId <String>]: key: directoryDefinition-id of directoryDefinition
  [DirectoryObjectId <String>]: key: directoryObject-id of directoryObject
  [EndpointId <String>]: key: endpoint-id of endpoint
  [HomeRealmDiscoveryPolicyId <String>]: key: homeRealmDiscoveryPolicy-id of homeRealmDiscoveryPolicy
  [LicenseDetailsId <String>]: key: licenseDetails-id of licenseDetails
  [OAuth2PermissionGrantId <String>]: key: oAuth2PermissionGrant-id of oAuth2PermissionGrant
  [ServicePrincipalId <String>]: key: servicePrincipal-id of servicePrincipal
  [SynchronizationJobId <String>]: key: synchronizationJob-id of synchronizationJob
  [SynchronizationTemplateId <String>]: key: synchronizationTemplate-id of synchronizationTemplate
  [TokenIssuancePolicyId <String>]: key: tokenIssuancePolicy-id of tokenIssuancePolicy
  [TokenLifetimePolicyId <String>]: key: tokenLifetimePolicy-id of tokenLifetimePolicy
 
KEYCREDENTIALS <IMicrosoftGraphKeyCredential[]>: .
  [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[]>: .
  [Id <String>]: Read-only.
  [DeletedDateTime <DateTime?>]:
 
OAUTH2PERMISSIONGRANTS <IMicrosoftGraphOAuth2PermissionGrant[]>: .
  [Id <String>]: Read-only.
  [ClientId <String>]:
  [ConsentType <String>]:
  [ExpiryTime <DateTime?>]:
  [PrincipalId <String>]:
  [ResourceId <String>]:
  [Scope <String>]:
  [StartTime <DateTime?>]:
 
OWNEDOBJECTS <IMicrosoftGraphDirectoryObject[]>: .
  [Id <String>]: Read-only.
  [DeletedDateTime <DateTime?>]:
 
OWNERS <IMicrosoftGraphDirectoryObject[]>: .
  [Id <String>]: Read-only.
  [DeletedDateTime <DateTime?>]:
 
PASSWORDCREDENTIALS <IMicrosoftGraphPasswordCredential[]>: .
  [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>]: Permission help text that appears in the admin consent and app assignment experiences.
  [AdminConsentDisplayName <String>]: Display name for the permission that appears in the admin consent and app assignment experiences.
  [Id <String>]: Unique scope permission identifier inside the oauth2Permissions collection.
  [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>]: For internal use.
  [Type <String>]: Specifies whether this scope permission can be consented to by an end user, or whether it is a tenant-wide permission that must be consented to by a company administrator. Possible values are User or Admin.
  [UserConsentDescription <String>]: Permission help text that appears in the end-user consent experience.
  [UserConsentDisplayName <String>]: Display name for the permission that appears in the end-user consent experience.
  [Value <String>]: The value of the scope claim that the resource application should expect in the OAuth 2.0 access token.
 
SYNCHRONIZATIONJOBS <IMicrosoftGraphSynchronizationJob[]>: .
  [Id <String>]: Read-only.
  [ScheduleExpiration <DateTime?>]:
  [ScheduleInterval <TimeSpan?>]:
  [ScheduleState <String>]: synchronizationScheduleState
  [SchemaDirectories <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>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
          [Key <String>]:
          [Value <String>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [SchemaId <String>]: Read-only.
  [SchemaProvisioningTaskIdentifier <String>]:
  [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [SchemaVersion <String>]:
  [Status <IMicrosoftGraphSynchronizationStatus>]: synchronizationStatus
    [Code <String>]: synchronizationStatusCode
    [CountSuccessiveCompleteFailures <Int64?>]:
    [EscrowsPruned <Boolean?>]:
    [LastExecutionActivityIdentifier <String>]:
    [LastExecutionCountEntitled <Int64?>]:
    [LastExecutionCountEntitledForProvisioning <Int64?>]:
    [LastExecutionCountEscrowed <Int64?>]:
    [LastExecutionCountEscrowedRaw <Int64?>]:
    [LastExecutionCountExported <Int64?>]:
    [LastExecutionCountExports <Int64?>]:
    [LastExecutionCountImported <Int64?>]:
    [LastExecutionCountImportedDeltas <Int64?>]:
    [LastExecutionCountImportedReferenceDeltas <Int64?>]:
    [LastExecutionErrorCode <String>]:
    [LastExecutionErrorMessage <String>]:
    [LastExecutionErrorTenantActionable <Boolean?>]:
    [LastExecutionState <String>]: synchronizationTaskExecutionResult
    [LastExecutionTimeBegan <DateTime?>]:
    [LastExecutionTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionActivityIdentifier <String>]:
    [LastSuccessfulExecutionCountEntitled <Int64?>]:
    [LastSuccessfulExecutionCountEntitledForProvisioning <Int64?>]:
    [LastSuccessfulExecutionCountEscrowed <Int64?>]:
    [LastSuccessfulExecutionCountEscrowedRaw <Int64?>]:
    [LastSuccessfulExecutionCountExported <Int64?>]:
    [LastSuccessfulExecutionCountExports <Int64?>]:
    [LastSuccessfulExecutionCountImported <Int64?>]:
    [LastSuccessfulExecutionCountImportedDeltas <Int64?>]:
    [LastSuccessfulExecutionCountImportedReferenceDeltas <Int64?>]:
    [LastSuccessfulExecutionErrorCode <String>]:
    [LastSuccessfulExecutionErrorMessage <String>]:
    [LastSuccessfulExecutionErrorTenantActionable <Boolean?>]:
    [LastSuccessfulExecutionState <String>]: synchronizationTaskExecutionResult
    [LastSuccessfulExecutionTimeBegan <DateTime?>]:
    [LastSuccessfulExecutionTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionWithExportActivityIdentifier <String>]:
    [LastSuccessfulExecutionWithExportCountEntitled <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEntitledForProvisioning <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEscrowed <Int64?>]:
    [LastSuccessfulExecutionWithExportCountEscrowedRaw <Int64?>]:
    [LastSuccessfulExecutionWithExportCountExported <Int64?>]:
    [LastSuccessfulExecutionWithExportCountExports <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImported <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImportedDeltas <Int64?>]:
    [LastSuccessfulExecutionWithExportCountImportedReferenceDeltas <Int64?>]:
    [LastSuccessfulExecutionWithExportState <String>]: synchronizationTaskExecutionResult
    [LastSuccessfulExecutionWithExportTimeBegan <DateTime?>]:
    [LastSuccessfulExecutionWithExportTimeEnded <DateTime?>]:
    [LastSuccessfulExecutionWithExportsErrorCode <String>]:
    [LastSuccessfulExecutionWithExportsErrorMessage <String>]:
    [LastSuccessfulExecutionWithExportsErrorTenantActionable <Boolean?>]:
    [Progress <IMicrosoftGraphSynchronizationProgress[]>]:
      [CompletedUnits <Int64?>]:
      [ProgressObservationDateTime <DateTime?>]:
      [TotalUnits <Int64?>]:
      [Units <String>]:
    [QuarantineCurrentBegan <DateTime?>]:
    [QuarantineErrorCode <String>]:
    [QuarantineErrorMessage <String>]:
    [QuarantineErrorTenantActionable <Boolean?>]:
    [QuarantineNextAttempt <DateTime?>]:
    [QuarantineReason <String>]: quarantineReason
    [QuarantineSeriesBegan <DateTime?>]:
    [QuarantineSeriesCount <Int64?>]:
    [SteadyStateFirstAchievedTime <DateTime?>]:
    [SteadyStateLastAchievedTime <DateTime?>]:
    [SynchronizedEntryCountByType <IMicrosoftGraphStringKeyLongValuePair[]>]:
      [Key <String>]:
      [Value <Int64?>]:
    [TroubleshootingUrl <String>]:
  [SynchronizationJobSettings <IMicrosoftGraphKeyValuePair[]>]:
    [Name <String>]: Name for this key-value pair
    [Value <String>]: Value for this key-value pair
  [TemplateId <String>]:
 
SYNCHRONIZATIONSECRETS <IMicrosoftGraphSynchronizationSecretKeyStringValuePair[]>: .
  [Key <String>]: synchronizationSecret
  [Value <String>]:
 
SYNCHRONIZATIONTEMPLATES <IMicrosoftGraphSynchronizationTemplate[]>: .
  [Id <String>]: Read-only.
  [ApplicationId <String>]:
  [Default <Boolean?>]:
  [Description <String>]:
  [Discoverable <Boolean?>]:
  [FactoryTag <String>]:
  [Metadata <IMicrosoftGraphMetadataEntry[]>]:
    [Key <String>]:
    [Value <String>]:
  [SchemaDirectories <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>]:
        [Metadata <IMicrosoftGraphMetadataEntry[]>]:
        [Multivalued <Boolean?>]:
        [Mutability <String>]: mutability
        [Name <String>]:
        [ReferencedObjects <IMicrosoftGraphReferencedObject[]>]:
          [ReferencedObjectName <String>]:
          [ReferencedProperty <String>]:
        [Required <Boolean?>]:
        [Type <String>]: attributeType
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [SupportedApis <String[]>]:
    [ReadOnly <Boolean?>]:
    [Version <String>]:
  [SchemaId <String>]: Read-only.
  [SchemaProvisioningTaskIdentifier <String>]:
  [SchemaSynchronizationRules <IMicrosoftGraphSynchronizationRule[]>]:
    [Editable <Boolean?>]:
    [Id <String>]:
    [Metadata <IMicrosoftGraphStringKeyStringValuePair[]>]:
    [Name <String>]:
    [ObjectMappings <IMicrosoftGraphObjectMapping[]>]:
      [AttributeMappings <IMicrosoftGraphAttributeMapping[]>]:
        [DefaultValue <String>]:
        [ExportMissingReferences <Boolean?>]:
        [FlowBehavior <String>]: attributeFlowBehavior
        [FlowType <String>]: attributeFlowType
        [MatchingPriority <Int32?>]:
        [SourceExpression <String>]:
        [SourceName <String>]:
        [SourceParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [Key <String>]:
          [ValueExpression <String>]:
          [ValueName <String>]:
          [ValueParameters <IMicrosoftGraphStringKeyAttributeMappingSourceValuePair[]>]:
          [ValueType <String>]: attributeMappingSourceType
        [SourceType <String>]: attributeMappingSourceType
        [TargetAttributeName <String>]:
      [Enabled <Boolean?>]:
      [FlowTypes <String>]: objectFlowTypes
      [Metadata <IMicrosoftGraphMetadataEntry[]>]:
      [Name <String>]:
      [ScopeCategoryFilterGroups <IMicrosoftGraphFilterGroup[]>]:
        [Clauses <IMicrosoftGraphFilterClause[]>]:
          [OperatorName <String>]:
          [SourceOperandName <String>]:
          [TargetOperandValues <String[]>]:
        [Name <String>]:
      [ScopeGroups <IMicrosoftGraphFilterGroup[]>]:
      [ScopeInputFilterGroups <IMicrosoftGraphFilterGroup[]>]:
      [SourceObjectName <String>]:
      [TargetObjectName <String>]:
    [Priority <Int32?>]:
    [SourceDirectoryName <String>]:
    [TargetDirectoryName <String>]:
  [SchemaVersion <String>]:
 
TOKENISSUANCEPOLICIES <IMicrosoftGraphTokenIssuancePolicy[]>: .
  [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.
  [Id <String>]: Read-only.
 
TOKENLIFETIMEPOLICIES <IMicrosoftGraphTokenLifetimePolicy[]>: .
  [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.
  [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='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: servicePrincipal-id of servicePrincipal
    ${ServicePrincipalId},

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

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServicePrincipal]
    # 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='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${AccountEnabled},

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    [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]
    # CDN URL to the application's logo, Read-only.
    ${InfoLogoUrl},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Link to the application's marketing page.
    # For example, https://www.contoso.com/app/marketing
    ${InfoMarketingUrl},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Link to the application's privacy statement.
    # For example, https://www.contoso.com/app/privacy
    ${InfoPrivacyStatementUrl},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Link to the application's support page.
    # For example, https://www.contoso.com/app/support
    ${InfoSupportUrl},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Link to the application's terms of service statement.
    # For example, https://www.contoso.com/app/termsofservice
    ${InfoTermsOfServiceUrl},

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

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

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

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

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

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

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

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

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

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

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [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='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${PublisherName},

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [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 = @{
            Update = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipal_Update';
            UpdateExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipal_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipal_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Identity.ServicePrincipal.private\Update-MgServicePrincipal_UpdateViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# SIG # Begin signature block
# MIIjhgYJKoZIhvcNAQcCoIIjdzCCI3MCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAyaqy/MUjRFJpl
# mY8s30FCk8aoUidJrBfA4CWEkHskRqCCDYEwggX/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/BvW1taslScxMNelDNMYIVWzCCFVcCAQEwgZUwfjELMAkG
# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z
# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAYdyF3IVWUDHCQAAAAABhzAN
# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor
# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgiLsn+HG7
# zI8ATr0alQG0ZuJTwipBupXHpVuOJv4gb/YwQgYKKwYBBAGCNwIBDDE0MDKgFIAS
# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN
# BgkqhkiG9w0BAQEFAASCAQBNAjvB2rs+gIt/Ie/ut7bgB43OhrFg9H0evMxAX8V5
# /6EYV4xFBdKeqVoN3saIZk3Hp2F8u5C3oev+7IharlUKI1iaJayvf6hycr4SI21A
# EwTWSCjWr+cAJ/yqpvFzPaKVNEjrVAWPhKtPswI2OVxxZStgw6LWgnXooShhKiyc
# EzqhLZ/uc8L5lMVFFNgwvtuhp6xboTDf/9zgO9QHcBMkTIdFu8heqWDUZXS7KLtz
# KEJP+EEZ14+yDMGoo/k1nz678RilAfZ0jQyvenJIvPPAzcFJTvZyamXEvj0gt3dk
# gfhSLmEtJEnbm0GuCFXLNwqkNSgTkLaW27hYEilL1DBroYIS5TCCEuEGCisGAQQB
# gjcDAwExghLRMIISzQYJKoZIhvcNAQcCoIISvjCCEroCAQMxDzANBglghkgBZQME
# AgEFADCCAVEGCyqGSIb3DQEJEAEEoIIBQASCATwwggE4AgEBBgorBgEEAYRZCgMB
# MDEwDQYJYIZIAWUDBAIBBQAEIBuTLCCrqZzpH24Njp4kslMbQ6xHwM0iNM5qW7sb
# CQroAgZeoxEB7skYEzIwMjAwNTAxMjI0MTE1LjA1NVowBIACAfSggdCkgc0wgcox
# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1p
# Y3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJjAkBgNVBAsTHVRoYWxlcyBUU1Mg
# RVNOOkQyQ0QtRTMxMC00QUYxMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFt
# cCBTZXJ2aWNloIIOPDCCBPEwggPZoAMCAQICEzMAAAEiG48AJiXMsecAAAAAASIw
# DQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0
# b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh
# dGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcN
# MTkxMTEzMjE0MDQzWhcNMjEwMjExMjE0MDQzWjCByjELMAkGA1UEBhMCVVMxEzAR
# BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p
# Y3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2Eg
# T3BlcmF0aW9uczEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046RDJDRC1FMzEwLTRB
# RjExJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggEiMA0G
# CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDfFQNIYkE+wXLcD2Ufk2s4kUKUhTQ9
# 5+R/Q6DUhduOGdLJsSKhocU1Kl8L1zEqk/k1k+5oVCiBp5L9FO7ycSh779B+Q8Te
# iERLM+nbMdsAxUCbPjR0sQ63kJTFpDgB/4HOpeLULMPQ6iEl0jfEs2uqdt/gWIq4
# KyK0ZXoP/Oo6S7zhWz4Cjczk7gS0ilAfSt7xB5lEhQhLCtkp9rzO6CKqMLW5ujYV
# yhmFcfrdx74/Y6E2Gs9u1YOk8Ktn4Y4cW/2E2e+4BeMs9AS+0XWbk/NYY2xiPHjZ
# qlzoVZEKGldOJ09P+kIh/jntp3Tpqr2NTeDt9OjT1qUY1yzJddR0pcLJAgMBAAGj
# ggEbMIIBFzAdBgNVHQ4EFgQUjjY9VWprwC9x2Djj4TS9nRczt8gwHwYDVR0jBBgw
# FoAU1WM6XIoxkPNDe3xGG8UzaFqFbVUwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDov
# L2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljVGltU3RhUENB
# XzIwMTAtMDctMDEuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0
# cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNUaW1TdGFQQ0FfMjAx
# MC0wNy0wMS5jcnQwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcDCDAN
# BgkqhkiG9w0BAQsFAAOCAQEAi6RHbsMi/wa2g3J+VTuchJyiNZ0fZlqWuihOJOux
# N59QvCd66Hp2pBaRCF4jfx+wbrGEeOdJ5luTZIUD88hJof4Q7Q37ZX78snbMd/gh
# r177Z1bf7t3yRM2cQ3vH6j20jWtlacoWeG/CRsCX0VHy/5o+qJxb/SfVC5WB+aZB
# cF/j7cdzHls7CMcTpzDaon2+q5J0mB+bV/I7kGyLx4kIQOgvox1xeXywxtFOgVef
# BCKYHL59hLoQZsOUwr8k8kd/P8wWckaDTuWt/uRq41wzYw/nd3ACzfTHVF6DY9qQ
# FQVEGJ0RA4cEs6EIX94sN/zpVTnUG+0PPdXBcgBKUkjK2zCCBnEwggRZoAMCAQIC
# CmEJgSoAAAAAAAIwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRp
# ZmljYXRlIEF1dGhvcml0eSAyMDEwMB4XDTEwMDcwMTIxMzY1NVoXDTI1MDcwMTIx
# NDY1NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNV
# BAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQG
# A1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggEiMA0GCSqGSIb3
# DQEBAQUAA4IBDwAwggEKAoIBAQCpHQ28dxGKOiDs/BOX9fp/aZRrdFQQ1aUKAIKF
# ++18aEssX8XD5WHCdrc+Zitb8BVTJwQxH0EbGpUdzgkTjnxhMFmxMEQP8WCIhFRD
# DNdNuDgIs0Ldk6zWczBXJoKjRQ3Q6vVHgc2/JGAyWGBG8lhHhjKEHnRhZ5FfgVSx
# z5NMksHEpl3RYRNuKMYa+YaAu99h/EbBJx0kZxJyGiGKr0tkiVBisV39dx898Fd1
# rL2KQk1AUdEPnAY+Z3/1ZsADlkR+79BL/W7lmsqxqPJ6Kgox8NpOBpG2iAg16Hgc
# sOmZzTznL0S6p/TcZL2kAcEgCZN4zfy8wMlEXV4WnAEFTyJNAgMBAAGjggHmMIIB
# 4jAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQU1WM6XIoxkPNDe3xGG8UzaFqF
# bVUwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
# EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYD
# VR0fBE8wTTBLoEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwv
# cHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEB
# BE4wTDBKBggrBgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9j
# ZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwgaAGA1UdIAEB/wSBlTCB
# kjCBjwYJKwYBBAGCNy4DMIGBMD0GCCsGAQUFBwIBFjFodHRwOi8vd3d3Lm1pY3Jv
# c29mdC5jb20vUEtJL2RvY3MvQ1BTL2RlZmF1bHQuaHRtMEAGCCsGAQUFBwICMDQe
# MiAdAEwAZQBnAGEAbABfAFAAbwBsAGkAYwB5AF8AUwB0AGEAdABlAG0AZQBuAHQA
# LiAdMA0GCSqGSIb3DQEBCwUAA4ICAQAH5ohRDeLG4Jg/gXEDPZ2joSFvs+umzPUx
# vs8F4qn++ldtGTCzwsVmyWrf9efweL3HqJ4l4/m87WtUVwgrUYJEEvu5U4zM9GAS
# inbMQEBBm9xcF/9c+V4XNZgkVkt070IQyK+/f8Z/8jd9Wj8c8pl5SpFSAK84Dxf1
# L3mBZdmptWvkx872ynoAb0swRCQiPM/tA6WWj1kpvLb9BOFwnzJKJ/1Vry/+tuWO
# M7tiX5rbV0Dp8c6ZZpCM/2pif93FSguRJuI57BlKcWOdeyFtw5yjojz6f32WapB4
# pm3S4Zz5Hfw42JT0xqUKloakvZ4argRCg7i1gJsiOCC1JeVk7Pf0v35jWSUPei45
# V3aicaoGig+JFrphpxHLmtgOR5qAxdDNp9DvfYPw4TtxCd9ddJgiCGHasFAeb73x
# 4QDf5zEHpJM692VHeOj4qEir995yfmFrb3epgcunCaw5u+zGy9iCtHLNHfS4hQEe
# gPsbiSpUObJb2sgNVZl6h3M7COaYLeqN4DMuEin1wC9UJyH3yKxO2ii4sanblrKn
# QqLJzxlBTeCG+SqaoxFmMNO7dDJL32N79ZmKLxvHIa9Zta7cRDyXUHHXodLFVeNp
# 3lfB0d4wwP3M5k37Db9dT+mdHhk4L7zPWAUu7w2gUDXa7wknHNWzfjUeCLraNtvT
# X4/edIhJEqGCAs4wggI3AgEBMIH4oYHQpIHNMIHKMQswCQYDVQQGEwJVUzETMBEG
# A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj
# cm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBP
# cGVyYXRpb25zMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjpEMkNELUUzMTAtNEFG
# MTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcG
# BSsOAwIaAxUAUOwD/JcbpKVMXpF2Vh77MyVNm9mggYMwgYCkfjB8MQswCQYDVQQG
# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQg
# VGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIFAOJWydAwIhgPMjAy
# MDA1MDIwMDE2MTZaGA8yMDIwMDUwMzAwMTYxNlowdzA9BgorBgEEAYRZCgQBMS8w
# LTAKAgUA4lbJ0AIBADAKAgEAAgIbSQIB/zAHAgEAAgIScTAKAgUA4lgbUAIBADA2
# BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIB
# AAIDAYagMA0GCSqGSIb3DQEBBQUAA4GBAF0t9PusZcbY9tQvzX4BkFHs/6PEf6Z1
# X+qc30VQzF7mzvRr7mk92OCmx8X/1p4ZbQWb37wrMR6mXCNvlfJZPgsqX+8KVuPP
# o2ulWdK++IvZKCT7+ors8aDCyzaXfjcLSDmTtDgKeS3wrCcbrVusIq0IVDng/uRX
# uoW4dDzLr7EcMYIDDTCCAwkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m
# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB
# IDIwMTACEzMAAAEiG48AJiXMsecAAAAAASIwDQYJYIZIAWUDBAIBBQCgggFKMBoG
# CSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgkgki6L62
# Dtkl5XxvYbyuE53Kbm/tbhjjCUWr/hwLMIQwgfoGCyqGSIb3DQEJEAIvMYHqMIHn
# MIHkMIG9BCC78GCJXmIyzmqyWSlw5bflow9yQ3g4vvs34oNSwngxCTCBmDCBgKR+
# MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS
# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMT
# HU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAABIhuPACYlzLHnAAAA
# AAEiMCIEIAWSxWKteE1X59egCBggpS16o7EYKG46oAtqneQbAQhsMA0GCSqGSIb3
# DQEBCwUABIIBAHzjOXviWz81PqzU/bn/Yro0WyeliWB/PQVHIJboPrv9g/NoVIxW
# A3ncxIqBaPHV+skeeXIhNn0Tcku0ETSLWC3TF17DkScqGNM7bUDUOCaOqf788bI9
# 7xnPRPIQYYd1VirTtfPuVbAW5IEl+/n2oUd/oQKawPu+wfmu/CHniCKod7eP6DtR
# fKXhmAP9jMsx1VBuQBVuxBmPXDTGJd/h1Dwhvy37P2X3Naiszm9ro0bl9wmQDz0k
# JAsm3QPlq6g4clh20n+EAGE2eq9Uf6Q5HD/u72pSek9uHD7k7i6UmN6SCethhpVf
# yTNj0N0HQDuV1bC3DyccCIYZlcds8YQyQdM=
# SIG # End signature block