exports/v1.0-beta/ProxyCmdletDefinitions.ps1


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

<#
.Synopsis
The collection of work activities that a user spent time on during and outside of working hours.
Read-only.
Nullable.
.Description
The collection of work activities that a user spent time on during and outside of working hours.
Read-only.
Nullable.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphActivityStatistics
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/get-mguseractivitystatistics
#>

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

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

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.String]
    # Filter items by property values
    ${Filter},

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.People.private\Get-MgUserActivityStatistics_Get';
            GetViaIdentity = 'Microsoft.Graph.People.private\Get-MgUserActivityStatistics_GetViaIdentity';
            List = 'Microsoft.Graph.People.private\Get-MgUserActivityStatistics_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
People that are relevant to the user.
Read-only.
Nullable.
.Description
People that are relevant to the user.
Read-only.
Nullable.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPerson1
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/get-mguserperson
#>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<#
.Synopsis
Get account from users
.Description
Get account from users
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphUserAccountInformation
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/get-mguserprofileaccount
#>

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

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

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.String]
    # Filter items by property values
    ${Filter},

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.People.private\Get-MgUserProfileAccount_Get';
            GetViaIdentity = 'Microsoft.Graph.People.private\Get-MgUserProfileAccount_GetViaIdentity';
            List = 'Microsoft.Graph.People.private\Get-MgUserProfileAccount_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
Represents details of addresses associated with the user.
.Description
Represents details of addresses associated with the user.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemAddress
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/get-mguserprofileaddress
#>

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

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

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.String]
    # Filter items by property values
    ${Filter},

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.People.private\Get-MgUserProfileAddress_Get';
            GetViaIdentity = 'Microsoft.Graph.People.private\Get-MgUserProfileAddress_GetViaIdentity';
            List = 'Microsoft.Graph.People.private\Get-MgUserProfileAddress_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
Represents the details of meaningful dates associated with a person.
.Description
Represents the details of meaningful dates associated with a person.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonAnnualEvent
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/get-mguserprofileanniversary
#>

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

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

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.String]
    # Filter items by property values
    ${Filter},

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.People.private\Get-MgUserProfileAnniversary_Get';
            GetViaIdentity = 'Microsoft.Graph.People.private\Get-MgUserProfileAnniversary_GetViaIdentity';
            List = 'Microsoft.Graph.People.private\Get-MgUserProfileAnniversary_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
Represents the details of awards or honors associated with a person.
.Description
Represents the details of awards or honors associated with a person.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonAward
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/get-mguserprofileaward
#>

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

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

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.String]
    # Filter items by property values
    ${Filter},

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.People.private\Get-MgUserProfileAward_Get';
            GetViaIdentity = 'Microsoft.Graph.People.private\Get-MgUserProfileAward_GetViaIdentity';
            List = 'Microsoft.Graph.People.private\Get-MgUserProfileAward_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
Represents the details of certifications associated with a person.
.Description
Represents the details of certifications associated with a person.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonCertification
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/get-mguserprofilecertification
#>

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

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

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.String]
    # Filter items by property values
    ${Filter},

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.People.private\Get-MgUserProfileCertification_Get';
            GetViaIdentity = 'Microsoft.Graph.People.private\Get-MgUserProfileCertification_GetViaIdentity';
            List = 'Microsoft.Graph.People.private\Get-MgUserProfileCertification_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
Represents data that a user has supplied related to undergraduate, graduate, postgraduate or other educational activities.
.Description
Represents data that a user has supplied related to undergraduate, graduate, postgraduate or other educational activities.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphEducationalActivity
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/get-mguserprofileeducationalactivity
#>

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

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

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.String]
    # Filter items by property values
    ${Filter},

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.People.private\Get-MgUserProfileEducationalActivity_Get';
            GetViaIdentity = 'Microsoft.Graph.People.private\Get-MgUserProfileEducationalActivity_GetViaIdentity';
            List = 'Microsoft.Graph.People.private\Get-MgUserProfileEducationalActivity_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
Represents detailed information about email addresses associated with the user.
.Description
Represents detailed information about email addresses associated with the user.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemEmail
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/get-mguserprofileemail
#>

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

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

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.String]
    # Filter items by property values
    ${Filter},

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.People.private\Get-MgUserProfileEmail_Get';
            GetViaIdentity = 'Microsoft.Graph.People.private\Get-MgUserProfileEmail_GetViaIdentity';
            List = 'Microsoft.Graph.People.private\Get-MgUserProfileEmail_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
Provides detailed information about interests the user has associated with themselves in various services.
.Description
Provides detailed information about interests the user has associated with themselves in various services.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonInterest
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/get-mguserprofileinterest
#>

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

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

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.String]
    # Filter items by property values
    ${Filter},

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.People.private\Get-MgUserProfileInterest_Get';
            GetViaIdentity = 'Microsoft.Graph.People.private\Get-MgUserProfileInterest_GetViaIdentity';
            List = 'Microsoft.Graph.People.private\Get-MgUserProfileInterest_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
Represents detailed information about languages that a user has added to their profile.
.Description
Represents detailed information about languages that a user has added to their profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLanguageProficiency
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/get-mguserprofilelanguage
#>

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

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

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.String]
    # Filter items by property values
    ${Filter},

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.People.private\Get-MgUserProfileLanguage_Get';
            GetViaIdentity = 'Microsoft.Graph.People.private\Get-MgUserProfileLanguage_GetViaIdentity';
            List = 'Microsoft.Graph.People.private\Get-MgUserProfileLanguage_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
Represents the names a user has added to their profile.
.Description
Represents the names a user has added to their profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonName
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/get-mguserprofilename
#>

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

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

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.String]
    # Filter items by property values
    ${Filter},

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.People.private\Get-MgUserProfileName_Get';
            GetViaIdentity = 'Microsoft.Graph.People.private\Get-MgUserProfileName_GetViaIdentity';
            List = 'Microsoft.Graph.People.private\Get-MgUserProfileName_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
Represents notes that a user has added to their profile.
.Description
Represents notes that a user has added to their profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonAnnotation
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/get-mguserprofilenote
#>

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

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

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.String]
    # Filter items by property values
    ${Filter},

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.People.private\Get-MgUserProfileNote_Get';
            GetViaIdentity = 'Microsoft.Graph.People.private\Get-MgUserProfileNote_GetViaIdentity';
            List = 'Microsoft.Graph.People.private\Get-MgUserProfileNote_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
Represents patents that a user has added to their profile.
.Description
Represents patents that a user has added to their profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemPatent
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/get-mguserprofilepatent
#>

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

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

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.String]
    # Filter items by property values
    ${Filter},

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.People.private\Get-MgUserProfilePatent_Get';
            GetViaIdentity = 'Microsoft.Graph.People.private\Get-MgUserProfilePatent_GetViaIdentity';
            List = 'Microsoft.Graph.People.private\Get-MgUserProfilePatent_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
Represents detailed information about phone numbers associated with a user in various services.
.Description
Represents detailed information about phone numbers associated with a user in various services.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemPhone
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/get-mguserprofilephone
#>

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

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

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.String]
    # Filter items by property values
    ${Filter},

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.People.private\Get-MgUserProfilePhone_Get';
            GetViaIdentity = 'Microsoft.Graph.People.private\Get-MgUserProfilePhone_GetViaIdentity';
            List = 'Microsoft.Graph.People.private\Get-MgUserProfilePhone_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
Represents detailed information about work positions associated with a user's profile.
.Description
Represents detailed information about work positions associated with a user's profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWorkPosition
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/get-mguserprofileposition
#>

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

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

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.String]
    # Filter items by property values
    ${Filter},

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.People.private\Get-MgUserProfilePosition_Get';
            GetViaIdentity = 'Microsoft.Graph.People.private\Get-MgUserProfilePosition_GetViaIdentity';
            List = 'Microsoft.Graph.People.private\Get-MgUserProfilePosition_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
Represents detailed information about projects associated with a user.
.Description
Represents detailed information about projects associated with a user.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphProjectParticipation
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/get-mguserprofileproject
#>

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

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

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.String]
    # Filter items by property values
    ${Filter},

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.People.private\Get-MgUserProfileProject_Get';
            GetViaIdentity = 'Microsoft.Graph.People.private\Get-MgUserProfileProject_GetViaIdentity';
            List = 'Microsoft.Graph.People.private\Get-MgUserProfileProject_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
Represents details of any publications a user has added to their profile.
.Description
Represents details of any publications a user has added to their profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemPublication
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/get-mguserprofilepublication
#>

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

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

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.String]
    # Filter items by property values
    ${Filter},

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.People.private\Get-MgUserProfilePublication_Get';
            GetViaIdentity = 'Microsoft.Graph.People.private\Get-MgUserProfilePublication_GetViaIdentity';
            List = 'Microsoft.Graph.People.private\Get-MgUserProfilePublication_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
Represents detailed information about skills associated with a user in various services.
.Description
Represents detailed information about skills associated with a user in various services.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSkillProficiency
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/get-mguserprofileskill
#>

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

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

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.String]
    # Filter items by property values
    ${Filter},

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.People.private\Get-MgUserProfileSkill_Get';
            GetViaIdentity = 'Microsoft.Graph.People.private\Get-MgUserProfileSkill_GetViaIdentity';
            List = 'Microsoft.Graph.People.private\Get-MgUserProfileSkill_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
Represents web accounts the user has indicated they use or has added to their user profile.
.Description
Represents web accounts the user has indicated they use or has added to their user profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWebAccount
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/get-mguserprofilewebaccount
#>

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

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

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.String]
    # Filter items by property values
    ${Filter},

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.People.private\Get-MgUserProfileWebAccount_Get';
            GetViaIdentity = 'Microsoft.Graph.People.private\Get-MgUserProfileWebAccount_GetViaIdentity';
            List = 'Microsoft.Graph.People.private\Get-MgUserProfileWebAccount_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
Represents detailed information about websites associated with a user in various services.
.Description
Represents detailed information about websites associated with a user in various services.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonWebsite
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/get-mguserprofilewebsite
#>

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

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

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.String]
    # Filter items by property values
    ${Filter},

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

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

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

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

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

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

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Get = 'Microsoft.Graph.People.private\Get-MgUserProfileWebsite_Get';
            GetViaIdentity = 'Microsoft.Graph.People.private\Get-MgUserProfileWebsite_GetViaIdentity';
            List = 'Microsoft.Graph.People.private\Get-MgUserProfileWebsite_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
Represents properties that are descriptive of a user in a tenant.
.Description
Represents properties that are descriptive of a user in a tenant.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphProfile
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/get-mguserprofile
#>

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

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.People.private\Get-MgUserProfile_Get';
            GetViaIdentity = 'Microsoft.Graph.People.private\Get-MgUserProfile_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
People that are relevant to the user.
Read-only.
Nullable.
.Description
People that are relevant to the user.
Read-only.
Nullable.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPerson1
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPerson1
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IMicrosoftGraphPerson1>: person
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [Birthday <String>]: The person's birthday.
  [CompanyName <String>]: The name of the person's company.
  [Department <String>]: The person's department.
  [DisplayName <String>]: The person's display name.
  [EmailAddresses <IMicrosoftGraphRankedEmailAddress[]>]: The person's email addresses.
    [Address <String>]: The email address.
    [Rank <Double?>]: The rank of the email address. A rank is used as a sort key, in relation to the other returned results. A higher rank value corresponds to a more relevant result. Relevance is determined by communication, collaboration, and business relationship signals.
  [GivenName <String>]: The person's given name.
  [IsFavorite <Boolean?>]: true if the user has flagged this person as a favorite.
  [MailboxType <String>]: The type of mailbox that is represented by the person's email address.
  [OfficeLocation <String>]: The location of the person's office.
  [PersonNotes <String>]: Free-form notes that the user has taken about this person.
  [PersonType <String>]: The type of person.
  [Phones <IMicrosoftGraphPhone1[]>]: The person's phone numbers.
    [Number <String>]: The phone number.
    [Type <String>]: phoneType
  [PostalAddresses <IMicrosoftGraphLocation1[]>]: The person's addresses.
    [Address <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
      [(Any) <Object>]: This indicates any property can be added to this object.
      [City <String>]: The city.
      [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
      [PostOfficeBox <String>]: The post office box number.
      [PostalCode <String>]: The postal code.
      [State <String>]: The state.
      [Street <String>]: The street.
      [Type <String>]: physicalAddressType
    [Coordinates <IMicrosoftGraphOutlookGeoCoordinates>]: outlookGeoCoordinates
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Accuracy <Double?>]: The accuracy of the latitude and longitude. As an example, the accuracy can be measured in meters, such as the latitude and longitude are accurate to within 50 meters.
      [Altitude <Double?>]: The altitude of the location.
      [AltitudeAccuracy <Double?>]: The accuracy of the altitude.
      [Latitude <Double?>]: The latitude of the location.
      [Longitude <Double?>]: The longitude of the location.
    [DisplayName <String>]: The name associated with the location.
    [LocationEmailAddress <String>]: Optional email address of the location.
    [LocationType <String>]: locationType
    [LocationUri <String>]: Optional URI representing the location.
    [UniqueId <String>]: For internal use only.
    [UniqueIdType <String>]: locationUniqueIdType
  [Profession <String>]: The person's profession.
  [Sources <IMicrosoftGraphPersonDataSource[]>]: The sources the user data comes from, for example Directory or Outlook Contacts.
    [Type <String>]: The type of data source.
  [Surname <String>]: The person's surname.
  [Title <String>]: The person's title.
  [UserPrincipalName <String>]: The user principal name (UPN) of the person. The UPN is an Internet-style login name for the person based on the Internet standard RFC 822. By convention, this should map to the person's email name. The general format is alias@domain.
  [Websites <IMicrosoftGraphWebsite[]>]: The person's websites.
    [Address <String>]: The URL of the website.
    [DisplayName <String>]: The display name of the web site.
    [Type <String>]: websiteType
  [YomiCompany <String>]: The phonetic Japanese name of the person's company.
 
EMAILADDRESSES <IMicrosoftGraphRankedEmailAddress[]>: The person's email addresses.
  [Address <String>]: The email address.
  [Rank <Double?>]: The rank of the email address. A rank is used as a sort key, in relation to the other returned results. A higher rank value corresponds to a more relevant result. Relevance is determined by communication, collaboration, and business relationship signals.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
PHONES <IMicrosoftGraphPhone1[]>: The person's phone numbers.
  [Number <String>]: The phone number.
  [Type <String>]: phoneType
 
POSTALADDRESSES <IMicrosoftGraphLocation1[]>: The person's addresses.
  [Address <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
    [(Any) <Object>]: This indicates any property can be added to this object.
    [City <String>]: The city.
    [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
    [PostOfficeBox <String>]: The post office box number.
    [PostalCode <String>]: The postal code.
    [State <String>]: The state.
    [Street <String>]: The street.
    [Type <String>]: physicalAddressType
  [Coordinates <IMicrosoftGraphOutlookGeoCoordinates>]: outlookGeoCoordinates
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Accuracy <Double?>]: The accuracy of the latitude and longitude. As an example, the accuracy can be measured in meters, such as the latitude and longitude are accurate to within 50 meters.
    [Altitude <Double?>]: The altitude of the location.
    [AltitudeAccuracy <Double?>]: The accuracy of the altitude.
    [Latitude <Double?>]: The latitude of the location.
    [Longitude <Double?>]: The longitude of the location.
  [DisplayName <String>]: The name associated with the location.
  [LocationEmailAddress <String>]: Optional email address of the location.
  [LocationType <String>]: locationType
  [LocationUri <String>]: Optional URI representing the location.
  [UniqueId <String>]: For internal use only.
  [UniqueIdType <String>]: locationUniqueIdType
 
SOURCES <IMicrosoftGraphPersonDataSource[]>: The sources the user data comes from, for example Directory or Outlook Contacts.
  [Type <String>]: The type of data source.
 
WEBSITES <IMicrosoftGraphWebsite[]>: The person's websites.
  [Address <String>]: The URL of the website.
  [DisplayName <String>]: The display name of the web site.
  [Type <String>]: websiteType
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/new-mguserperson
#>

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

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

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

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

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The person's birthday.
    ${Birthday},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The name of the person's company.
    ${CompanyName},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The person's department.
    ${Department},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The person's display name.
    ${DisplayName},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphRankedEmailAddress[]]
    # The person's email addresses.
    # To construct, see NOTES section for EMAILADDRESSES properties and create a hash table.
    ${EmailAddresses},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The person's given name.
    ${GivenName},

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

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # true if the user has flagged this person as a favorite.
    ${IsFavorite},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The type of mailbox that is represented by the person's email address.
    ${MailboxType},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The location of the person's office.
    ${OfficeLocation},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Free-form notes that the user has taken about this person.
    ${PersonNotes},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The type of person.
    ${PersonType},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPhone1[]]
    # The person's phone numbers.
    # To construct, see NOTES section for PHONES properties and create a hash table.
    ${Phones},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLocation1[]]
    # The person's addresses.
    # To construct, see NOTES section for POSTALADDRESSES properties and create a hash table.
    ${PostalAddresses},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The person's profession.
    ${Profession},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonDataSource[]]
    # The sources the user data comes from, for example Directory or Outlook Contacts.
    # To construct, see NOTES section for SOURCES properties and create a hash table.
    ${Sources},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The person's surname.
    ${Surname},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The person's title.
    ${Title},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The user principal name (UPN) of the person.
    # The UPN is an Internet-style login name for the person based on the Internet standard RFC 822.
    # By convention, this should map to the person's email name.
    # The general format is alias@domain.
    ${UserPrincipalName},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWebsite[]]
    # The person's websites.
    # To construct, see NOTES section for WEBSITES properties and create a hash table.
    ${Websites},

    [Parameter(ParameterSetName='CreateExpanded1')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The phonetic Japanese name of the person's company.
    ${YomiCompany},

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Create1 = 'Microsoft.Graph.People.private\New-MgUserPerson_Create1';
            CreateExpanded1 = 'Microsoft.Graph.People.private\New-MgUserPerson_CreateExpanded1';
            CreateViaIdentity1 = 'Microsoft.Graph.People.private\New-MgUserPerson_CreateViaIdentity1';
            CreateViaIdentityExpanded1 = 'Microsoft.Graph.People.private\New-MgUserPerson_CreateViaIdentityExpanded1';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

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

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

<#
.Synopsis
Create new navigation property to account for users
.Description
Create new navigation property to account for users
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphUserAccountInformation
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphUserAccountInformation
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IMicrosoftGraphUserAccountInformation>: userAccountInformation
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [AgeGroup <String>]: Shows the age group of user. Allowed values null, minor, notAdult and adult are generated by the directory and cannot be changed.
  [CountryCode <String>]: Contains the two-character country code associated with the users account.
  [PreferredLanguageTag <IMicrosoftGraphLocaleInfo>]: localeInfo
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: A name representing the user's locale in natural language, for example, 'English (United States)'.
    [Locale <String>]: A locale representation for the user, which includes the user's preferred language and country/region. For example, 'en-us'. The language component follows 2-letter codes as defined in ISO 639-1, and the country component follows 2-letter codes as defined in ISO 3166-1 alpha-2.
  [UserPrincipalName <String>]: The user principal name (UPN) of the user associated with the account.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
PREFERREDLANGUAGETAG <IMicrosoftGraphLocaleInfo>: localeInfo
  [(Any) <Object>]: This indicates any property can be added to this object.
  [DisplayName <String>]: A name representing the user's locale in natural language, for example, 'English (United States)'.
  [Locale <String>]: A locale representation for the user, which includes the user's preferred language and country/region. For example, 'en-us'. The language component follows 2-letter codes as defined in ISO 639-1, and the country component follows 2-letter codes as defined in ISO 3166-1 alpha-2.
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/new-mguserprofileaccount
#>

function New-MgUserProfileAccount {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphUserAccountInformation])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Shows the age group of user.
    # Allowed values null, minor, notAdult and adult are generated by the directory and cannot be changed.
    ${AgeGroup},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains the two-character country code associated with the users account.
    ${CountryCode},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The user principal name (UPN) of the user associated with the account.
    ${UserPrincipalName},

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Create = 'Microsoft.Graph.People.private\New-MgUserProfileAccount_Create';
            CreateExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileAccount_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.People.private\New-MgUserProfileAccount_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileAccount_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
Represents details of addresses associated with the user.
.Description
Represents details of addresses associated with the user.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemAddress
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemAddress
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IMicrosoftGraphItemAddress>: itemAddress
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Detail <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
    [(Any) <Object>]: This indicates any property can be added to this object.
    [City <String>]: The city.
    [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
    [PostOfficeBox <String>]: The post office box number.
    [PostalCode <String>]: The postal code.
    [State <String>]: The state.
    [Street <String>]: The street.
    [Type <String>]: physicalAddressType
  [DisplayName <String>]: Friendly name the user has assigned to this address.
  [GeoCoordinates <IMicrosoftGraphGeoCoordinates>]: geoCoordinates
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Altitude <Double?>]: Optional. The altitude (height), in feet, above sea level for the item. Read-only.
    [Latitude <Double?>]: Optional. The latitude, in decimal, for the item. Read-only.
    [Longitude <Double?>]: Optional. The longitude, in decimal, for the item. Read-only.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
DETAIL <IMicrosoftGraphPhysicalAddress1>: physicalAddress
  [(Any) <Object>]: This indicates any property can be added to this object.
  [City <String>]: The city.
  [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
  [PostOfficeBox <String>]: The post office box number.
  [PostalCode <String>]: The postal code.
  [State <String>]: The state.
  [Street <String>]: The street.
  [Type <String>]: physicalAddressType
 
GEOCOORDINATES <IMicrosoftGraphGeoCoordinates>: geoCoordinates
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Altitude <Double?>]: Optional. The altitude (height), in feet, above sea level for the item. Read-only.
  [Latitude <Double?>]: Optional. The latitude, in decimal, for the item. Read-only.
  [Longitude <Double?>]: Optional. The longitude, in decimal, for the item. Read-only.
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/new-mguserprofileaddress
#>

function New-MgUserProfileAddress {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemAddress])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

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

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Friendly name the user has assigned to this address.
    ${DisplayName},

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

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\New-MgUserProfileAddress_Create';
            CreateExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileAddress_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.People.private\New-MgUserProfileAddress_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileAddress_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
Represents the details of meaningful dates associated with a person.
.Description
Represents the details of meaningful dates associated with a person.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonAnnualEvent
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonAnnualEvent
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IMicrosoftGraphPersonAnnualEvent>: personAnnualEvent
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Date <DateTime?>]:
  [DisplayName <String>]:
  [Type <String>]: personAnnualEventType
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/new-mguserprofileanniversary
#>

function New-MgUserProfileAnniversary {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonAnnualEvent])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

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

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

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

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

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\New-MgUserProfileAnniversary_Create';
            CreateExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileAnniversary_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.People.private\New-MgUserProfileAnniversary_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileAnniversary_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
Represents the details of awards or honors associated with a person.
.Description
Represents the details of awards or honors associated with a person.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonAward
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonAward
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IMicrosoftGraphPersonAward>: personAward
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Description <String>]: Descpription of the award or honor.
  [DisplayName <String>]: Name of the award or honor.
  [IssuedDate <DateTime?>]: The date that the award or honor was granted.
  [IssuingAuthority <String>]: Authority which granted the award or honor.
  [ThumbnailUrl <String>]: URL referencing a thumbnail of the award or honor.
  [WebUrl <String>]: URL referencing the award or honor.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/new-mguserprofileaward
#>

function New-MgUserProfileAward {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonAward])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

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

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

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

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

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The date that the award or honor was granted.
    ${IssuedDate},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Authority which granted the award or honor.
    ${IssuingAuthority},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # URL referencing a thumbnail of the award or honor.
    ${ThumbnailUrl},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # URL referencing the award or honor.
    ${WebUrl},

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\New-MgUserProfileAward_Create';
            CreateExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileAward_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.People.private\New-MgUserProfileAward_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileAward_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
Represents the details of certifications associated with a person.
.Description
Represents the details of certifications associated with a person.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonCertification
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonCertification
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IMicrosoftGraphPersonCertification>: personCertification
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [CertificationId <String>]: The referenceable identifier for the certification.
  [Description <String>]: Description of the certification.
  [DisplayName <String>]: Title of the certification.
  [EndDate <DateTime?>]: The date that the certification expires.
  [IssuedDate <DateTime?>]: The date that the certification was issued.
  [IssuingAuthority <String>]: Authority which granted the certification.
  [IssuingCompany <String>]: Company which granted the certification.
  [StartDate <DateTime?>]: The date that the certification became valid.
  [ThumbnailUrl <String>]: URL referencing a thumbnail of the certification.
  [WebUrl <String>]: URL referencing the certification.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/new-mguserprofilecertification
#>

function New-MgUserProfileCertification {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonCertification])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The referenceable identifier for the certification.
    ${CertificationId},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The date that the certification expires.
    ${EndDate},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The date that the certification was issued.
    ${IssuedDate},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Authority which granted the certification.
    ${IssuingAuthority},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Company which granted the certification.
    ${IssuingCompany},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The date that the certification became valid.
    ${StartDate},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # URL referencing a thumbnail of the certification.
    ${ThumbnailUrl},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # URL referencing the certification.
    ${WebUrl},

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\New-MgUserProfileCertification_Create';
            CreateExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileCertification_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.People.private\New-MgUserProfileCertification_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileCertification_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
Represents data that a user has supplied related to undergraduate, graduate, postgraduate or other educational activities.
.Description
Represents data that a user has supplied related to undergraduate, graduate, postgraduate or other educational activities.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphEducationalActivity
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphEducationalActivity
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IMicrosoftGraphEducationalActivity>: educationalActivity
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [CompletionMonthYear <DateTime?>]: The month and year the user graduated or completed the activity.
  [EndMonthYear <DateTime?>]: The month and year the user completed the educational activity referenced.
  [Institution <IMicrosoftGraphInstitutionData>]: institutionData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Description <String>]: Short description of the institution the user studied at.
    [DisplayName <String>]: Name of the institution the user studied at.
    [Location <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
      [(Any) <Object>]: This indicates any property can be added to this object.
      [City <String>]: The city.
      [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
      [PostOfficeBox <String>]: The post office box number.
      [PostalCode <String>]: The postal code.
      [State <String>]: The state.
      [Street <String>]: The street.
      [Type <String>]: physicalAddressType
    [WebUrl <String>]: Link to the institution or department homepage.
  [Program <IMicrosoftGraphEducationalActivityDetail>]: educationalActivityDetail
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Abbreviation <String>]: Shortened name of the degree or program (example: PhD, MBA)
    [Activities <String[]>]: Extracurricular activities undertaken alongside the program.
    [Awards <String[]>]: Any awards or honors associated with the program.
    [Description <String>]: Short description of the program provided by the user.
    [DisplayName <String>]: Long-form name of the program that the user has provided.
    [FieldsOfStudy <String[]>]: Majors and minors associated with the program. (if applicable)
    [Grade <String>]: The final grade, class, GPA or score.
    [Notes <String>]: Additional notes the user has provided.
    [WebUrl <String>]: Link to the degree or program page.
  [StartMonthYear <DateTime?>]: The month and year the user commenced the activity referenced.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
INSTITUTION <IMicrosoftGraphInstitutionData>: institutionData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Description <String>]: Short description of the institution the user studied at.
  [DisplayName <String>]: Name of the institution the user studied at.
  [Location <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
    [(Any) <Object>]: This indicates any property can be added to this object.
    [City <String>]: The city.
    [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
    [PostOfficeBox <String>]: The post office box number.
    [PostalCode <String>]: The postal code.
    [State <String>]: The state.
    [Street <String>]: The street.
    [Type <String>]: physicalAddressType
  [WebUrl <String>]: Link to the institution or department homepage.
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
PROGRAM <IMicrosoftGraphEducationalActivityDetail>: educationalActivityDetail
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Abbreviation <String>]: Shortened name of the degree or program (example: PhD, MBA)
  [Activities <String[]>]: Extracurricular activities undertaken alongside the program.
  [Awards <String[]>]: Any awards or honors associated with the program.
  [Description <String>]: Short description of the program provided by the user.
  [DisplayName <String>]: Long-form name of the program that the user has provided.
  [FieldsOfStudy <String[]>]: Majors and minors associated with the program. (if applicable)
  [Grade <String>]: The final grade, class, GPA or score.
  [Notes <String>]: Additional notes the user has provided.
  [WebUrl <String>]: Link to the degree or program page.
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/new-mguserprofileeducationalactivity
#>

function New-MgUserProfileEducationalActivity {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphEducationalActivity])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The month and year the user graduated or completed the activity.
    ${CompletionMonthYear},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The month and year the user completed the educational activity referenced.
    ${EndMonthYear},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The month and year the user commenced the activity referenced.
    ${StartMonthYear},

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\New-MgUserProfileEducationalActivity_Create';
            CreateExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileEducationalActivity_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.People.private\New-MgUserProfileEducationalActivity_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileEducationalActivity_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
Represents detailed information about email addresses associated with the user.
.Description
Represents detailed information about email addresses associated with the user.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemEmail
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemEmail
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IMicrosoftGraphItemEmail>: itemEmail
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Address <String>]: The email address itself.
  [DisplayName <String>]: The name or label a user has associated with a particular email address.
  [Type <String>]: emailType
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/new-mguserprofileemail
#>

function New-MgUserProfileEmail {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemEmail])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The email address itself.
    ${Address},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The name or label a user has associated with a particular email address.
    ${DisplayName},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\New-MgUserProfileEmail_Create';
            CreateExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileEmail_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.People.private\New-MgUserProfileEmail_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileEmail_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
Provides detailed information about interests the user has associated with themselves in various services.
.Description
Provides detailed information about interests the user has associated with themselves in various services.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonInterest
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonInterest
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IMicrosoftGraphPersonInterest>: personInterest
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Categories <String[]>]: Contains categories a user has associated with the interest (for example, personal, recipies).
  [CollaborationTags <String[]>]: Contains experience scenario tags a user has associated with the interest. Allowed values in the collection are: askMeAbout, ableToMentor, wantsToLearn, wantsToImprove.
  [Description <String>]: Contains a description of the interest.
  [DisplayName <String>]: Contains a friendly name for the interest.
  [ThumbnailUrl <String>]:
  [WebUrl <String>]: Contains a link to a web page or resource about the interest.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/new-mguserprofileinterest
#>

function New-MgUserProfileInterest {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonInterest])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Contains categories a user has associated with the interest (for example, personal, recipies).
    ${Categories},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Contains experience scenario tags a user has associated with the interest.
    # Allowed values in the collection are: askMeAbout, ableToMentor, wantsToLearn, wantsToImprove.
    ${CollaborationTags},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains a friendly name for the interest.
    ${DisplayName},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains a link to a web page or resource about the interest.
    ${WebUrl},

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\New-MgUserProfileInterest_Create';
            CreateExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileInterest_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.People.private\New-MgUserProfileInterest_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileInterest_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
Represents detailed information about languages that a user has added to their profile.
.Description
Represents detailed information about languages that a user has added to their profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLanguageProficiency
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLanguageProficiency
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IMicrosoftGraphLanguageProficiency>: languageProficiency
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [DisplayName <String>]: Contains the long-form name for the language.
  [Proficiency <String>]: languageProficiencyLevel
  [Reading <String>]: languageProficiencyLevel
  [Spoken <String>]: languageProficiencyLevel
  [Tag <String>]: Contains the four-character BCP47 name for the language (en-US, no-NB, en-AU).
  [ThumbnailUrl <String>]:
  [Written <String>]: languageProficiencyLevel
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/new-mguserprofilelanguage
#>

function New-MgUserProfileLanguage {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLanguageProficiency])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

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

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains the long-form name for the language.
    ${DisplayName},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains the four-character BCP47 name for the language (en-US, no-NB, en-AU).
    ${Tag},

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

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

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\New-MgUserProfileLanguage_Create';
            CreateExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileLanguage_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.People.private\New-MgUserProfileLanguage_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileLanguage_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
Represents the names a user has added to their profile.
.Description
Represents the names a user has added to their profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonName
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonName
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IMicrosoftGraphPersonName>: personName
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [DisplayName <String>]: Provides an ordered rendering of firstName and lastName depending on the locale of the user or their device.
  [First <String>]: First name of the user.
  [Initials <String>]: Initials of the user.
  [LanguageTag <String>]: Contains the name for the language (en-US, no-NB, en-AU) following IETF BCP47 format.
  [Last <String>]: Last name of the user.
  [Maiden <String>]: Maiden name of the user.
  [Middle <String>]: Middle name of the user.
  [Nickname <String>]: Nickname of the user.
  [Pronunciation <IMicrosoftGraphPersonNamePronounciation>]: personNamePronounciation
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]:
    [First <String>]:
    [Last <String>]:
    [Maiden <String>]:
    [Middle <String>]:
  [Suffix <String>]: Designators used after the users name (eg: PhD.)
  [Title <String>]: Honorifics used to prefix a users name (eg: Dr, Sir, Madam, Mrs.)
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
PRONUNCIATION <IMicrosoftGraphPersonNamePronounciation>: personNamePronounciation
  [(Any) <Object>]: This indicates any property can be added to this object.
  [DisplayName <String>]:
  [First <String>]:
  [Last <String>]:
  [Maiden <String>]:
  [Middle <String>]:
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/new-mguserprofilename
#>

function New-MgUserProfileName {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonName])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

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

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Provides an ordered rendering of firstName and lastName depending on the locale of the user or their device.
    ${DisplayName},

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

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains the name for the language (en-US, no-NB, en-AU) following IETF BCP47 format.
    ${LanguageTag},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Designators used after the users name (eg: PhD.)
    ${Suffix},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Honorifics used to prefix a users name (eg: Dr, Sir, Madam, Mrs.)
    ${Title},

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\New-MgUserProfileName_Create';
            CreateExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileName_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.People.private\New-MgUserProfileName_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileName_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
Represents notes that a user has added to their profile.
.Description
Represents notes that a user has added to their profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonAnnotation
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonAnnotation
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IMicrosoftGraphPersonAnnotation>: personAnnotation
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Detail <IMicrosoftGraphItemBody>]: itemBody
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Content <String>]: The content of the item.
    [ContentType <String>]: bodyType
  [DisplayName <String>]: Contains a friendly name for the note.
  [ThumbnailUrl <String>]:
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
DETAIL <IMicrosoftGraphItemBody>: itemBody
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Content <String>]: The content of the item.
  [ContentType <String>]: bodyType
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/new-mguserprofilenote
#>

function New-MgUserProfileNote {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonAnnotation])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

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

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains a friendly name for the note.
    ${DisplayName},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\New-MgUserProfileNote_Create';
            CreateExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileNote_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.People.private\New-MgUserProfileNote_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileNote_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
Represents patents that a user has added to their profile.
.Description
Represents patents that a user has added to their profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemPatent
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemPatent
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IMicrosoftGraphItemPatent>: itemPatent
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Description <String>]: Descpription of the patent or filing.
  [DisplayName <String>]: Title of the patent or filing.
  [IsPending <Boolean?>]: Indicates the patent is pending.
  [IssuedDate <DateTime?>]: The date that the patent was granted.
  [IssuingAuthority <String>]: Authority which granted the patent.
  [Number <String>]: The patent number.
  [WebUrl <String>]: URL referencing the patent or filing.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/new-mguserprofilepatent
#>

function New-MgUserProfilePatent {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemPatent])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

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

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Title of the patent or filing.
    ${DisplayName},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Indicates the patent is pending.
    ${IsPending},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The date that the patent was granted.
    ${IssuedDate},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Authority which granted the patent.
    ${IssuingAuthority},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # URL referencing the patent or filing.
    ${WebUrl},

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\New-MgUserProfilePatent_Create';
            CreateExpanded = 'Microsoft.Graph.People.private\New-MgUserProfilePatent_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.People.private\New-MgUserProfilePatent_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.People.private\New-MgUserProfilePatent_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
Represents detailed information about phone numbers associated with a user in various services.
.Description
Represents detailed information about phone numbers associated with a user in various services.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemPhone
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemPhone
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IMicrosoftGraphItemPhone>: itemPhone
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [DisplayName <String>]: Friendly name the user has assigned this phone number.
  [Number <String>]: Phone number provided by the user.
  [Type <String>]: phoneType
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/new-mguserprofilephone
#>

function New-MgUserProfilePhone {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemPhone])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

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

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Friendly name the user has assigned this phone number.
    ${DisplayName},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Phone number provided by the user.
    ${Number},

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

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

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\New-MgUserProfilePhone_Create';
            CreateExpanded = 'Microsoft.Graph.People.private\New-MgUserProfilePhone_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.People.private\New-MgUserProfilePhone_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.People.private\New-MgUserProfilePhone_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
Represents detailed information about work positions associated with a user's profile.
.Description
Represents detailed information about work positions associated with a user's profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWorkPosition
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWorkPosition
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IMicrosoftGraphWorkPosition>: workPosition
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Categories <String[]>]: Categories that the user has associated with this position.
  [Colleagues <IMicrosoftGraphRelatedPerson[]>]: Colleagues that are associated with this position.
    [DisplayName <String>]: Name of the person.
    [Relationship <String>]: personRelationship
    [UserPrincipalName <String>]: Email address or reference to person within organization.
  [Detail <IMicrosoftGraphPositionDetail>]: positionDetail
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Company <IMicrosoftGraphCompanyDetail>]: companyDetail
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Address <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
        [(Any) <Object>]: This indicates any property can be added to this object.
        [City <String>]: The city.
        [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
        [PostOfficeBox <String>]: The post office box number.
        [PostalCode <String>]: The postal code.
        [State <String>]: The state.
        [Street <String>]: The street.
        [Type <String>]: physicalAddressType
      [Department <String>]: Department Name within a company.
      [DisplayName <String>]: Company name.
      [OfficeLocation <String>]: Office Location of the person referred to.
      [Pronunciation <String>]: Pronunciation guide for the company name.
      [WebUrl <String>]: Link to the company home page.
    [Description <String>]: Description of the position in question.
    [EndMonthYear <DateTime?>]: When the position ended.
    [JobTitle <String>]: The title held when in that position.
    [Role <String>]: The role the position entailed.
    [StartMonthYear <DateTime?>]: The start month and year of the position.
    [Summary <String>]: Short summary of the position.
  [IsCurrent <Boolean?>]: Denotes whether or not the position is current.
  [Manager <IMicrosoftGraphRelatedPerson>]: relatedPerson
 
COLLEAGUES <IMicrosoftGraphRelatedPerson[]>: Colleagues that are associated with this position.
  [DisplayName <String>]: Name of the person.
  [Relationship <String>]: personRelationship
  [UserPrincipalName <String>]: Email address or reference to person within organization.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
DETAIL <IMicrosoftGraphPositionDetail>: positionDetail
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Company <IMicrosoftGraphCompanyDetail>]: companyDetail
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Address <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
      [(Any) <Object>]: This indicates any property can be added to this object.
      [City <String>]: The city.
      [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
      [PostOfficeBox <String>]: The post office box number.
      [PostalCode <String>]: The postal code.
      [State <String>]: The state.
      [Street <String>]: The street.
      [Type <String>]: physicalAddressType
    [Department <String>]: Department Name within a company.
    [DisplayName <String>]: Company name.
    [OfficeLocation <String>]: Office Location of the person referred to.
    [Pronunciation <String>]: Pronunciation guide for the company name.
    [WebUrl <String>]: Link to the company home page.
  [Description <String>]: Description of the position in question.
  [EndMonthYear <DateTime?>]: When the position ended.
  [JobTitle <String>]: The title held when in that position.
  [Role <String>]: The role the position entailed.
  [StartMonthYear <DateTime?>]: The start month and year of the position.
  [Summary <String>]: Short summary of the position.
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
MANAGER <IMicrosoftGraphRelatedPerson>: relatedPerson
  [(Any) <Object>]: This indicates any property can be added to this object.
  [DisplayName <String>]: Name of the person.
  [Relationship <String>]: personRelationship
  [UserPrincipalName <String>]: Email address or reference to person within organization.
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/new-mguserprofileposition
#>

function New-MgUserProfilePosition {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWorkPosition])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Categories that the user has associated with this position.
    ${Categories},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphRelatedPerson[]]
    # Colleagues that are associated with this position.
    # To construct, see NOTES section for COLLEAGUES properties and create a hash table.
    ${Colleagues},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

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

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Denotes whether or not the position is current.
    ${IsCurrent},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\New-MgUserProfilePosition_Create';
            CreateExpanded = 'Microsoft.Graph.People.private\New-MgUserProfilePosition_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.People.private\New-MgUserProfilePosition_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.People.private\New-MgUserProfilePosition_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
Represents detailed information about projects associated with a user.
.Description
Represents detailed information about projects associated with a user.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphProjectParticipation
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphProjectParticipation
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IMicrosoftGraphProjectParticipation>: projectParticipation
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Categories <String[]>]: Contains categories a user has associated with the project (for example, digital transformation, oil rig).
  [Client <IMicrosoftGraphCompanyDetail>]: companyDetail
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Address <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
      [(Any) <Object>]: This indicates any property can be added to this object.
      [City <String>]: The city.
      [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
      [PostOfficeBox <String>]: The post office box number.
      [PostalCode <String>]: The postal code.
      [State <String>]: The state.
      [Street <String>]: The street.
      [Type <String>]: physicalAddressType
    [Department <String>]: Department Name within a company.
    [DisplayName <String>]: Company name.
    [OfficeLocation <String>]: Office Location of the person referred to.
    [Pronunciation <String>]: Pronunciation guide for the company name.
    [WebUrl <String>]: Link to the company home page.
  [CollaborationTags <String[]>]: Contains experience scenario tags a user has associated with the interest. Allowed values in the collection are: askMeAbout, ableToMentor, wantsToLearn, wantsToImprove.
  [Colleagues <IMicrosoftGraphRelatedPerson[]>]: Lists people that also worked on the project.
    [DisplayName <String>]: Name of the person.
    [Relationship <String>]: personRelationship
    [UserPrincipalName <String>]: Email address or reference to person within organization.
  [Detail <IMicrosoftGraphPositionDetail>]: positionDetail
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Company <IMicrosoftGraphCompanyDetail>]: companyDetail
    [Description <String>]: Description of the position in question.
    [EndMonthYear <DateTime?>]: When the position ended.
    [JobTitle <String>]: The title held when in that position.
    [Role <String>]: The role the position entailed.
    [StartMonthYear <DateTime?>]: The start month and year of the position.
    [Summary <String>]: Short summary of the position.
  [DisplayName <String>]: Contains a friendly name for the project.
  [Sponsors <IMicrosoftGraphRelatedPerson[]>]: The Person or people who sponsored the project.
  [ThumbnailUrl <String>]:
 
CLIENT <IMicrosoftGraphCompanyDetail>: companyDetail
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Address <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
    [(Any) <Object>]: This indicates any property can be added to this object.
    [City <String>]: The city.
    [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
    [PostOfficeBox <String>]: The post office box number.
    [PostalCode <String>]: The postal code.
    [State <String>]: The state.
    [Street <String>]: The street.
    [Type <String>]: physicalAddressType
  [Department <String>]: Department Name within a company.
  [DisplayName <String>]: Company name.
  [OfficeLocation <String>]: Office Location of the person referred to.
  [Pronunciation <String>]: Pronunciation guide for the company name.
  [WebUrl <String>]: Link to the company home page.
 
COLLEAGUES <IMicrosoftGraphRelatedPerson[]>: Lists people that also worked on the project.
  [DisplayName <String>]: Name of the person.
  [Relationship <String>]: personRelationship
  [UserPrincipalName <String>]: Email address or reference to person within organization.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
DETAIL <IMicrosoftGraphPositionDetail>: positionDetail
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Company <IMicrosoftGraphCompanyDetail>]: companyDetail
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Address <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
      [(Any) <Object>]: This indicates any property can be added to this object.
      [City <String>]: The city.
      [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
      [PostOfficeBox <String>]: The post office box number.
      [PostalCode <String>]: The postal code.
      [State <String>]: The state.
      [Street <String>]: The street.
      [Type <String>]: physicalAddressType
    [Department <String>]: Department Name within a company.
    [DisplayName <String>]: Company name.
    [OfficeLocation <String>]: Office Location of the person referred to.
    [Pronunciation <String>]: Pronunciation guide for the company name.
    [WebUrl <String>]: Link to the company home page.
  [Description <String>]: Description of the position in question.
  [EndMonthYear <DateTime?>]: When the position ended.
  [JobTitle <String>]: The title held when in that position.
  [Role <String>]: The role the position entailed.
  [StartMonthYear <DateTime?>]: The start month and year of the position.
  [Summary <String>]: Short summary of the position.
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
 
SPONSORS <IMicrosoftGraphRelatedPerson[]>: The Person or people who sponsored the project.
  [DisplayName <String>]: Name of the person.
  [Relationship <String>]: personRelationship
  [UserPrincipalName <String>]: Email address or reference to person within organization.
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/new-mguserprofileproject
#>

function New-MgUserProfileProject {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphProjectParticipation])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Contains categories a user has associated with the project (for example, digital transformation, oil rig).
    ${Categories},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Contains experience scenario tags a user has associated with the interest.
    # Allowed values in the collection are: askMeAbout, ableToMentor, wantsToLearn, wantsToImprove.
    ${CollaborationTags},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphRelatedPerson[]]
    # Lists people that also worked on the project.
    # To construct, see NOTES section for COLLEAGUES properties and create a hash table.
    ${Colleagues},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains a friendly name for the project.
    ${DisplayName},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphRelatedPerson[]]
    # The Person or people who sponsored the project.
    # To construct, see NOTES section for SPONSORS properties and create a hash table.
    ${Sponsors},

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

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\New-MgUserProfileProject_Create';
            CreateExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileProject_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.People.private\New-MgUserProfileProject_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileProject_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
Represents details of any publications a user has added to their profile.
.Description
Represents details of any publications a user has added to their profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemPublication
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemPublication
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IMicrosoftGraphItemPublication>: itemPublication
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Description <String>]: Description of the publication.
  [DisplayName <String>]: Title of the publication.
  [PublishedDate <DateTime?>]: The date that the publication was published.
  [Publisher <String>]: Publication or publisher for the publication.
  [ThumbnailUrl <String>]: URL referencing a thumbnail of the publication.
  [WebUrl <String>]: URL referencing the publication.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/new-mguserprofilepublication
#>

function New-MgUserProfilePublication {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemPublication])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

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

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

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

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

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The date that the publication was published.
    ${PublishedDate},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Publication or publisher for the publication.
    ${Publisher},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # URL referencing a thumbnail of the publication.
    ${ThumbnailUrl},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # URL referencing the publication.
    ${WebUrl},

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\New-MgUserProfilePublication_Create';
            CreateExpanded = 'Microsoft.Graph.People.private\New-MgUserProfilePublication_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.People.private\New-MgUserProfilePublication_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.People.private\New-MgUserProfilePublication_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
Represents detailed information about skills associated with a user in various services.
.Description
Represents detailed information about skills associated with a user in various services.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSkillProficiency
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSkillProficiency
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IMicrosoftGraphSkillProficiency>: skillProficiency
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Categories <String[]>]: Contains categories a user has associated with the skill (for example, personal, professional, hobby).
  [CollaborationTags <String[]>]: Contains experience scenario tags a user has associated with the interest. Allowed values in the collection are: askMeAbout, ableToMentor, wantsToLearn, wantsToImprove.
  [DisplayName <String>]: Contains a friendly name for the skill.
  [Proficiency <String>]: skillProficiencyLevel
  [ThumbnailUrl <String>]:
  [WebUrl <String>]: Contains a link to an information source about the skill.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/new-mguserprofileskill
#>

function New-MgUserProfileSkill {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSkillProficiency])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Contains categories a user has associated with the skill (for example, personal, professional, hobby).
    ${Categories},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Contains experience scenario tags a user has associated with the interest.
    # Allowed values in the collection are: askMeAbout, ableToMentor, wantsToLearn, wantsToImprove.
    ${CollaborationTags},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains a friendly name for the skill.
    ${DisplayName},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains a link to an information source about the skill.
    ${WebUrl},

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\New-MgUserProfileSkill_Create';
            CreateExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileSkill_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.People.private\New-MgUserProfileSkill_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileSkill_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
Represents web accounts the user has indicated they use or has added to their user profile.
.Description
Represents web accounts the user has indicated they use or has added to their user profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWebAccount
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWebAccount
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IMicrosoftGraphWebAccount>: webAccount
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Description <String>]: Contains the description the user has provided for the account on the service being referenced.
  [Service <IMicrosoftGraphServiceInformation>]: serviceInformation
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Name <String>]: The name of the cloud service (for example, Twitter, Instagram).
    [WebUrl <String>]: Contains the URL for the service being referenced.
  [StatusMessage <String>]: Contains a status message from the cloud service if provided or synchronized.
  [ThumbnailUrl <String>]:
  [UserId <String>]: The user name displayed for the webaccount.
  [WebUrl <String>]: Contains a link to the user's profile on the cloud service if one exists.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SERVICE <IMicrosoftGraphServiceInformation>: serviceInformation
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Name <String>]: The name of the cloud service (for example, Twitter, Instagram).
  [WebUrl <String>]: Contains the URL for the service being referenced.
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/new-mguserprofilewebaccount
#>

function New-MgUserProfileWebAccount {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWebAccount])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

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

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains the description the user has provided for the account on the service being referenced.
    ${Description},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains a status message from the cloud service if provided or synchronized.
    ${StatusMessage},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The user name displayed for the webaccount.
    ${UserId1},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains a link to the user's profile on the cloud service if one exists.
    ${WebUrl},

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\New-MgUserProfileWebAccount_Create';
            CreateExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileWebAccount_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.People.private\New-MgUserProfileWebAccount_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileWebAccount_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
Represents detailed information about websites associated with a user in various services.
.Description
Represents detailed information about websites associated with a user in various services.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonWebsite
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.Outputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonWebsite
.Notes
COMPLEX PARAMETER PROPERTIES
 
To 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 <IMicrosoftGraphPersonWebsite>: personWebsite
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Categories <String[]>]: Contains categories a user has associated with the website (for example, personal, recipes).
  [Description <String>]: Contains a description of the website.
  [DisplayName <String>]: Contains a friendly name for the website.
  [ThumbnailUrl <String>]:
  [WebUrl <String>]: Contains a link to the website itself.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/new-mguserprofilewebsite
#>

function New-MgUserProfileWebsite {
[OutputType([Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonWebsite])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

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

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Contains categories a user has associated with the website (for example, personal, recipes).
    ${Categories},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains a friendly name for the website.
    ${DisplayName},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains a link to the website itself.
    ${WebUrl},

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\New-MgUserProfileWebsite_Create';
            CreateExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileWebsite_CreateExpanded';
            CreateViaIdentity = 'Microsoft.Graph.People.private\New-MgUserProfileWebsite_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Microsoft.Graph.People.private\New-MgUserProfileWebsite_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
People that are relevant to the user.
Read-only.
Nullable.
.Description
People that are relevant to the user.
Read-only.
Nullable.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/remove-mguserperson
#>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<#
.Synopsis
Delete navigation property account for users
.Description
Delete navigation property account for users
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/remove-mguserprofileaccount
#>

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

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

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.People.private\Remove-MgUserProfileAccount_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.People.private\Remove-MgUserProfileAccount_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
Represents details of addresses associated with the user.
.Description
Represents details of addresses associated with the user.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/remove-mguserprofileaddress
#>

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

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

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.People.private\Remove-MgUserProfileAddress_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.People.private\Remove-MgUserProfileAddress_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
Represents the details of meaningful dates associated with a person.
.Description
Represents the details of meaningful dates associated with a person.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/remove-mguserprofileanniversary
#>

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

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

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.People.private\Remove-MgUserProfileAnniversary_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.People.private\Remove-MgUserProfileAnniversary_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
Represents the details of awards or honors associated with a person.
.Description
Represents the details of awards or honors associated with a person.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/remove-mguserprofileaward
#>

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

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

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.People.private\Remove-MgUserProfileAward_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.People.private\Remove-MgUserProfileAward_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
Represents the details of certifications associated with a person.
.Description
Represents the details of certifications associated with a person.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/remove-mguserprofilecertification
#>

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

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

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.People.private\Remove-MgUserProfileCertification_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.People.private\Remove-MgUserProfileCertification_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
Represents data that a user has supplied related to undergraduate, graduate, postgraduate or other educational activities.
.Description
Represents data that a user has supplied related to undergraduate, graduate, postgraduate or other educational activities.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/remove-mguserprofileeducationalactivity
#>

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

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

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.People.private\Remove-MgUserProfileEducationalActivity_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.People.private\Remove-MgUserProfileEducationalActivity_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
Represents detailed information about email addresses associated with the user.
.Description
Represents detailed information about email addresses associated with the user.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/remove-mguserprofileemail
#>

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

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

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.People.private\Remove-MgUserProfileEmail_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.People.private\Remove-MgUserProfileEmail_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
Provides detailed information about interests the user has associated with themselves in various services.
.Description
Provides detailed information about interests the user has associated with themselves in various services.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/remove-mguserprofileinterest
#>

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

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

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.People.private\Remove-MgUserProfileInterest_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.People.private\Remove-MgUserProfileInterest_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
Represents detailed information about languages that a user has added to their profile.
.Description
Represents detailed information about languages that a user has added to their profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/remove-mguserprofilelanguage
#>

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

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

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.People.private\Remove-MgUserProfileLanguage_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.People.private\Remove-MgUserProfileLanguage_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
Represents the names a user has added to their profile.
.Description
Represents the names a user has added to their profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/remove-mguserprofilename
#>

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

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

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.People.private\Remove-MgUserProfileName_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.People.private\Remove-MgUserProfileName_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
Represents notes that a user has added to their profile.
.Description
Represents notes that a user has added to their profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/remove-mguserprofilenote
#>

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

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

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.People.private\Remove-MgUserProfileNote_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.People.private\Remove-MgUserProfileNote_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
Represents patents that a user has added to their profile.
.Description
Represents patents that a user has added to their profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/remove-mguserprofilepatent
#>

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

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

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.People.private\Remove-MgUserProfilePatent_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.People.private\Remove-MgUserProfilePatent_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
Represents detailed information about phone numbers associated with a user in various services.
.Description
Represents detailed information about phone numbers associated with a user in various services.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/remove-mguserprofilephone
#>

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

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

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.People.private\Remove-MgUserProfilePhone_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.People.private\Remove-MgUserProfilePhone_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
Represents detailed information about work positions associated with a user's profile.
.Description
Represents detailed information about work positions associated with a user's profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/remove-mguserprofileposition
#>

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

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

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.People.private\Remove-MgUserProfilePosition_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.People.private\Remove-MgUserProfilePosition_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
Represents detailed information about projects associated with a user.
.Description
Represents detailed information about projects associated with a user.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/remove-mguserprofileproject
#>

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

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

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.People.private\Remove-MgUserProfileProject_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.People.private\Remove-MgUserProfileProject_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
Represents details of any publications a user has added to their profile.
.Description
Represents details of any publications a user has added to their profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/remove-mguserprofilepublication
#>

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

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

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.People.private\Remove-MgUserProfilePublication_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.People.private\Remove-MgUserProfilePublication_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
Represents detailed information about skills associated with a user in various services.
.Description
Represents detailed information about skills associated with a user in various services.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/remove-mguserprofileskill
#>

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

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

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.People.private\Remove-MgUserProfileSkill_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.People.private\Remove-MgUserProfileSkill_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
Represents web accounts the user has indicated they use or has added to their user profile.
.Description
Represents web accounts the user has indicated they use or has added to their user profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/remove-mguserprofilewebaccount
#>

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

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

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.People.private\Remove-MgUserProfileWebAccount_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.People.private\Remove-MgUserProfileWebAccount_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
Represents detailed information about websites associated with a user in various services.
.Description
Represents detailed information about websites associated with a user in various services.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/remove-mguserprofilewebsite
#>

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

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

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.People.private\Remove-MgUserProfileWebsite_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.People.private\Remove-MgUserProfileWebsite_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
Represents properties that are descriptive of a user in a tenant.
.Description
Represents properties that are descriptive of a user in a tenant.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/remove-mguserprofile
#>

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

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.People.private\Remove-MgUserProfile_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.People.private\Remove-MgUserProfile_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
People that are relevant to the user.
Read-only.
Nullable.
.Description
People that are relevant to the user.
Read-only.
Nullable.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPerson1
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IMicrosoftGraphPerson1>: person
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [Birthday <String>]: The person's birthday.
  [CompanyName <String>]: The name of the person's company.
  [Department <String>]: The person's department.
  [DisplayName <String>]: The person's display name.
  [EmailAddresses <IMicrosoftGraphRankedEmailAddress[]>]: The person's email addresses.
    [Address <String>]: The email address.
    [Rank <Double?>]: The rank of the email address. A rank is used as a sort key, in relation to the other returned results. A higher rank value corresponds to a more relevant result. Relevance is determined by communication, collaboration, and business relationship signals.
  [GivenName <String>]: The person's given name.
  [IsFavorite <Boolean?>]: true if the user has flagged this person as a favorite.
  [MailboxType <String>]: The type of mailbox that is represented by the person's email address.
  [OfficeLocation <String>]: The location of the person's office.
  [PersonNotes <String>]: Free-form notes that the user has taken about this person.
  [PersonType <String>]: The type of person.
  [Phones <IMicrosoftGraphPhone1[]>]: The person's phone numbers.
    [Number <String>]: The phone number.
    [Type <String>]: phoneType
  [PostalAddresses <IMicrosoftGraphLocation1[]>]: The person's addresses.
    [Address <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
      [(Any) <Object>]: This indicates any property can be added to this object.
      [City <String>]: The city.
      [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
      [PostOfficeBox <String>]: The post office box number.
      [PostalCode <String>]: The postal code.
      [State <String>]: The state.
      [Street <String>]: The street.
      [Type <String>]: physicalAddressType
    [Coordinates <IMicrosoftGraphOutlookGeoCoordinates>]: outlookGeoCoordinates
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Accuracy <Double?>]: The accuracy of the latitude and longitude. As an example, the accuracy can be measured in meters, such as the latitude and longitude are accurate to within 50 meters.
      [Altitude <Double?>]: The altitude of the location.
      [AltitudeAccuracy <Double?>]: The accuracy of the altitude.
      [Latitude <Double?>]: The latitude of the location.
      [Longitude <Double?>]: The longitude of the location.
    [DisplayName <String>]: The name associated with the location.
    [LocationEmailAddress <String>]: Optional email address of the location.
    [LocationType <String>]: locationType
    [LocationUri <String>]: Optional URI representing the location.
    [UniqueId <String>]: For internal use only.
    [UniqueIdType <String>]: locationUniqueIdType
  [Profession <String>]: The person's profession.
  [Sources <IMicrosoftGraphPersonDataSource[]>]: The sources the user data comes from, for example Directory or Outlook Contacts.
    [Type <String>]: The type of data source.
  [Surname <String>]: The person's surname.
  [Title <String>]: The person's title.
  [UserPrincipalName <String>]: The user principal name (UPN) of the person. The UPN is an Internet-style login name for the person based on the Internet standard RFC 822. By convention, this should map to the person's email name. The general format is alias@domain.
  [Websites <IMicrosoftGraphWebsite[]>]: The person's websites.
    [Address <String>]: The URL of the website.
    [DisplayName <String>]: The display name of the web site.
    [Type <String>]: websiteType
  [YomiCompany <String>]: The phonetic Japanese name of the person's company.
 
EMAILADDRESSES <IMicrosoftGraphRankedEmailAddress[]>: The person's email addresses.
  [Address <String>]: The email address.
  [Rank <Double?>]: The rank of the email address. A rank is used as a sort key, in relation to the other returned results. A higher rank value corresponds to a more relevant result. Relevance is determined by communication, collaboration, and business relationship signals.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
PHONES <IMicrosoftGraphPhone1[]>: The person's phone numbers.
  [Number <String>]: The phone number.
  [Type <String>]: phoneType
 
POSTALADDRESSES <IMicrosoftGraphLocation1[]>: The person's addresses.
  [Address <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
    [(Any) <Object>]: This indicates any property can be added to this object.
    [City <String>]: The city.
    [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
    [PostOfficeBox <String>]: The post office box number.
    [PostalCode <String>]: The postal code.
    [State <String>]: The state.
    [Street <String>]: The street.
    [Type <String>]: physicalAddressType
  [Coordinates <IMicrosoftGraphOutlookGeoCoordinates>]: outlookGeoCoordinates
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Accuracy <Double?>]: The accuracy of the latitude and longitude. As an example, the accuracy can be measured in meters, such as the latitude and longitude are accurate to within 50 meters.
    [Altitude <Double?>]: The altitude of the location.
    [AltitudeAccuracy <Double?>]: The accuracy of the altitude.
    [Latitude <Double?>]: The latitude of the location.
    [Longitude <Double?>]: The longitude of the location.
  [DisplayName <String>]: The name associated with the location.
  [LocationEmailAddress <String>]: Optional email address of the location.
  [LocationType <String>]: locationType
  [LocationUri <String>]: Optional URI representing the location.
  [UniqueId <String>]: For internal use only.
  [UniqueIdType <String>]: locationUniqueIdType
 
SOURCES <IMicrosoftGraphPersonDataSource[]>: The sources the user data comes from, for example Directory or Outlook Contacts.
  [Type <String>]: The type of data source.
 
WEBSITES <IMicrosoftGraphWebsite[]>: The person's websites.
  [Address <String>]: The URL of the website.
  [DisplayName <String>]: The display name of the web site.
  [Type <String>]: websiteType
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/update-mguserperson
#>

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

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

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The person's birthday.
    ${Birthday},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The name of the person's company.
    ${CompanyName},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The person's department.
    ${Department},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The person's display name.
    ${DisplayName},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphRankedEmailAddress[]]
    # The person's email addresses.
    # To construct, see NOTES section for EMAILADDRESSES properties and create a hash table.
    ${EmailAddresses},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The person's given name.
    ${GivenName},

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

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # true if the user has flagged this person as a favorite.
    ${IsFavorite},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The type of mailbox that is represented by the person's email address.
    ${MailboxType},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The location of the person's office.
    ${OfficeLocation},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Free-form notes that the user has taken about this person.
    ${PersonNotes},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The type of person.
    ${PersonType},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPhone1[]]
    # The person's phone numbers.
    # To construct, see NOTES section for PHONES properties and create a hash table.
    ${Phones},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLocation1[]]
    # The person's addresses.
    # To construct, see NOTES section for POSTALADDRESSES properties and create a hash table.
    ${PostalAddresses},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The person's profession.
    ${Profession},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonDataSource[]]
    # The sources the user data comes from, for example Directory or Outlook Contacts.
    # To construct, see NOTES section for SOURCES properties and create a hash table.
    ${Sources},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The person's surname.
    ${Surname},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The person's title.
    ${Title},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The user principal name (UPN) of the person.
    # The UPN is an Internet-style login name for the person based on the Internet standard RFC 822.
    # By convention, this should map to the person's email name.
    # The general format is alias@domain.
    ${UserPrincipalName},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWebsite[]]
    # The person's websites.
    # To construct, see NOTES section for WEBSITES properties and create a hash table.
    ${Websites},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The phonetic Japanese name of the person's company.
    ${YomiCompany},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Update1 = 'Microsoft.Graph.People.private\Update-MgUserPerson_Update1';
            UpdateExpanded1 = 'Microsoft.Graph.People.private\Update-MgUserPerson_UpdateExpanded1';
            UpdateViaIdentity1 = 'Microsoft.Graph.People.private\Update-MgUserPerson_UpdateViaIdentity1';
            UpdateViaIdentityExpanded1 = 'Microsoft.Graph.People.private\Update-MgUserPerson_UpdateViaIdentityExpanded1';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

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

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

<#
.Synopsis
Update the navigation property account in users
.Description
Update the navigation property account in users
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphUserAccountInformation
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IMicrosoftGraphUserAccountInformation>: userAccountInformation
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [AgeGroup <String>]: Shows the age group of user. Allowed values null, minor, notAdult and adult are generated by the directory and cannot be changed.
  [CountryCode <String>]: Contains the two-character country code associated with the users account.
  [PreferredLanguageTag <IMicrosoftGraphLocaleInfo>]: localeInfo
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: A name representing the user's locale in natural language, for example, 'English (United States)'.
    [Locale <String>]: A locale representation for the user, which includes the user's preferred language and country/region. For example, 'en-us'. The language component follows 2-letter codes as defined in ISO 639-1, and the country component follows 2-letter codes as defined in ISO 3166-1 alpha-2.
  [UserPrincipalName <String>]: The user principal name (UPN) of the user associated with the account.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
PREFERREDLANGUAGETAG <IMicrosoftGraphLocaleInfo>: localeInfo
  [(Any) <Object>]: This indicates any property can be added to this object.
  [DisplayName <String>]: A name representing the user's locale in natural language, for example, 'English (United States)'.
  [Locale <String>]: A locale representation for the user, which includes the user's preferred language and country/region. For example, 'en-us'. The language component follows 2-letter codes as defined in ISO 639-1, and the country component follows 2-letter codes as defined in ISO 3166-1 alpha-2.
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/update-mguserprofileaccount
#>

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

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Shows the age group of user.
    # Allowed values null, minor, notAdult and adult are generated by the directory and cannot be changed.
    ${AgeGroup},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains the two-character country code associated with the users account.
    ${CountryCode},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The user principal name (UPN) of the user associated with the account.
    ${UserPrincipalName},

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

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

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

    [Parameter()]
    [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.People.private\Update-MgUserProfileAccount_Update';
            UpdateExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileAccount_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.People.private\Update-MgUserProfileAccount_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileAccount_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
Represents details of addresses associated with the user.
.Description
Represents details of addresses associated with the user.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemAddress
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IMicrosoftGraphItemAddress>: itemAddress
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Detail <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
    [(Any) <Object>]: This indicates any property can be added to this object.
    [City <String>]: The city.
    [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
    [PostOfficeBox <String>]: The post office box number.
    [PostalCode <String>]: The postal code.
    [State <String>]: The state.
    [Street <String>]: The street.
    [Type <String>]: physicalAddressType
  [DisplayName <String>]: Friendly name the user has assigned to this address.
  [GeoCoordinates <IMicrosoftGraphGeoCoordinates>]: geoCoordinates
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Altitude <Double?>]: Optional. The altitude (height), in feet, above sea level for the item. Read-only.
    [Latitude <Double?>]: Optional. The latitude, in decimal, for the item. Read-only.
    [Longitude <Double?>]: Optional. The longitude, in decimal, for the item. Read-only.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
DETAIL <IMicrosoftGraphPhysicalAddress1>: physicalAddress
  [(Any) <Object>]: This indicates any property can be added to this object.
  [City <String>]: The city.
  [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
  [PostOfficeBox <String>]: The post office box number.
  [PostalCode <String>]: The postal code.
  [State <String>]: The state.
  [Street <String>]: The street.
  [Type <String>]: physicalAddressType
 
GEOCOORDINATES <IMicrosoftGraphGeoCoordinates>: geoCoordinates
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Altitude <Double?>]: Optional. The altitude (height), in feet, above sea level for the item. Read-only.
  [Latitude <Double?>]: Optional. The latitude, in decimal, for the item. Read-only.
  [Longitude <Double?>]: Optional. The longitude, in decimal, for the item. Read-only.
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/update-mguserprofileaddress
#>

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

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

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

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Friendly name the user has assigned to this address.
    ${DisplayName},

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

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\Update-MgUserProfileAddress_Update';
            UpdateExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileAddress_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.People.private\Update-MgUserProfileAddress_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileAddress_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
Represents the details of meaningful dates associated with a person.
.Description
Represents the details of meaningful dates associated with a person.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonAnnualEvent
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IMicrosoftGraphPersonAnnualEvent>: personAnnualEvent
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Date <DateTime?>]:
  [DisplayName <String>]:
  [Type <String>]: personAnnualEventType
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/update-mguserprofileanniversary
#>

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

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

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

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

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

    [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')]
    [System.String]
    # Read-only.
    ${Id},

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\Update-MgUserProfileAnniversary_Update';
            UpdateExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileAnniversary_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.People.private\Update-MgUserProfileAnniversary_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileAnniversary_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
Represents the details of awards or honors associated with a person.
.Description
Represents the details of awards or honors associated with a person.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonAward
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IMicrosoftGraphPersonAward>: personAward
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Description <String>]: Descpription of the award or honor.
  [DisplayName <String>]: Name of the award or honor.
  [IssuedDate <DateTime?>]: The date that the award or honor was granted.
  [IssuingAuthority <String>]: Authority which granted the award or honor.
  [ThumbnailUrl <String>]: URL referencing a thumbnail of the award or honor.
  [WebUrl <String>]: URL referencing the award or honor.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/update-mguserprofileaward
#>

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

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

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

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Descpription of the award or honor.
    ${Description},

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

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The date that the award or honor was granted.
    ${IssuedDate},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Authority which granted the award or honor.
    ${IssuingAuthority},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # URL referencing a thumbnail of the award or honor.
    ${ThumbnailUrl},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # URL referencing the award or honor.
    ${WebUrl},

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\Update-MgUserProfileAward_Update';
            UpdateExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileAward_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.People.private\Update-MgUserProfileAward_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileAward_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
Represents the details of certifications associated with a person.
.Description
Represents the details of certifications associated with a person.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonCertification
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IMicrosoftGraphPersonCertification>: personCertification
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [CertificationId <String>]: The referenceable identifier for the certification.
  [Description <String>]: Description of the certification.
  [DisplayName <String>]: Title of the certification.
  [EndDate <DateTime?>]: The date that the certification expires.
  [IssuedDate <DateTime?>]: The date that the certification was issued.
  [IssuingAuthority <String>]: Authority which granted the certification.
  [IssuingCompany <String>]: Company which granted the certification.
  [StartDate <DateTime?>]: The date that the certification became valid.
  [ThumbnailUrl <String>]: URL referencing a thumbnail of the certification.
  [WebUrl <String>]: URL referencing the certification.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/update-mguserprofilecertification
#>

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

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

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The referenceable identifier for the certification.
    ${CertificationId},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The date that the certification expires.
    ${EndDate},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The date that the certification was issued.
    ${IssuedDate},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Authority which granted the certification.
    ${IssuingAuthority},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Company which granted the certification.
    ${IssuingCompany},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The date that the certification became valid.
    ${StartDate},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # URL referencing a thumbnail of the certification.
    ${ThumbnailUrl},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # URL referencing the certification.
    ${WebUrl},

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\Update-MgUserProfileCertification_Update';
            UpdateExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileCertification_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.People.private\Update-MgUserProfileCertification_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileCertification_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
Represents data that a user has supplied related to undergraduate, graduate, postgraduate or other educational activities.
.Description
Represents data that a user has supplied related to undergraduate, graduate, postgraduate or other educational activities.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphEducationalActivity
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IMicrosoftGraphEducationalActivity>: educationalActivity
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [CompletionMonthYear <DateTime?>]: The month and year the user graduated or completed the activity.
  [EndMonthYear <DateTime?>]: The month and year the user completed the educational activity referenced.
  [Institution <IMicrosoftGraphInstitutionData>]: institutionData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Description <String>]: Short description of the institution the user studied at.
    [DisplayName <String>]: Name of the institution the user studied at.
    [Location <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
      [(Any) <Object>]: This indicates any property can be added to this object.
      [City <String>]: The city.
      [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
      [PostOfficeBox <String>]: The post office box number.
      [PostalCode <String>]: The postal code.
      [State <String>]: The state.
      [Street <String>]: The street.
      [Type <String>]: physicalAddressType
    [WebUrl <String>]: Link to the institution or department homepage.
  [Program <IMicrosoftGraphEducationalActivityDetail>]: educationalActivityDetail
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Abbreviation <String>]: Shortened name of the degree or program (example: PhD, MBA)
    [Activities <String[]>]: Extracurricular activities undertaken alongside the program.
    [Awards <String[]>]: Any awards or honors associated with the program.
    [Description <String>]: Short description of the program provided by the user.
    [DisplayName <String>]: Long-form name of the program that the user has provided.
    [FieldsOfStudy <String[]>]: Majors and minors associated with the program. (if applicable)
    [Grade <String>]: The final grade, class, GPA or score.
    [Notes <String>]: Additional notes the user has provided.
    [WebUrl <String>]: Link to the degree or program page.
  [StartMonthYear <DateTime?>]: The month and year the user commenced the activity referenced.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
INSTITUTION <IMicrosoftGraphInstitutionData>: institutionData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Description <String>]: Short description of the institution the user studied at.
  [DisplayName <String>]: Name of the institution the user studied at.
  [Location <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
    [(Any) <Object>]: This indicates any property can be added to this object.
    [City <String>]: The city.
    [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
    [PostOfficeBox <String>]: The post office box number.
    [PostalCode <String>]: The postal code.
    [State <String>]: The state.
    [Street <String>]: The street.
    [Type <String>]: physicalAddressType
  [WebUrl <String>]: Link to the institution or department homepage.
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
PROGRAM <IMicrosoftGraphEducationalActivityDetail>: educationalActivityDetail
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Abbreviation <String>]: Shortened name of the degree or program (example: PhD, MBA)
  [Activities <String[]>]: Extracurricular activities undertaken alongside the program.
  [Awards <String[]>]: Any awards or honors associated with the program.
  [Description <String>]: Short description of the program provided by the user.
  [DisplayName <String>]: Long-form name of the program that the user has provided.
  [FieldsOfStudy <String[]>]: Majors and minors associated with the program. (if applicable)
  [Grade <String>]: The final grade, class, GPA or score.
  [Notes <String>]: Additional notes the user has provided.
  [WebUrl <String>]: Link to the degree or program page.
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/update-mguserprofileeducationalactivity
#>

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

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

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The month and year the user graduated or completed the activity.
    ${CompletionMonthYear},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The month and year the user completed the educational activity referenced.
    ${EndMonthYear},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The month and year the user commenced the activity referenced.
    ${StartMonthYear},

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\Update-MgUserProfileEducationalActivity_Update';
            UpdateExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileEducationalActivity_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.People.private\Update-MgUserProfileEducationalActivity_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileEducationalActivity_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
Represents detailed information about email addresses associated with the user.
.Description
Represents detailed information about email addresses associated with the user.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemEmail
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IMicrosoftGraphItemEmail>: itemEmail
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Address <String>]: The email address itself.
  [DisplayName <String>]: The name or label a user has associated with a particular email address.
  [Type <String>]: emailType
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/update-mguserprofileemail
#>

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

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The email address itself.
    ${Address},

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The name or label a user has associated with a particular email address.
    ${DisplayName},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\Update-MgUserProfileEmail_Update';
            UpdateExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileEmail_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.People.private\Update-MgUserProfileEmail_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileEmail_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
Provides detailed information about interests the user has associated with themselves in various services.
.Description
Provides detailed information about interests the user has associated with themselves in various services.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonInterest
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IMicrosoftGraphPersonInterest>: personInterest
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Categories <String[]>]: Contains categories a user has associated with the interest (for example, personal, recipies).
  [CollaborationTags <String[]>]: Contains experience scenario tags a user has associated with the interest. Allowed values in the collection are: askMeAbout, ableToMentor, wantsToLearn, wantsToImprove.
  [Description <String>]: Contains a description of the interest.
  [DisplayName <String>]: Contains a friendly name for the interest.
  [ThumbnailUrl <String>]:
  [WebUrl <String>]: Contains a link to a web page or resource about the interest.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/update-mguserprofileinterest
#>

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

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

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Contains categories a user has associated with the interest (for example, personal, recipies).
    ${Categories},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Contains experience scenario tags a user has associated with the interest.
    # Allowed values in the collection are: askMeAbout, ableToMentor, wantsToLearn, wantsToImprove.
    ${CollaborationTags},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains a description of the interest.
    ${Description},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains a friendly name for the interest.
    ${DisplayName},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains a link to a web page or resource about the interest.
    ${WebUrl},

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\Update-MgUserProfileInterest_Update';
            UpdateExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileInterest_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.People.private\Update-MgUserProfileInterest_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileInterest_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
Represents detailed information about languages that a user has added to their profile.
.Description
Represents detailed information about languages that a user has added to their profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLanguageProficiency
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IMicrosoftGraphLanguageProficiency>: languageProficiency
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [DisplayName <String>]: Contains the long-form name for the language.
  [Proficiency <String>]: languageProficiencyLevel
  [Reading <String>]: languageProficiencyLevel
  [Spoken <String>]: languageProficiencyLevel
  [Tag <String>]: Contains the four-character BCP47 name for the language (en-US, no-NB, en-AU).
  [ThumbnailUrl <String>]:
  [Written <String>]: languageProficiencyLevel
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/update-mguserprofilelanguage
#>

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

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

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

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains the long-form name for the language.
    ${DisplayName},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains the four-character BCP47 name for the language (en-US, no-NB, en-AU).
    ${Tag},

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

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

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\Update-MgUserProfileLanguage_Update';
            UpdateExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileLanguage_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.People.private\Update-MgUserProfileLanguage_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileLanguage_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
Represents the names a user has added to their profile.
.Description
Represents the names a user has added to their profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonName
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IMicrosoftGraphPersonName>: personName
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [DisplayName <String>]: Provides an ordered rendering of firstName and lastName depending on the locale of the user or their device.
  [First <String>]: First name of the user.
  [Initials <String>]: Initials of the user.
  [LanguageTag <String>]: Contains the name for the language (en-US, no-NB, en-AU) following IETF BCP47 format.
  [Last <String>]: Last name of the user.
  [Maiden <String>]: Maiden name of the user.
  [Middle <String>]: Middle name of the user.
  [Nickname <String>]: Nickname of the user.
  [Pronunciation <IMicrosoftGraphPersonNamePronounciation>]: personNamePronounciation
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]:
    [First <String>]:
    [Last <String>]:
    [Maiden <String>]:
    [Middle <String>]:
  [Suffix <String>]: Designators used after the users name (eg: PhD.)
  [Title <String>]: Honorifics used to prefix a users name (eg: Dr, Sir, Madam, Mrs.)
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
PRONUNCIATION <IMicrosoftGraphPersonNamePronounciation>: personNamePronounciation
  [(Any) <Object>]: This indicates any property can be added to this object.
  [DisplayName <String>]:
  [First <String>]:
  [Last <String>]:
  [Maiden <String>]:
  [Middle <String>]:
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/update-mguserprofilename
#>

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

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

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

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Provides an ordered rendering of firstName and lastName depending on the locale of the user or their device.
    ${DisplayName},

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

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains the name for the language (en-US, no-NB, en-AU) following IETF BCP47 format.
    ${LanguageTag},

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Designators used after the users name (eg: PhD.)
    ${Suffix},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Honorifics used to prefix a users name (eg: Dr, Sir, Madam, Mrs.)
    ${Title},

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\Update-MgUserProfileName_Update';
            UpdateExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileName_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.People.private\Update-MgUserProfileName_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileName_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
Represents notes that a user has added to their profile.
.Description
Represents notes that a user has added to their profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonAnnotation
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IMicrosoftGraphPersonAnnotation>: personAnnotation
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Detail <IMicrosoftGraphItemBody>]: itemBody
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Content <String>]: The content of the item.
    [ContentType <String>]: bodyType
  [DisplayName <String>]: Contains a friendly name for the note.
  [ThumbnailUrl <String>]:
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
DETAIL <IMicrosoftGraphItemBody>: itemBody
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Content <String>]: The content of the item.
  [ContentType <String>]: bodyType
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/update-mguserprofilenote
#>

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

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

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

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains a friendly name for the note.
    ${DisplayName},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\Update-MgUserProfileNote_Update';
            UpdateExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileNote_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.People.private\Update-MgUserProfileNote_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileNote_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
Represents patents that a user has added to their profile.
.Description
Represents patents that a user has added to their profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemPatent
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IMicrosoftGraphItemPatent>: itemPatent
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Description <String>]: Descpription of the patent or filing.
  [DisplayName <String>]: Title of the patent or filing.
  [IsPending <Boolean?>]: Indicates the patent is pending.
  [IssuedDate <DateTime?>]: The date that the patent was granted.
  [IssuingAuthority <String>]: Authority which granted the patent.
  [Number <String>]: The patent number.
  [WebUrl <String>]: URL referencing the patent or filing.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/update-mguserprofilepatent
#>

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

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

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

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Descpription of the patent or filing.
    ${Description},

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

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Indicates the patent is pending.
    ${IsPending},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The date that the patent was granted.
    ${IssuedDate},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Authority which granted the patent.
    ${IssuingAuthority},

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # URL referencing the patent or filing.
    ${WebUrl},

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

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

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\Update-MgUserProfilePatent_Update';
            UpdateExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfilePatent_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.People.private\Update-MgUserProfilePatent_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfilePatent_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
Represents detailed information about phone numbers associated with a user in various services.
.Description
Represents detailed information about phone numbers associated with a user in various services.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemPhone
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IMicrosoftGraphItemPhone>: itemPhone
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [DisplayName <String>]: Friendly name the user has assigned this phone number.
  [Number <String>]: Phone number provided by the user.
  [Type <String>]: phoneType
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/update-mguserprofilephone
#>

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

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

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

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

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Friendly name the user has assigned this phone number.
    ${DisplayName},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

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

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

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Phone number provided by the user.
    ${Number},

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

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

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [Microsoft.Graph.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\Update-MgUserProfilePhone_Update';
            UpdateExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfilePhone_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.People.private\Update-MgUserProfilePhone_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfilePhone_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
Represents detailed information about work positions associated with a user's profile.
.Description
Represents detailed information about work positions associated with a user's profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWorkPosition
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IMicrosoftGraphWorkPosition>: workPosition
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Categories <String[]>]: Categories that the user has associated with this position.
  [Colleagues <IMicrosoftGraphRelatedPerson[]>]: Colleagues that are associated with this position.
    [DisplayName <String>]: Name of the person.
    [Relationship <String>]: personRelationship
    [UserPrincipalName <String>]: Email address or reference to person within organization.
  [Detail <IMicrosoftGraphPositionDetail>]: positionDetail
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Company <IMicrosoftGraphCompanyDetail>]: companyDetail
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Address <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
        [(Any) <Object>]: This indicates any property can be added to this object.
        [City <String>]: The city.
        [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
        [PostOfficeBox <String>]: The post office box number.
        [PostalCode <String>]: The postal code.
        [State <String>]: The state.
        [Street <String>]: The street.
        [Type <String>]: physicalAddressType
      [Department <String>]: Department Name within a company.
      [DisplayName <String>]: Company name.
      [OfficeLocation <String>]: Office Location of the person referred to.
      [Pronunciation <String>]: Pronunciation guide for the company name.
      [WebUrl <String>]: Link to the company home page.
    [Description <String>]: Description of the position in question.
    [EndMonthYear <DateTime?>]: When the position ended.
    [JobTitle <String>]: The title held when in that position.
    [Role <String>]: The role the position entailed.
    [StartMonthYear <DateTime?>]: The start month and year of the position.
    [Summary <String>]: Short summary of the position.
  [IsCurrent <Boolean?>]: Denotes whether or not the position is current.
  [Manager <IMicrosoftGraphRelatedPerson>]: relatedPerson
 
COLLEAGUES <IMicrosoftGraphRelatedPerson[]>: Colleagues that are associated with this position.
  [DisplayName <String>]: Name of the person.
  [Relationship <String>]: personRelationship
  [UserPrincipalName <String>]: Email address or reference to person within organization.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
DETAIL <IMicrosoftGraphPositionDetail>: positionDetail
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Company <IMicrosoftGraphCompanyDetail>]: companyDetail
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Address <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
      [(Any) <Object>]: This indicates any property can be added to this object.
      [City <String>]: The city.
      [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
      [PostOfficeBox <String>]: The post office box number.
      [PostalCode <String>]: The postal code.
      [State <String>]: The state.
      [Street <String>]: The street.
      [Type <String>]: physicalAddressType
    [Department <String>]: Department Name within a company.
    [DisplayName <String>]: Company name.
    [OfficeLocation <String>]: Office Location of the person referred to.
    [Pronunciation <String>]: Pronunciation guide for the company name.
    [WebUrl <String>]: Link to the company home page.
  [Description <String>]: Description of the position in question.
  [EndMonthYear <DateTime?>]: When the position ended.
  [JobTitle <String>]: The title held when in that position.
  [Role <String>]: The role the position entailed.
  [StartMonthYear <DateTime?>]: The start month and year of the position.
  [Summary <String>]: Short summary of the position.
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
MANAGER <IMicrosoftGraphRelatedPerson>: relatedPerson
  [(Any) <Object>]: This indicates any property can be added to this object.
  [DisplayName <String>]: Name of the person.
  [Relationship <String>]: personRelationship
  [UserPrincipalName <String>]: Email address or reference to person within organization.
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/update-mguserprofileposition
#>

function Update-MgUserProfilePosition {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of workPosition
    ${WorkPositionId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.IMicrosoftGraphWorkPosition]
    # workPosition
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # allowedAudiences
    ${AllowedAudiences},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Categories that the user has associated with this position.
    ${Categories},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphRelatedPerson[]]
    # Colleagues that are associated with this position.
    # To construct, see NOTES section for COLLEAGUES properties and create a hash table.
    ${Colleagues},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphIdentitySet]
    # identitySet
    # To construct, see NOTES section for CREATEDBY properties and create a hash table.
    ${CreatedBy},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPositionDetail]
    # positionDetail
    # To construct, see NOTES section for DETAIL properties and create a hash table.
    ${Detail},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Denotes whether or not the position is current.
    ${IsCurrent},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${IsSearchable},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphIdentitySet]
    # identitySet
    # To construct, see NOTES section for LASTMODIFIEDBY properties and create a hash table.
    ${LastModifiedBy},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphRelatedPerson]
    # relatedPerson
    # To construct, see NOTES section for MANAGER properties and create a hash table.
    ${Manager},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonDataSources]
    # personDataSources
    # To construct, see NOTES section for SOURCE properties and create a hash table.
    ${Source},

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [Microsoft.Graph.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\Update-MgUserProfilePosition_Update';
            UpdateExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfilePosition_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.People.private\Update-MgUserProfilePosition_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfilePosition_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
Represents detailed information about projects associated with a user.
.Description
Represents detailed information about projects associated with a user.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphProjectParticipation
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IMicrosoftGraphProjectParticipation>: projectParticipation
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Categories <String[]>]: Contains categories a user has associated with the project (for example, digital transformation, oil rig).
  [Client <IMicrosoftGraphCompanyDetail>]: companyDetail
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Address <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
      [(Any) <Object>]: This indicates any property can be added to this object.
      [City <String>]: The city.
      [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
      [PostOfficeBox <String>]: The post office box number.
      [PostalCode <String>]: The postal code.
      [State <String>]: The state.
      [Street <String>]: The street.
      [Type <String>]: physicalAddressType
    [Department <String>]: Department Name within a company.
    [DisplayName <String>]: Company name.
    [OfficeLocation <String>]: Office Location of the person referred to.
    [Pronunciation <String>]: Pronunciation guide for the company name.
    [WebUrl <String>]: Link to the company home page.
  [CollaborationTags <String[]>]: Contains experience scenario tags a user has associated with the interest. Allowed values in the collection are: askMeAbout, ableToMentor, wantsToLearn, wantsToImprove.
  [Colleagues <IMicrosoftGraphRelatedPerson[]>]: Lists people that also worked on the project.
    [DisplayName <String>]: Name of the person.
    [Relationship <String>]: personRelationship
    [UserPrincipalName <String>]: Email address or reference to person within organization.
  [Detail <IMicrosoftGraphPositionDetail>]: positionDetail
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Company <IMicrosoftGraphCompanyDetail>]: companyDetail
    [Description <String>]: Description of the position in question.
    [EndMonthYear <DateTime?>]: When the position ended.
    [JobTitle <String>]: The title held when in that position.
    [Role <String>]: The role the position entailed.
    [StartMonthYear <DateTime?>]: The start month and year of the position.
    [Summary <String>]: Short summary of the position.
  [DisplayName <String>]: Contains a friendly name for the project.
  [Sponsors <IMicrosoftGraphRelatedPerson[]>]: The Person or people who sponsored the project.
  [ThumbnailUrl <String>]:
 
CLIENT <IMicrosoftGraphCompanyDetail>: companyDetail
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Address <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
    [(Any) <Object>]: This indicates any property can be added to this object.
    [City <String>]: The city.
    [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
    [PostOfficeBox <String>]: The post office box number.
    [PostalCode <String>]: The postal code.
    [State <String>]: The state.
    [Street <String>]: The street.
    [Type <String>]: physicalAddressType
  [Department <String>]: Department Name within a company.
  [DisplayName <String>]: Company name.
  [OfficeLocation <String>]: Office Location of the person referred to.
  [Pronunciation <String>]: Pronunciation guide for the company name.
  [WebUrl <String>]: Link to the company home page.
 
COLLEAGUES <IMicrosoftGraphRelatedPerson[]>: Lists people that also worked on the project.
  [DisplayName <String>]: Name of the person.
  [Relationship <String>]: personRelationship
  [UserPrincipalName <String>]: Email address or reference to person within organization.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
DETAIL <IMicrosoftGraphPositionDetail>: positionDetail
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Company <IMicrosoftGraphCompanyDetail>]: companyDetail
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Address <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
      [(Any) <Object>]: This indicates any property can be added to this object.
      [City <String>]: The city.
      [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
      [PostOfficeBox <String>]: The post office box number.
      [PostalCode <String>]: The postal code.
      [State <String>]: The state.
      [Street <String>]: The street.
      [Type <String>]: physicalAddressType
    [Department <String>]: Department Name within a company.
    [DisplayName <String>]: Company name.
    [OfficeLocation <String>]: Office Location of the person referred to.
    [Pronunciation <String>]: Pronunciation guide for the company name.
    [WebUrl <String>]: Link to the company home page.
  [Description <String>]: Description of the position in question.
  [EndMonthYear <DateTime?>]: When the position ended.
  [JobTitle <String>]: The title held when in that position.
  [Role <String>]: The role the position entailed.
  [StartMonthYear <DateTime?>]: The start month and year of the position.
  [Summary <String>]: Short summary of the position.
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
 
SPONSORS <IMicrosoftGraphRelatedPerson[]>: The Person or people who sponsored the project.
  [DisplayName <String>]: Name of the person.
  [Relationship <String>]: personRelationship
  [UserPrincipalName <String>]: Email address or reference to person within organization.
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/update-mguserprofileproject
#>

function Update-MgUserProfileProject {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of projectParticipation
    ${ProjectParticipationId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.IMicrosoftGraphProjectParticipation]
    # projectParticipation
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # allowedAudiences
    ${AllowedAudiences},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Contains categories a user has associated with the project (for example, digital transformation, oil rig).
    ${Categories},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphCompanyDetail]
    # companyDetail
    # To construct, see NOTES section for CLIENT properties and create a hash table.
    ${Client},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Contains experience scenario tags a user has associated with the interest.
    # Allowed values in the collection are: askMeAbout, ableToMentor, wantsToLearn, wantsToImprove.
    ${CollaborationTags},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphRelatedPerson[]]
    # Lists people that also worked on the project.
    # To construct, see NOTES section for COLLEAGUES properties and create a hash table.
    ${Colleagues},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphIdentitySet]
    # identitySet
    # To construct, see NOTES section for CREATEDBY properties and create a hash table.
    ${CreatedBy},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPositionDetail]
    # positionDetail
    # To construct, see NOTES section for DETAIL properties and create a hash table.
    ${Detail},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains a friendly name for the project.
    ${DisplayName},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${IsSearchable},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphIdentitySet]
    # identitySet
    # To construct, see NOTES section for LASTMODIFIEDBY properties and create a hash table.
    ${LastModifiedBy},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonDataSources]
    # personDataSources
    # To construct, see NOTES section for SOURCE properties and create a hash table.
    ${Source},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphRelatedPerson[]]
    # The Person or people who sponsored the project.
    # To construct, see NOTES section for SPONSORS properties and create a hash table.
    ${Sponsors},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${ThumbnailUrl},

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [Microsoft.Graph.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\Update-MgUserProfileProject_Update';
            UpdateExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileProject_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.People.private\Update-MgUserProfileProject_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileProject_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
Represents details of any publications a user has added to their profile.
.Description
Represents details of any publications a user has added to their profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemPublication
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IMicrosoftGraphItemPublication>: itemPublication
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Description <String>]: Description of the publication.
  [DisplayName <String>]: Title of the publication.
  [PublishedDate <DateTime?>]: The date that the publication was published.
  [Publisher <String>]: Publication or publisher for the publication.
  [ThumbnailUrl <String>]: URL referencing a thumbnail of the publication.
  [WebUrl <String>]: URL referencing the publication.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/update-mguserprofilepublication
#>

function Update-MgUserProfilePublication {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of itemPublication
    ${ItemPublicationId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.IMicrosoftGraphItemPublication]
    # itemPublication
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # allowedAudiences
    ${AllowedAudiences},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphIdentitySet]
    # identitySet
    # To construct, see NOTES section for CREATEDBY properties and create a hash table.
    ${CreatedBy},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Description of the publication.
    ${Description},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Title of the publication.
    ${DisplayName},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${IsSearchable},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphIdentitySet]
    # identitySet
    # To construct, see NOTES section for LASTMODIFIEDBY properties and create a hash table.
    ${LastModifiedBy},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # The date that the publication was published.
    ${PublishedDate},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Publication or publisher for the publication.
    ${Publisher},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonDataSources]
    # personDataSources
    # To construct, see NOTES section for SOURCE properties and create a hash table.
    ${Source},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # URL referencing a thumbnail of the publication.
    ${ThumbnailUrl},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # URL referencing the publication.
    ${WebUrl},

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [Microsoft.Graph.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\Update-MgUserProfilePublication_Update';
            UpdateExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfilePublication_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.People.private\Update-MgUserProfilePublication_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfilePublication_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
Represents detailed information about skills associated with a user in various services.
.Description
Represents detailed information about skills associated with a user in various services.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSkillProficiency
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IMicrosoftGraphSkillProficiency>: skillProficiency
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Categories <String[]>]: Contains categories a user has associated with the skill (for example, personal, professional, hobby).
  [CollaborationTags <String[]>]: Contains experience scenario tags a user has associated with the interest. Allowed values in the collection are: askMeAbout, ableToMentor, wantsToLearn, wantsToImprove.
  [DisplayName <String>]: Contains a friendly name for the skill.
  [Proficiency <String>]: skillProficiencyLevel
  [ThumbnailUrl <String>]:
  [WebUrl <String>]: Contains a link to an information source about the skill.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/update-mguserprofileskill
#>

function Update-MgUserProfileSkill {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of skillProficiency
    ${SkillProficiencyId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.IMicrosoftGraphSkillProficiency]
    # skillProficiency
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # allowedAudiences
    ${AllowedAudiences},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Contains categories a user has associated with the skill (for example, personal, professional, hobby).
    ${Categories},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Contains experience scenario tags a user has associated with the interest.
    # Allowed values in the collection are: askMeAbout, ableToMentor, wantsToLearn, wantsToImprove.
    ${CollaborationTags},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphIdentitySet]
    # identitySet
    # To construct, see NOTES section for CREATEDBY properties and create a hash table.
    ${CreatedBy},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains a friendly name for the skill.
    ${DisplayName},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${IsSearchable},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphIdentitySet]
    # identitySet
    # To construct, see NOTES section for LASTMODIFIEDBY properties and create a hash table.
    ${LastModifiedBy},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # skillProficiencyLevel
    ${Proficiency},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonDataSources]
    # personDataSources
    # To construct, see NOTES section for SOURCE properties and create a hash table.
    ${Source},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${ThumbnailUrl},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains a link to an information source about the skill.
    ${WebUrl},

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [Microsoft.Graph.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\Update-MgUserProfileSkill_Update';
            UpdateExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileSkill_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.People.private\Update-MgUserProfileSkill_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileSkill_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
Represents web accounts the user has indicated they use or has added to their user profile.
.Description
Represents web accounts the user has indicated they use or has added to their user profile.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWebAccount
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IMicrosoftGraphWebAccount>: webAccount
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Description <String>]: Contains the description the user has provided for the account on the service being referenced.
  [Service <IMicrosoftGraphServiceInformation>]: serviceInformation
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Name <String>]: The name of the cloud service (for example, Twitter, Instagram).
    [WebUrl <String>]: Contains the URL for the service being referenced.
  [StatusMessage <String>]: Contains a status message from the cloud service if provided or synchronized.
  [ThumbnailUrl <String>]:
  [UserId <String>]: The user name displayed for the webaccount.
  [WebUrl <String>]: Contains a link to the user's profile on the cloud service if one exists.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SERVICE <IMicrosoftGraphServiceInformation>: serviceInformation
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Name <String>]: The name of the cloud service (for example, Twitter, Instagram).
  [WebUrl <String>]: Contains the URL for the service being referenced.
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/update-mguserprofilewebaccount
#>

function Update-MgUserProfileWebAccount {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of webAccount
    ${WebAccountId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.IMicrosoftGraphWebAccount]
    # webAccount
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # allowedAudiences
    ${AllowedAudiences},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphIdentitySet]
    # identitySet
    # To construct, see NOTES section for CREATEDBY properties and create a hash table.
    ${CreatedBy},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains the description the user has provided for the account on the service being referenced.
    ${Description},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${IsSearchable},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphIdentitySet]
    # identitySet
    # To construct, see NOTES section for LASTMODIFIEDBY properties and create a hash table.
    ${LastModifiedBy},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphServiceInformation]
    # serviceInformation
    # To construct, see NOTES section for SERVICE properties and create a hash table.
    ${Service},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonDataSources]
    # personDataSources
    # To construct, see NOTES section for SOURCE properties and create a hash table.
    ${Source},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains a status message from the cloud service if provided or synchronized.
    ${StatusMessage},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${ThumbnailUrl},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # The user name displayed for the webaccount.
    ${UserId1},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains a link to the user's profile on the cloud service if one exists.
    ${WebUrl},

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [Microsoft.Graph.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\Update-MgUserProfileWebAccount_Update';
            UpdateExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileWebAccount_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.People.private\Update-MgUserProfileWebAccount_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileWebAccount_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
Represents detailed information about websites associated with a user in various services.
.Description
Represents detailed information about websites associated with a user in various services.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonWebsite
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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 <IMicrosoftGraphPersonWebsite>: personWebsite
  [(Any) <Object>]: This indicates any property can be added to this object.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Categories <String[]>]: Contains categories a user has associated with the website (for example, personal, recipes).
  [Description <String>]: Contains a description of the website.
  [DisplayName <String>]: Contains a friendly name for the website.
  [ThumbnailUrl <String>]:
  [WebUrl <String>]: Contains a link to the website itself.
 
CREATEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
INFERENCE <IMicrosoftGraphInferenceData>: inferenceData
  [(Any) <Object>]: This indicates any property can be added to this object.
  [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
  [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
LASTMODIFIEDBY <IMicrosoftGraphIdentitySet>: identitySet
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Application <IMicrosoftGraphIdentity>]: identity
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
    [Id <String>]: Unique identifier for the identity.
  [Device <IMicrosoftGraphIdentity>]: identity
  [User <IMicrosoftGraphIdentity>]: identity
 
SOURCE <IMicrosoftGraphPersonDataSources>: personDataSources
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Type <String[]>]:
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/update-mguserprofilewebsite
#>

function Update-MgUserProfileWebsite {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of personWebsite
    ${PersonWebsiteId},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.IMicrosoftGraphPersonWebsite]
    # personWebsite
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # allowedAudiences
    ${AllowedAudiences},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String[]]
    # Contains categories a user has associated with the website (for example, personal, recipes).
    ${Categories},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphIdentitySet]
    # identitySet
    # To construct, see NOTES section for CREATEDBY properties and create a hash table.
    ${CreatedBy},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${CreatedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains a description of the website.
    ${Description},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains a friendly name for the website.
    ${DisplayName},

    [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.IMicrosoftGraphInferenceData]
    # inferenceData
    # To construct, see NOTES section for INFERENCE properties and create a hash table.
    ${Inference},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # .
    ${IsSearchable},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphIdentitySet]
    # identitySet
    # To construct, see NOTES section for LASTMODIFIEDBY properties and create a hash table.
    ${LastModifiedBy},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.DateTime]
    # Provides the dateTimeOffset for when the entity was created.
    ${LastModifiedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonDataSources]
    # personDataSources
    # To construct, see NOTES section for SOURCE properties and create a hash table.
    ${Source},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # .
    ${ThumbnailUrl},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.String]
    # Contains a link to the website itself.
    ${WebUrl},

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [Microsoft.Graph.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\Update-MgUserProfileWebsite_Update';
            UpdateExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileWebsite_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.People.private\Update-MgUserProfileWebsite_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfileWebsite_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
Represents properties that are descriptive of a user in a tenant.
.Description
Represents properties that are descriptive of a user in a tenant.
 
.Inputs
Microsoft.Graph.PowerShell.Models.IMicrosoftGraphProfile
.Inputs
Microsoft.Graph.PowerShell.Models.IPeopleIdentity
.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.
 
ACCOUNT <IMicrosoftGraphUserAccountInformation[]>: .
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [AgeGroup <String>]: Shows the age group of user. Allowed values null, minor, notAdult and adult are generated by the directory and cannot be changed.
  [CountryCode <String>]: Contains the two-character country code associated with the users account.
  [PreferredLanguageTag <IMicrosoftGraphLocaleInfo>]: localeInfo
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]: A name representing the user's locale in natural language, for example, 'English (United States)'.
    [Locale <String>]: A locale representation for the user, which includes the user's preferred language and country/region. For example, 'en-us'. The language component follows 2-letter codes as defined in ISO 639-1, and the country component follows 2-letter codes as defined in ISO 3166-1 alpha-2.
  [UserPrincipalName <String>]: The user principal name (UPN) of the user associated with the account.
 
ADDRESSES <IMicrosoftGraphItemAddress[]>: Represents details of addresses associated with the user.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Detail <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
    [(Any) <Object>]: This indicates any property can be added to this object.
    [City <String>]: The city.
    [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
    [PostOfficeBox <String>]: The post office box number.
    [PostalCode <String>]: The postal code.
    [State <String>]: The state.
    [Street <String>]: The street.
    [Type <String>]: physicalAddressType
  [DisplayName <String>]: Friendly name the user has assigned to this address.
  [GeoCoordinates <IMicrosoftGraphGeoCoordinates>]: geoCoordinates
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Altitude <Double?>]: Optional. The altitude (height), in feet, above sea level for the item. Read-only.
    [Latitude <Double?>]: Optional. The latitude, in decimal, for the item. Read-only.
    [Longitude <Double?>]: Optional. The longitude, in decimal, for the item. Read-only.
 
ANNIVERSARIES <IMicrosoftGraphPersonAnnualEvent[]>: Represents the details of meaningful dates associated with a person.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Date <DateTime?>]:
  [DisplayName <String>]:
  [Type <String>]: personAnnualEventType
 
AWARDS <IMicrosoftGraphPersonAward[]>: Represents the details of awards or honors associated with a person.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Description <String>]: Descpription of the award or honor.
  [DisplayName <String>]: Name of the award or honor.
  [IssuedDate <DateTime?>]: The date that the award or honor was granted.
  [IssuingAuthority <String>]: Authority which granted the award or honor.
  [ThumbnailUrl <String>]: URL referencing a thumbnail of the award or honor.
  [WebUrl <String>]: URL referencing the award or honor.
 
BODYPARAMETER <IMicrosoftGraphProfile>: profile
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: Read-only.
  [Account <IMicrosoftGraphUserAccountInformation[]>]:
    [AllowedAudiences <String>]: allowedAudiences
    [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Application <IMicrosoftGraphIdentity>]: identity
        [(Any) <Object>]: This indicates any property can be added to this object.
        [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
        [Id <String>]: Unique identifier for the identity.
      [Device <IMicrosoftGraphIdentity>]: identity
      [User <IMicrosoftGraphIdentity>]: identity
    [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Inference <IMicrosoftGraphInferenceData>]: inferenceData
      [(Any) <Object>]: This indicates any property can be added to this object.
      [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
      [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
    [IsSearchable <Boolean?>]:
    [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Type <String[]>]:
    [Id <String>]: Read-only.
    [AgeGroup <String>]: Shows the age group of user. Allowed values null, minor, notAdult and adult are generated by the directory and cannot be changed.
    [CountryCode <String>]: Contains the two-character country code associated with the users account.
    [PreferredLanguageTag <IMicrosoftGraphLocaleInfo>]: localeInfo
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: A name representing the user's locale in natural language, for example, 'English (United States)'.
      [Locale <String>]: A locale representation for the user, which includes the user's preferred language and country/region. For example, 'en-us'. The language component follows 2-letter codes as defined in ISO 639-1, and the country component follows 2-letter codes as defined in ISO 3166-1 alpha-2.
    [UserPrincipalName <String>]: The user principal name (UPN) of the user associated with the account.
  [Addresses <IMicrosoftGraphItemAddress[]>]: Represents details of addresses associated with the user.
    [AllowedAudiences <String>]: allowedAudiences
    [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [IsSearchable <Boolean?>]:
    [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [Id <String>]: Read-only.
    [Detail <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
      [(Any) <Object>]: This indicates any property can be added to this object.
      [City <String>]: The city.
      [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
      [PostOfficeBox <String>]: The post office box number.
      [PostalCode <String>]: The postal code.
      [State <String>]: The state.
      [Street <String>]: The street.
      [Type <String>]: physicalAddressType
    [DisplayName <String>]: Friendly name the user has assigned to this address.
    [GeoCoordinates <IMicrosoftGraphGeoCoordinates>]: geoCoordinates
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Altitude <Double?>]: Optional. The altitude (height), in feet, above sea level for the item. Read-only.
      [Latitude <Double?>]: Optional. The latitude, in decimal, for the item. Read-only.
      [Longitude <Double?>]: Optional. The longitude, in decimal, for the item. Read-only.
  [Anniversaries <IMicrosoftGraphPersonAnnualEvent[]>]: Represents the details of meaningful dates associated with a person.
    [AllowedAudiences <String>]: allowedAudiences
    [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [IsSearchable <Boolean?>]:
    [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [Id <String>]: Read-only.
    [Date <DateTime?>]:
    [DisplayName <String>]:
    [Type <String>]: personAnnualEventType
  [Awards <IMicrosoftGraphPersonAward[]>]: Represents the details of awards or honors associated with a person.
    [AllowedAudiences <String>]: allowedAudiences
    [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [IsSearchable <Boolean?>]:
    [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [Id <String>]: Read-only.
    [Description <String>]: Descpription of the award or honor.
    [DisplayName <String>]: Name of the award or honor.
    [IssuedDate <DateTime?>]: The date that the award or honor was granted.
    [IssuingAuthority <String>]: Authority which granted the award or honor.
    [ThumbnailUrl <String>]: URL referencing a thumbnail of the award or honor.
    [WebUrl <String>]: URL referencing the award or honor.
  [Certifications <IMicrosoftGraphPersonCertification[]>]: Represents the details of certifications associated with a person.
    [AllowedAudiences <String>]: allowedAudiences
    [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [IsSearchable <Boolean?>]:
    [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [Id <String>]: Read-only.
    [CertificationId <String>]: The referenceable identifier for the certification.
    [Description <String>]: Description of the certification.
    [DisplayName <String>]: Title of the certification.
    [EndDate <DateTime?>]: The date that the certification expires.
    [IssuedDate <DateTime?>]: The date that the certification was issued.
    [IssuingAuthority <String>]: Authority which granted the certification.
    [IssuingCompany <String>]: Company which granted the certification.
    [StartDate <DateTime?>]: The date that the certification became valid.
    [ThumbnailUrl <String>]: URL referencing a thumbnail of the certification.
    [WebUrl <String>]: URL referencing the certification.
  [EducationalActivities <IMicrosoftGraphEducationalActivity[]>]: Represents data that a user has supplied related to undergraduate, graduate, postgraduate or other educational activities.
    [AllowedAudiences <String>]: allowedAudiences
    [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [IsSearchable <Boolean?>]:
    [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [Id <String>]: Read-only.
    [CompletionMonthYear <DateTime?>]: The month and year the user graduated or completed the activity.
    [EndMonthYear <DateTime?>]: The month and year the user completed the educational activity referenced.
    [Institution <IMicrosoftGraphInstitutionData>]: institutionData
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Description <String>]: Short description of the institution the user studied at.
      [DisplayName <String>]: Name of the institution the user studied at.
      [Location <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
      [WebUrl <String>]: Link to the institution or department homepage.
    [Program <IMicrosoftGraphEducationalActivityDetail>]: educationalActivityDetail
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Abbreviation <String>]: Shortened name of the degree or program (example: PhD, MBA)
      [Activities <String[]>]: Extracurricular activities undertaken alongside the program.
      [Awards <String[]>]: Any awards or honors associated with the program.
      [Description <String>]: Short description of the program provided by the user.
      [DisplayName <String>]: Long-form name of the program that the user has provided.
      [FieldsOfStudy <String[]>]: Majors and minors associated with the program. (if applicable)
      [Grade <String>]: The final grade, class, GPA or score.
      [Notes <String>]: Additional notes the user has provided.
      [WebUrl <String>]: Link to the degree or program page.
    [StartMonthYear <DateTime?>]: The month and year the user commenced the activity referenced.
  [Emails <IMicrosoftGraphItemEmail[]>]: Represents detailed information about email addresses associated with the user.
    [AllowedAudiences <String>]: allowedAudiences
    [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [IsSearchable <Boolean?>]:
    [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [Id <String>]: Read-only.
    [Address <String>]: The email address itself.
    [DisplayName <String>]: The name or label a user has associated with a particular email address.
    [Type <String>]: emailType
  [Interests <IMicrosoftGraphPersonInterest[]>]: Provides detailed information about interests the user has associated with themselves in various services.
    [AllowedAudiences <String>]: allowedAudiences
    [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [IsSearchable <Boolean?>]:
    [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [Id <String>]: Read-only.
    [Categories <String[]>]: Contains categories a user has associated with the interest (for example, personal, recipies).
    [CollaborationTags <String[]>]: Contains experience scenario tags a user has associated with the interest. Allowed values in the collection are: askMeAbout, ableToMentor, wantsToLearn, wantsToImprove.
    [Description <String>]: Contains a description of the interest.
    [DisplayName <String>]: Contains a friendly name for the interest.
    [ThumbnailUrl <String>]:
    [WebUrl <String>]: Contains a link to a web page or resource about the interest.
  [Languages <IMicrosoftGraphLanguageProficiency[]>]: Represents detailed information about languages that a user has added to their profile.
    [AllowedAudiences <String>]: allowedAudiences
    [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [IsSearchable <Boolean?>]:
    [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [Id <String>]: Read-only.
    [DisplayName <String>]: Contains the long-form name for the language.
    [Proficiency <String>]: languageProficiencyLevel
    [Reading <String>]: languageProficiencyLevel
    [Spoken <String>]: languageProficiencyLevel
    [Tag <String>]: Contains the four-character BCP47 name for the language (en-US, no-NB, en-AU).
    [ThumbnailUrl <String>]:
    [Written <String>]: languageProficiencyLevel
  [Names <IMicrosoftGraphPersonName[]>]: Represents the names a user has added to their profile.
    [AllowedAudiences <String>]: allowedAudiences
    [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [IsSearchable <Boolean?>]:
    [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [Id <String>]: Read-only.
    [DisplayName <String>]: Provides an ordered rendering of firstName and lastName depending on the locale of the user or their device.
    [First <String>]: First name of the user.
    [Initials <String>]: Initials of the user.
    [LanguageTag <String>]: Contains the name for the language (en-US, no-NB, en-AU) following IETF BCP47 format.
    [Last <String>]: Last name of the user.
    [Maiden <String>]: Maiden name of the user.
    [Middle <String>]: Middle name of the user.
    [Nickname <String>]: Nickname of the user.
    [Pronunciation <IMicrosoftGraphPersonNamePronounciation>]: personNamePronounciation
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]:
      [First <String>]:
      [Last <String>]:
      [Maiden <String>]:
      [Middle <String>]:
    [Suffix <String>]: Designators used after the users name (eg: PhD.)
    [Title <String>]: Honorifics used to prefix a users name (eg: Dr, Sir, Madam, Mrs.)
  [Notes <IMicrosoftGraphPersonAnnotation[]>]: Represents notes that a user has added to their profile.
    [AllowedAudiences <String>]: allowedAudiences
    [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [IsSearchable <Boolean?>]:
    [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [Id <String>]: Read-only.
    [Detail <IMicrosoftGraphItemBody>]: itemBody
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Content <String>]: The content of the item.
      [ContentType <String>]: bodyType
    [DisplayName <String>]: Contains a friendly name for the note.
    [ThumbnailUrl <String>]:
  [Patents <IMicrosoftGraphItemPatent[]>]: Represents patents that a user has added to their profile.
    [AllowedAudiences <String>]: allowedAudiences
    [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [IsSearchable <Boolean?>]:
    [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [Id <String>]: Read-only.
    [Description <String>]: Descpription of the patent or filing.
    [DisplayName <String>]: Title of the patent or filing.
    [IsPending <Boolean?>]: Indicates the patent is pending.
    [IssuedDate <DateTime?>]: The date that the patent was granted.
    [IssuingAuthority <String>]: Authority which granted the patent.
    [Number <String>]: The patent number.
    [WebUrl <String>]: URL referencing the patent or filing.
  [Phones <IMicrosoftGraphItemPhone[]>]: Represents detailed information about phone numbers associated with a user in various services.
    [AllowedAudiences <String>]: allowedAudiences
    [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [IsSearchable <Boolean?>]:
    [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [Id <String>]: Read-only.
    [DisplayName <String>]: Friendly name the user has assigned this phone number.
    [Number <String>]: Phone number provided by the user.
    [Type <String>]: phoneType
  [Positions <IMicrosoftGraphWorkPosition[]>]: Represents detailed information about work positions associated with a user's profile.
    [AllowedAudiences <String>]: allowedAudiences
    [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [IsSearchable <Boolean?>]:
    [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [Id <String>]: Read-only.
    [Categories <String[]>]: Categories that the user has associated with this position.
    [Colleagues <IMicrosoftGraphRelatedPerson[]>]: Colleagues that are associated with this position.
      [DisplayName <String>]: Name of the person.
      [Relationship <String>]: personRelationship
      [UserPrincipalName <String>]: Email address or reference to person within organization.
    [Detail <IMicrosoftGraphPositionDetail>]: positionDetail
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Company <IMicrosoftGraphCompanyDetail>]: companyDetail
        [(Any) <Object>]: This indicates any property can be added to this object.
        [Address <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
        [Department <String>]: Department Name within a company.
        [DisplayName <String>]: Company name.
        [OfficeLocation <String>]: Office Location of the person referred to.
        [Pronunciation <String>]: Pronunciation guide for the company name.
        [WebUrl <String>]: Link to the company home page.
      [Description <String>]: Description of the position in question.
      [EndMonthYear <DateTime?>]: When the position ended.
      [JobTitle <String>]: The title held when in that position.
      [Role <String>]: The role the position entailed.
      [StartMonthYear <DateTime?>]: The start month and year of the position.
      [Summary <String>]: Short summary of the position.
    [IsCurrent <Boolean?>]: Denotes whether or not the position is current.
    [Manager <IMicrosoftGraphRelatedPerson>]: relatedPerson
  [Projects <IMicrosoftGraphProjectParticipation[]>]: Represents detailed information about projects associated with a user.
    [AllowedAudiences <String>]: allowedAudiences
    [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [IsSearchable <Boolean?>]:
    [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [Id <String>]: Read-only.
    [Categories <String[]>]: Contains categories a user has associated with the project (for example, digital transformation, oil rig).
    [Client <IMicrosoftGraphCompanyDetail>]: companyDetail
    [CollaborationTags <String[]>]: Contains experience scenario tags a user has associated with the interest. Allowed values in the collection are: askMeAbout, ableToMentor, wantsToLearn, wantsToImprove.
    [Colleagues <IMicrosoftGraphRelatedPerson[]>]: Lists people that also worked on the project.
    [Detail <IMicrosoftGraphPositionDetail>]: positionDetail
    [DisplayName <String>]: Contains a friendly name for the project.
    [Sponsors <IMicrosoftGraphRelatedPerson[]>]: The Person or people who sponsored the project.
    [ThumbnailUrl <String>]:
  [Publications <IMicrosoftGraphItemPublication[]>]: Represents details of any publications a user has added to their profile.
    [AllowedAudiences <String>]: allowedAudiences
    [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [IsSearchable <Boolean?>]:
    [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [Id <String>]: Read-only.
    [Description <String>]: Description of the publication.
    [DisplayName <String>]: Title of the publication.
    [PublishedDate <DateTime?>]: The date that the publication was published.
    [Publisher <String>]: Publication or publisher for the publication.
    [ThumbnailUrl <String>]: URL referencing a thumbnail of the publication.
    [WebUrl <String>]: URL referencing the publication.
  [Skills <IMicrosoftGraphSkillProficiency[]>]: Represents detailed information about skills associated with a user in various services.
    [AllowedAudiences <String>]: allowedAudiences
    [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [IsSearchable <Boolean?>]:
    [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [Id <String>]: Read-only.
    [Categories <String[]>]: Contains categories a user has associated with the skill (for example, personal, professional, hobby).
    [CollaborationTags <String[]>]: Contains experience scenario tags a user has associated with the interest. Allowed values in the collection are: askMeAbout, ableToMentor, wantsToLearn, wantsToImprove.
    [DisplayName <String>]: Contains a friendly name for the skill.
    [Proficiency <String>]: skillProficiencyLevel
    [ThumbnailUrl <String>]:
    [WebUrl <String>]: Contains a link to an information source about the skill.
  [WebAccounts <IMicrosoftGraphWebAccount[]>]: Represents web accounts the user has indicated they use or has added to their user profile.
    [AllowedAudiences <String>]: allowedAudiences
    [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [IsSearchable <Boolean?>]:
    [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [Id <String>]: Read-only.
    [Description <String>]: Contains the description the user has provided for the account on the service being referenced.
    [Service <IMicrosoftGraphServiceInformation>]: serviceInformation
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Name <String>]: The name of the cloud service (for example, Twitter, Instagram).
      [WebUrl <String>]: Contains the URL for the service being referenced.
    [StatusMessage <String>]: Contains a status message from the cloud service if provided or synchronized.
    [ThumbnailUrl <String>]:
    [UserId <String>]: The user name displayed for the webaccount.
    [WebUrl <String>]: Contains a link to the user's profile on the cloud service if one exists.
  [Websites <IMicrosoftGraphPersonWebsite[]>]: Represents detailed information about websites associated with a user in various services.
    [AllowedAudiences <String>]: allowedAudiences
    [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [IsSearchable <Boolean?>]:
    [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
    [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [Id <String>]: Read-only.
    [Categories <String[]>]: Contains categories a user has associated with the website (for example, personal, recipes).
    [Description <String>]: Contains a description of the website.
    [DisplayName <String>]: Contains a friendly name for the website.
    [ThumbnailUrl <String>]:
    [WebUrl <String>]: Contains a link to the website itself.
 
CERTIFICATIONS <IMicrosoftGraphPersonCertification[]>: Represents the details of certifications associated with a person.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [CertificationId <String>]: The referenceable identifier for the certification.
  [Description <String>]: Description of the certification.
  [DisplayName <String>]: Title of the certification.
  [EndDate <DateTime?>]: The date that the certification expires.
  [IssuedDate <DateTime?>]: The date that the certification was issued.
  [IssuingAuthority <String>]: Authority which granted the certification.
  [IssuingCompany <String>]: Company which granted the certification.
  [StartDate <DateTime?>]: The date that the certification became valid.
  [ThumbnailUrl <String>]: URL referencing a thumbnail of the certification.
  [WebUrl <String>]: URL referencing the certification.
 
EDUCATIONALACTIVITIES <IMicrosoftGraphEducationalActivity[]>: Represents data that a user has supplied related to undergraduate, graduate, postgraduate or other educational activities.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [CompletionMonthYear <DateTime?>]: The month and year the user graduated or completed the activity.
  [EndMonthYear <DateTime?>]: The month and year the user completed the educational activity referenced.
  [Institution <IMicrosoftGraphInstitutionData>]: institutionData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Description <String>]: Short description of the institution the user studied at.
    [DisplayName <String>]: Name of the institution the user studied at.
    [Location <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
      [(Any) <Object>]: This indicates any property can be added to this object.
      [City <String>]: The city.
      [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
      [PostOfficeBox <String>]: The post office box number.
      [PostalCode <String>]: The postal code.
      [State <String>]: The state.
      [Street <String>]: The street.
      [Type <String>]: physicalAddressType
    [WebUrl <String>]: Link to the institution or department homepage.
  [Program <IMicrosoftGraphEducationalActivityDetail>]: educationalActivityDetail
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Abbreviation <String>]: Shortened name of the degree or program (example: PhD, MBA)
    [Activities <String[]>]: Extracurricular activities undertaken alongside the program.
    [Awards <String[]>]: Any awards or honors associated with the program.
    [Description <String>]: Short description of the program provided by the user.
    [DisplayName <String>]: Long-form name of the program that the user has provided.
    [FieldsOfStudy <String[]>]: Majors and minors associated with the program. (if applicable)
    [Grade <String>]: The final grade, class, GPA or score.
    [Notes <String>]: Additional notes the user has provided.
    [WebUrl <String>]: Link to the degree or program page.
  [StartMonthYear <DateTime?>]: The month and year the user commenced the activity referenced.
 
EMAILS <IMicrosoftGraphItemEmail[]>: Represents detailed information about email addresses associated with the user.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Address <String>]: The email address itself.
  [DisplayName <String>]: The name or label a user has associated with a particular email address.
  [Type <String>]: emailType
 
INPUTOBJECT <IPeopleIdentity>: Identity Parameter
  [ActivityStatisticsId <String>]: key: id of activityStatistics
  [EducationalActivityId <String>]: key: id of educationalActivity
  [ItemAddressId <String>]: key: id of itemAddress
  [ItemEmailId <String>]: key: id of itemEmail
  [ItemPatentId <String>]: key: id of itemPatent
  [ItemPhoneId <String>]: key: id of itemPhone
  [ItemPublicationId <String>]: key: id of itemPublication
  [LanguageProficiencyId <String>]: key: id of languageProficiency
  [PersonAnnotationId <String>]: key: id of personAnnotation
  [PersonAnnualEventId <String>]: key: id of personAnnualEvent
  [PersonAwardId <String>]: key: id of personAward
  [PersonCertificationId <String>]: key: id of personCertification
  [PersonId <String>]: key: id of person
  [PersonInterestId <String>]: key: id of personInterest
  [PersonNameId <String>]: key: id of personName
  [PersonWebsiteId <String>]: key: id of personWebsite
  [ProjectParticipationId <String>]: key: id of projectParticipation
  [SharedInsightId <String>]: key: id of sharedInsight
  [SkillProficiencyId <String>]: key: id of skillProficiency
  [TrendingId <String>]: key: id of trending
  [UsedInsightId <String>]: key: id of usedInsight
  [UserAccountInformationId <String>]: key: id of userAccountInformation
  [UserId <String>]: key: id of user
  [WebAccountId <String>]: key: id of webAccount
  [WorkPositionId <String>]: key: id of workPosition
 
INTERESTS <IMicrosoftGraphPersonInterest[]>: Provides detailed information about interests the user has associated with themselves in various services.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Categories <String[]>]: Contains categories a user has associated with the interest (for example, personal, recipies).
  [CollaborationTags <String[]>]: Contains experience scenario tags a user has associated with the interest. Allowed values in the collection are: askMeAbout, ableToMentor, wantsToLearn, wantsToImprove.
  [Description <String>]: Contains a description of the interest.
  [DisplayName <String>]: Contains a friendly name for the interest.
  [ThumbnailUrl <String>]:
  [WebUrl <String>]: Contains a link to a web page or resource about the interest.
 
LANGUAGES <IMicrosoftGraphLanguageProficiency[]>: Represents detailed information about languages that a user has added to their profile.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [DisplayName <String>]: Contains the long-form name for the language.
  [Proficiency <String>]: languageProficiencyLevel
  [Reading <String>]: languageProficiencyLevel
  [Spoken <String>]: languageProficiencyLevel
  [Tag <String>]: Contains the four-character BCP47 name for the language (en-US, no-NB, en-AU).
  [ThumbnailUrl <String>]:
  [Written <String>]: languageProficiencyLevel
 
NAMES <IMicrosoftGraphPersonName[]>: Represents the names a user has added to their profile.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [DisplayName <String>]: Provides an ordered rendering of firstName and lastName depending on the locale of the user or their device.
  [First <String>]: First name of the user.
  [Initials <String>]: Initials of the user.
  [LanguageTag <String>]: Contains the name for the language (en-US, no-NB, en-AU) following IETF BCP47 format.
  [Last <String>]: Last name of the user.
  [Maiden <String>]: Maiden name of the user.
  [Middle <String>]: Middle name of the user.
  [Nickname <String>]: Nickname of the user.
  [Pronunciation <IMicrosoftGraphPersonNamePronounciation>]: personNamePronounciation
    [(Any) <Object>]: This indicates any property can be added to this object.
    [DisplayName <String>]:
    [First <String>]:
    [Last <String>]:
    [Maiden <String>]:
    [Middle <String>]:
  [Suffix <String>]: Designators used after the users name (eg: PhD.)
  [Title <String>]: Honorifics used to prefix a users name (eg: Dr, Sir, Madam, Mrs.)
 
NOTES <IMicrosoftGraphPersonAnnotation[]>: Represents notes that a user has added to their profile.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Detail <IMicrosoftGraphItemBody>]: itemBody
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Content <String>]: The content of the item.
    [ContentType <String>]: bodyType
  [DisplayName <String>]: Contains a friendly name for the note.
  [ThumbnailUrl <String>]:
 
PATENTS <IMicrosoftGraphItemPatent[]>: Represents patents that a user has added to their profile.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Description <String>]: Descpription of the patent or filing.
  [DisplayName <String>]: Title of the patent or filing.
  [IsPending <Boolean?>]: Indicates the patent is pending.
  [IssuedDate <DateTime?>]: The date that the patent was granted.
  [IssuingAuthority <String>]: Authority which granted the patent.
  [Number <String>]: The patent number.
  [WebUrl <String>]: URL referencing the patent or filing.
 
PHONES <IMicrosoftGraphItemPhone[]>: Represents detailed information about phone numbers associated with a user in various services.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [DisplayName <String>]: Friendly name the user has assigned this phone number.
  [Number <String>]: Phone number provided by the user.
  [Type <String>]: phoneType
 
POSITIONS <IMicrosoftGraphWorkPosition[]>: Represents detailed information about work positions associated with a user's profile.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Categories <String[]>]: Categories that the user has associated with this position.
  [Colleagues <IMicrosoftGraphRelatedPerson[]>]: Colleagues that are associated with this position.
    [DisplayName <String>]: Name of the person.
    [Relationship <String>]: personRelationship
    [UserPrincipalName <String>]: Email address or reference to person within organization.
  [Detail <IMicrosoftGraphPositionDetail>]: positionDetail
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Company <IMicrosoftGraphCompanyDetail>]: companyDetail
      [(Any) <Object>]: This indicates any property can be added to this object.
      [Address <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
        [(Any) <Object>]: This indicates any property can be added to this object.
        [City <String>]: The city.
        [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
        [PostOfficeBox <String>]: The post office box number.
        [PostalCode <String>]: The postal code.
        [State <String>]: The state.
        [Street <String>]: The street.
        [Type <String>]: physicalAddressType
      [Department <String>]: Department Name within a company.
      [DisplayName <String>]: Company name.
      [OfficeLocation <String>]: Office Location of the person referred to.
      [Pronunciation <String>]: Pronunciation guide for the company name.
      [WebUrl <String>]: Link to the company home page.
    [Description <String>]: Description of the position in question.
    [EndMonthYear <DateTime?>]: When the position ended.
    [JobTitle <String>]: The title held when in that position.
    [Role <String>]: The role the position entailed.
    [StartMonthYear <DateTime?>]: The start month and year of the position.
    [Summary <String>]: Short summary of the position.
  [IsCurrent <Boolean?>]: Denotes whether or not the position is current.
  [Manager <IMicrosoftGraphRelatedPerson>]: relatedPerson
 
PROJECTS <IMicrosoftGraphProjectParticipation[]>: Represents detailed information about projects associated with a user.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Categories <String[]>]: Contains categories a user has associated with the project (for example, digital transformation, oil rig).
  [Client <IMicrosoftGraphCompanyDetail>]: companyDetail
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Address <IMicrosoftGraphPhysicalAddress1>]: physicalAddress
      [(Any) <Object>]: This indicates any property can be added to this object.
      [City <String>]: The city.
      [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
      [PostOfficeBox <String>]: The post office box number.
      [PostalCode <String>]: The postal code.
      [State <String>]: The state.
      [Street <String>]: The street.
      [Type <String>]: physicalAddressType
    [Department <String>]: Department Name within a company.
    [DisplayName <String>]: Company name.
    [OfficeLocation <String>]: Office Location of the person referred to.
    [Pronunciation <String>]: Pronunciation guide for the company name.
    [WebUrl <String>]: Link to the company home page.
  [CollaborationTags <String[]>]: Contains experience scenario tags a user has associated with the interest. Allowed values in the collection are: askMeAbout, ableToMentor, wantsToLearn, wantsToImprove.
  [Colleagues <IMicrosoftGraphRelatedPerson[]>]: Lists people that also worked on the project.
    [DisplayName <String>]: Name of the person.
    [Relationship <String>]: personRelationship
    [UserPrincipalName <String>]: Email address or reference to person within organization.
  [Detail <IMicrosoftGraphPositionDetail>]: positionDetail
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Company <IMicrosoftGraphCompanyDetail>]: companyDetail
    [Description <String>]: Description of the position in question.
    [EndMonthYear <DateTime?>]: When the position ended.
    [JobTitle <String>]: The title held when in that position.
    [Role <String>]: The role the position entailed.
    [StartMonthYear <DateTime?>]: The start month and year of the position.
    [Summary <String>]: Short summary of the position.
  [DisplayName <String>]: Contains a friendly name for the project.
  [Sponsors <IMicrosoftGraphRelatedPerson[]>]: The Person or people who sponsored the project.
  [ThumbnailUrl <String>]:
 
PUBLICATIONS <IMicrosoftGraphItemPublication[]>: Represents details of any publications a user has added to their profile.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Description <String>]: Description of the publication.
  [DisplayName <String>]: Title of the publication.
  [PublishedDate <DateTime?>]: The date that the publication was published.
  [Publisher <String>]: Publication or publisher for the publication.
  [ThumbnailUrl <String>]: URL referencing a thumbnail of the publication.
  [WebUrl <String>]: URL referencing the publication.
 
SKILLS <IMicrosoftGraphSkillProficiency[]>: Represents detailed information about skills associated with a user in various services.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Categories <String[]>]: Contains categories a user has associated with the skill (for example, personal, professional, hobby).
  [CollaborationTags <String[]>]: Contains experience scenario tags a user has associated with the interest. Allowed values in the collection are: askMeAbout, ableToMentor, wantsToLearn, wantsToImprove.
  [DisplayName <String>]: Contains a friendly name for the skill.
  [Proficiency <String>]: skillProficiencyLevel
  [ThumbnailUrl <String>]:
  [WebUrl <String>]: Contains a link to an information source about the skill.
 
WEBACCOUNTS <IMicrosoftGraphWebAccount[]>: Represents web accounts the user has indicated they use or has added to their user profile.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Description <String>]: Contains the description the user has provided for the account on the service being referenced.
  [Service <IMicrosoftGraphServiceInformation>]: serviceInformation
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Name <String>]: The name of the cloud service (for example, Twitter, Instagram).
    [WebUrl <String>]: Contains the URL for the service being referenced.
  [StatusMessage <String>]: Contains a status message from the cloud service if provided or synchronized.
  [ThumbnailUrl <String>]:
  [UserId <String>]: The user name displayed for the webaccount.
  [WebUrl <String>]: Contains a link to the user's profile on the cloud service if one exists.
 
WEBSITES <IMicrosoftGraphPersonWebsite[]>: Represents detailed information about websites associated with a user in various services.
  [AllowedAudiences <String>]: allowedAudiences
  [CreatedBy <IMicrosoftGraphIdentitySet>]: identitySet
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Application <IMicrosoftGraphIdentity>]: identity
      [(Any) <Object>]: This indicates any property can be added to this object.
      [DisplayName <String>]: The identity's display name. Note that this may not always be available or up to date. For example, if a user changes their display name, the API may show the new value in a future response, but the items associated with the user won't show up as having changed when using delta.
      [Id <String>]: Unique identifier for the identity.
    [Device <IMicrosoftGraphIdentity>]: identity
    [User <IMicrosoftGraphIdentity>]: identity
  [CreatedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Inference <IMicrosoftGraphInferenceData>]: inferenceData
    [(Any) <Object>]: This indicates any property can be added to this object.
    [ConfidenceScore <Double?>]: Confidence score reflecting the accuracy of the data inferred about the user.
    [UserHasVerifiedAccuracy <Boolean?>]: Records if the user has confirmed this inference as being True or False.
  [IsSearchable <Boolean?>]:
  [LastModifiedBy <IMicrosoftGraphIdentitySet>]: identitySet
  [LastModifiedDateTime <DateTime?>]: Provides the dateTimeOffset for when the entity was created.
  [Source <IMicrosoftGraphPersonDataSources>]: personDataSources
    [(Any) <Object>]: This indicates any property can be added to this object.
    [Type <String[]>]:
  [Id <String>]: Read-only.
  [Categories <String[]>]: Contains categories a user has associated with the website (for example, personal, recipes).
  [Description <String>]: Contains a description of the website.
  [DisplayName <String>]: Contains a friendly name for the website.
  [ThumbnailUrl <String>]:
  [WebUrl <String>]: Contains a link to the website itself.
.Link
https://docs.microsoft.com/en-us/powershell/module/microsoft.graph.people/update-mguserprofile
#>

function Update-MgUserProfile {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Graph.PowerShell.Profile('v1.0-beta')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [System.String]
    # key: id of user
    ${UserId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.PowerShell.Category('Path')]
    [Microsoft.Graph.PowerShell.Models.IPeopleIdentity]
    # 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.IMicrosoftGraphProfile]
    # profile
    # 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.IMicrosoftGraphUserAccountInformation[]]
    # .
    # To construct, see NOTES section for ACCOUNT properties and create a hash table.
    ${Account},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemAddress[]]
    # Represents details of addresses associated with the user.
    # To construct, see NOTES section for ADDRESSES properties and create a hash table.
    ${Addresses},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonAnnualEvent[]]
    # Represents the details of meaningful dates associated with a person.
    # To construct, see NOTES section for ANNIVERSARIES properties and create a hash table.
    ${Anniversaries},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonAward[]]
    # Represents the details of awards or honors associated with a person.
    # To construct, see NOTES section for AWARDS properties and create a hash table.
    ${Awards},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonCertification[]]
    # Represents the details of certifications associated with a person.
    # To construct, see NOTES section for CERTIFICATIONS properties and create a hash table.
    ${Certifications},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphEducationalActivity[]]
    # Represents data that a user has supplied related to undergraduate, graduate, postgraduate or other educational activities.
    # To construct, see NOTES section for EDUCATIONALACTIVITIES properties and create a hash table.
    ${EducationalActivities},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemEmail[]]
    # Represents detailed information about email addresses associated with the user.
    # To construct, see NOTES section for EMAILS properties and create a hash table.
    ${Emails},

    [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.IMicrosoftGraphPersonInterest[]]
    # Provides detailed information about interests the user has associated with themselves in various services.
    # To construct, see NOTES section for INTERESTS properties and create a hash table.
    ${Interests},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphLanguageProficiency[]]
    # Represents detailed information about languages that a user has added to their profile.
    # To construct, see NOTES section for LANGUAGES properties and create a hash table.
    ${Languages},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonName[]]
    # Represents the names a user has added to their profile.
    # To construct, see NOTES section for NAMES properties and create a hash table.
    ${Names},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonAnnotation[]]
    # Represents notes that a user has added to their profile.
    # To construct, see NOTES section for NOTES properties and create a hash table.
    ${Notes},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemPatent[]]
    # Represents patents that a user has added to their profile.
    # To construct, see NOTES section for PATENTS properties and create a hash table.
    ${Patents},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemPhone[]]
    # Represents detailed information about phone numbers associated with a user in various services.
    # To construct, see NOTES section for PHONES properties and create a hash table.
    ${Phones},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWorkPosition[]]
    # Represents detailed information about work positions associated with a user's profile.
    # To construct, see NOTES section for POSITIONS properties and create a hash table.
    ${Positions},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphProjectParticipation[]]
    # Represents detailed information about projects associated with a user.
    # To construct, see NOTES section for PROJECTS properties and create a hash table.
    ${Projects},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphItemPublication[]]
    # Represents details of any publications a user has added to their profile.
    # To construct, see NOTES section for PUBLICATIONS properties and create a hash table.
    ${Publications},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphSkillProficiency[]]
    # Represents detailed information about skills associated with a user in various services.
    # To construct, see NOTES section for SKILLS properties and create a hash table.
    ${Skills},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphWebAccount[]]
    # Represents web accounts the user has indicated they use or has added to their user profile.
    # To construct, see NOTES section for WEBACCOUNTS properties and create a hash table.
    ${WebAccounts},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.PowerShell.Category('Body')]
    [Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPersonWebsite[]]
    # Represents detailed information about websites associated with a user in various services.
    # To construct, see NOTES section for WEBSITES properties and create a hash table.
    ${Websites},

    [Parameter(DontShow)]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.PowerShell.Category('Runtime')]
    [Microsoft.Graph.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [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.People.private\Update-MgUserProfile_Update';
            UpdateExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfile_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.People.private\Update-MgUserProfile_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.People.private\Update-MgUserProfile_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
# MIIjkgYJKoZIhvcNAQcCoIIjgzCCI38CAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCqKpFem5/QtbH+
# w6nZQTG7O6LCcgmGuiBHWDA+v1PeYaCCDYEwggX/MIID56ADAgECAhMzAAAB32vw
# LpKnSrTQAAAAAAHfMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
# bmcgUENBIDIwMTEwHhcNMjAxMjE1MjEzMTQ1WhcNMjExMjAyMjEzMTQ1WjB0MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
# AQC2uxlZEACjqfHkuFyoCwfL25ofI9DZWKt4wEj3JBQ48GPt1UsDv834CcoUUPMn
# s/6CtPoaQ4Thy/kbOOg/zJAnrJeiMQqRe2Lsdb/NSI2gXXX9lad1/yPUDOXo4GNw
# PjXq1JZi+HZV91bUr6ZjzePj1g+bepsqd/HC1XScj0fT3aAxLRykJSzExEBmU9eS
# yuOwUuq+CriudQtWGMdJU650v/KmzfM46Y6lo/MCnnpvz3zEL7PMdUdwqj/nYhGG
# 3UVILxX7tAdMbz7LN+6WOIpT1A41rwaoOVnv+8Ua94HwhjZmu1S73yeV7RZZNxoh
# EegJi9YYssXa7UZUUkCCA+KnAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE
# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUOPbML8IdkNGtCfMmVPtvI6VZ8+Mw
# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1
# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDYzMDA5MB8GA1UdIwQYMBaAFEhu
# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu
# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w
# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3
# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx
# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAnnqH
# tDyYUFaVAkvAK0eqq6nhoL95SZQu3RnpZ7tdQ89QR3++7A+4hrr7V4xxmkB5BObS
# 0YK+MALE02atjwWgPdpYQ68WdLGroJZHkbZdgERG+7tETFl3aKF4KpoSaGOskZXp
# TPnCaMo2PXoAMVMGpsQEQswimZq3IQ3nRQfBlJ0PoMMcN/+Pks8ZTL1BoPYsJpok
# t6cql59q6CypZYIwgyJ892HpttybHKg1ZtQLUlSXccRMlugPgEcNZJagPEgPYni4
# b11snjRAgf0dyQ0zI9aLXqTxWUU5pCIFiPT0b2wsxzRqCtyGqpkGM8P9GazO8eao
# mVItCYBcJSByBx/pS0cSYwBBHAZxJODUqxSXoSGDvmTfqUJXntnWkL4okok1FiCD
# Z4jpyXOQunb6egIXvkgQ7jb2uO26Ow0m8RwleDvhOMrnHsupiOPbozKroSa6paFt
# VSh89abUSooR8QdZciemmoFhcWkEwFg4spzvYNP4nIs193261WyTaRMZoceGun7G
# CT2Rl653uUj+F+g94c63AhzSq4khdL4HlFIP2ePv29smfUnHtGq6yYFDLnT0q/Y+
# Di3jwloF8EWkkHRtSuXlFUbTmwr/lDDgbpZiKhLS7CBTDj32I0L5i532+uHczw82
# oZDmYmYmIUSMbZOgS65h797rj5JJ6OkeEUJoAVwwggd6MIIFYqADAgECAgphDpDS
# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK
# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0
# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla
# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS
# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT
# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB
# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG
# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S
# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz
# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7
# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u
# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33
# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl
# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP
# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB
# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF
# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM
# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ
# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud
# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO
# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0
# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y
# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p
# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y
# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB
# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw
# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA
# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY
# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj
# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd
# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ
# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf
# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ
# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j
# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B
# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96
# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7
# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I
# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIVZzCCFWMCAQEwgZUwfjELMAkG
# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z
# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAd9r8C6Sp0q00AAAAAAB3zAN
# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor
# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgEJeqmn+K
# FyRMYtjUa3spej7vxw+7EUarEqUXYTORDEQwQgYKKwYBBAGCNwIBDDE0MDKgFIAS
# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN
# BgkqhkiG9w0BAQEFAASCAQCwgFC1vODk91hKSWoycnIuebMZ7EBmfNkt3eq84PPr
# VkvpxZOWJLSY6jbsWMYTx6ImbDEgFAr48AMHWTfNsa+4eACuIhV0NSNGY+lkWJPT
# NRmRbvqQMXUGIto3UKfRADga7M69oen9eqwcv//9/dOltXXUm6dsVuXaQQtF/tZL
# eudM94TtdIkYVxvHDVObZBlDL8W70GIsCg81A//gaanVEDBxMAT17VSuy/4CsD9b
# UfeLRr/XdX/17f1YMnvIOnrQLDXBmqQ3+VtmzAUrfKzniozC2fRt7KEgpKjxreUi
# YimOOk+S6daobTmh2oi/hF0yDD6dMGhv/L0YW2RGdTH/oYIS8TCCEu0GCisGAQQB
# gjcDAwExghLdMIIS2QYJKoZIhvcNAQcCoIISyjCCEsYCAQMxDzANBglghkgBZQME
# AgEFADCCAVUGCyqGSIb3DQEJEAEEoIIBRASCAUAwggE8AgEBBgorBgEEAYRZCgMB
# MDEwDQYJYIZIAWUDBAIBBQAEIFgdfObH5clnDtJtA/HH9ugB0NAcUzmvyFAK56fH
# n2v7AgZhcDU889gYEzIwMjExMDI3MDcxMTI1Ljc5NFowBIACAfSggdSkgdEwgc4x
# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1p
# Y3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMg
# VFNTIEVTTjo4OTdBLUUzNTYtMTcwMTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt
# U3RhbXAgU2VydmljZaCCDkQwggT1MIID3aADAgECAhMzAAABYAcg8JJI2r7rAAAA
# AAFgMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo
# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y
# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw
# MB4XDTIxMDExNDE5MDIyMFoXDTIyMDQxMTE5MDIyMFowgc4xCzAJBgNVBAYTAlVT
# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVy
# YXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjo4OTdB
# LUUzNTYtMTcwMTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vydmlj
# ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALQxgBzQ8sbM8VIzPgmN
# 9TWkWs2k8S1CZUyN58SLzLW3158rZZ/O4l68Gb4SkE/iBUSk4yVesBKOVonbLL3n
# AwIXmsYhn5BR0RXPI9XLizzVqslUgHPzTPRtMtZu+jtygCph5MfquBia/Sp0Hjj7
# lEDrNHR/C/1/xCaZyQpgIR7lARJIaRVh5y+WqbqmbUsFIoF5UHwwzJFJpOXxYtA0
# uWuraKpdCUzAzh6wkKZgMkRrXP3E/w5cs4U7cYiYjZRGlm3Gr+vJgkyTsKW3OBiT
# tkaW/ejtpW+S6pu/NezXFqAzwuSDjeIImOOeEavlA9O9VpCexo1z6VCpp0Eb3904
# uhMCAwEAAaOCARswggEXMB0GA1UdDgQWBBSnmx74t6gX4JrhdTIJdXzQ674fYzAf
# BgNVHSMEGDAWgBTVYzpcijGQ80N7fEYbxTNoWoVtVTBWBgNVHR8ETzBNMEugSaBH
# hkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNU
# aW1TdGFQQ0FfMjAxMC0wNy0wMS5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUF
# BzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1RpbVN0
# YVBDQV8yMDEwLTA3LTAxLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsG
# AQUFBwMIMA0GCSqGSIb3DQEBCwUAA4IBAQAVNJgImzoFpolQdU8nYdcX7ySlKEP3
# 59qg5Q/SFp7e4j5dA1V+ksvmKdZB1jhjsBs2ImNOItyNY2u2Nwja4JNxFf+2y/KT
# cP8GE97H8ogr9c+Vb1uHF7gtne3F8vnv0Cb79K4mbhi6S0QIhqPcI8c36UqePwKM
# Lm32J+vO9wuKW2NK8v9bA5gQu92Aj6uf7AGAuNYHIh0iZok+bcuJpYPKKY1nvS2E
# a1gzmF8J/irPY4MW8v4/gaekJosfkc6gboma4w1gFDGKgKhv7tlT1+53uHGR2TS1
# qMYeNwGfGtjiTxQ1BlQEZibk7PFfCe+KRhTRTCRtzWnSg3NEE0y2qLnUMIIGcTCC
# BFmgAwIBAgIKYQmBKgAAAAAAAjANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC
# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV
# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJv
# b3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMTAwNzAxMjEzNjU1WhcN
# MjUwNzAxMjE0NjU1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv
# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0
# aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCASIw
# DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKkdDbx3EYo6IOz8E5f1+n9plGt0
# VBDVpQoAgoX77XxoSyxfxcPlYcJ2tz5mK1vwFVMnBDEfQRsalR3OCROOfGEwWbEw
# RA/xYIiEVEMM1024OAizQt2TrNZzMFcmgqNFDdDq9UeBzb8kYDJYYEbyWEeGMoQe
# dGFnkV+BVLHPk0ySwcSmXdFhE24oxhr5hoC732H8RsEnHSRnEnIaIYqvS2SJUGKx
# Xf13Hz3wV3WsvYpCTUBR0Q+cBj5nf/VmwAOWRH7v0Ev9buWayrGo8noqCjHw2k4G
# kbaICDXoeByw6ZnNPOcvRLqn9NxkvaQBwSAJk3jN/LzAyURdXhacAQVPIk0CAwEA
# AaOCAeYwggHiMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBTVYzpcijGQ80N7
# fEYbxTNoWoVtVTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC
# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX
# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v
# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI
# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j
# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDCBoAYDVR0g
# AQH/BIGVMIGSMIGPBgkrBgEEAYI3LgMwgYEwPQYIKwYBBQUHAgEWMWh0dHA6Ly93
# d3cubWljcm9zb2Z0LmNvbS9QS0kvZG9jcy9DUFMvZGVmYXVsdC5odG0wQAYIKwYB
# BQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AUABvAGwAaQBjAHkAXwBTAHQAYQB0AGUA
# bQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAAfmiFEN4sbgmD+BcQM9naOh
# IW+z66bM9TG+zwXiqf76V20ZMLPCxWbJat/15/B4vceoniXj+bzta1RXCCtRgkQS
# +7lTjMz0YBKKdsxAQEGb3FwX/1z5Xhc1mCRWS3TvQhDIr79/xn/yN31aPxzymXlK
# kVIArzgPF/UveYFl2am1a+THzvbKegBvSzBEJCI8z+0DpZaPWSm8tv0E4XCfMkon
# /VWvL/625Y4zu2JfmttXQOnxzplmkIz/amJ/3cVKC5Em4jnsGUpxY517IW3DnKOi
# PPp/fZZqkHimbdLhnPkd/DjYlPTGpQqWhqS9nhquBEKDuLWAmyI4ILUl5WTs9/S/
# fmNZJQ96LjlXdqJxqgaKD4kWumGnEcua2A5HmoDF0M2n0O99g/DhO3EJ3110mCII
# YdqwUB5vvfHhAN/nMQekkzr3ZUd46PioSKv33nJ+YWtvd6mBy6cJrDm77MbL2IK0
# cs0d9LiFAR6A+xuJKlQ5slvayA1VmXqHczsI5pgt6o3gMy4SKfXAL1QnIffIrE7a
# KLixqduWsqdCosnPGUFN4Ib5KpqjEWYw07t0MkvfY3v1mYovG8chr1m1rtxEPJdQ
# cdeh0sVV42neV8HR3jDA/czmTfsNv11P6Z0eGTgvvM9YBS7vDaBQNdrvCScc1bN+
# NR4Iuto229Nfj950iEkSoYIC0jCCAjsCAQEwgfyhgdSkgdEwgc4xCzAJBgNVBAYT
# AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD
# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBP
# cGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjo4
# OTdBLUUzNTYtMTcwMTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vy
# dmljZaIjCgEBMAcGBSsOAwIaAxUA+zKSdHWLRNzIlyqHVxXZgKnZ0KKggYMwgYCk
# fjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD
# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIF
# AOUjRUEwIhgPMjAyMTEwMjcwNzI1NTNaGA8yMDIxMTAyODA3MjU1M1owdzA9Bgor
# BgEEAYRZCgQBMS8wLTAKAgUA5SNFQQIBADAKAgEAAgIlYgIB/zAHAgEAAgIRTTAK
# AgUA5SSWwQIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB
# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBBQUAA4GBADUnILc7bk9NL9ba
# /pD2dCyObzybcNfPPRtwowPy5DHvcvjIsgLi0r1sZHdWRWo5lA5jMRM3g+9bDzzr
# Y6XmcRNUIWdl+zLX2SCyoipHuRMtfkBuG4VVVs4pHwHYU8d+0HaKvsO4W4nwmYwd
# 1fLZuki8xULclFIP3HMnOg3+KGeRMYIDDTCCAwkCAQEwgZMwfDELMAkGA1UEBhMC
# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV
# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp
# bWUtU3RhbXAgUENBIDIwMTACEzMAAAFgByDwkkjavusAAAAAAWAwDQYJYIZIAWUD
# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B
# CQQxIgQgg5J74muRKiTrWH7zMWhETrMtboSqQ7KaJK4ZiknPhPUwgfoGCyqGSIb3
# DQEJEAIvMYHqMIHnMIHkMIG9BCACEqO9o3Mul1tFp68e6ivKfpXS/49cFwniXkj3
# qLBluTCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u
# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp
# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB
# YAcg8JJI2r7rAAAAAAFgMCIEILScKXbcuccvmXNpUcULf4OsQgg+jegZYOR27lxS
# VtQJMA0GCSqGSIb3DQEBCwUABIIBAAFZ1dyLqbdNbzOA9llhX/adnBAZlbtqvUB4
# oAU/hKVDdtEKpMwpnn7FusyPfXIfz6kbEwZssu0pse+Z+ImvRyBpNlKX+KG9CcdT
# gg4QvGhWJpbGIonFUGT+Ft+jkUCABdNY1kPkZM6lx0ngyMSTSdwDR+74putc1snE
# +DAwLp1yk8za+yKR0t6NmM1ntC2pCtMt4JJ77lED07nhAmB7bJuQTUzqkix+Ap1Q
# sz3litZTh0D++cH9ccT97nbp9yycajBJWg5E8h22cs8WSWd7JfVZlLb2BdBu5pNx
# L+Y0nSIcMqCzSfBWZqiNFxxf4zb4ZF/em/oT+dwampAdK97jPnk=
# SIG # End signature block