Public/UserCostAttribution.ps1

Function Get-NmeUserCostAttributionConfiguration {
    <#
 
    .SYNOPSIS
 
    List configurations.
 
    .DESCRIPTION
 
    List configurations.
 
    This function calls the /api/v1/user-cost-attribution/configuration endpoint of the NME REST API, using the get method.
 
 
 
 
    #>


    [CmdletBinding()]
    Param(

    )
    Set-NmeAuthHeaders
    Try {
        $Result = Invoke-RestMethod "$script:NmeUri/api/v1/user-cost-attribution/configuration$Querystring" -Method get -Headers $script:AuthHeaders -ContentType 'application/json'
        $Result.PSObject.TypeNames.Insert(0, 'NmeUserCostAttributionConfigurationModel')
        $Result | CapProps
    }
    Catch {
        $message = ParseErrorForResponseBody($_)
        write-error ($message | out-string)
    }
}
Function New-NmeUserCostAttributionConfiguration {
    <#
 
    .SYNOPSIS
 
    Create configuration.
 
    .DESCRIPTION
 
    Create configuration.
 
    This function calls the /api/v1/user-cost-attribution/configuration endpoint of the NME REST API, using the post method.
 
 
    .PARAMETER NmeUserCostAttributionConfigurationCreateModel
 
    Requires an NmeUserCostAttributionConfigurationCreateModel object, as generated by the New-NmeUserCostAttributionConfigurationCreateModel command.
 
    #>


    [CmdletBinding()]
    Param(
        [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$True)][ValidateScript({if ($_.PSObject.TypeNames -contains "NmeUserCostAttributionConfigurationCreateModel"){$true} else{throw " is not a NmeUserCostAttributionConfigurationCreateModel object."}})]$NmeUserCostAttributionConfigurationCreateModel
    )
    Set-NmeAuthHeaders
    Try {
        $json = $NmeUserCostAttributionConfigurationCreateModel | ConvertTo-Json -Depth 20
        Write-Debug 'json:'
        Write-Debug $json
        $Result = Invoke-RestMethod "$script:NmeUri/api/v1/user-cost-attribution/configuration$QueryString" -Method post -Headers $script:AuthHeaders -ContentType 'application/json' -body $json
        Write-Verbose ($result | out-string)
        $Result.PSObject.TypeNames.Insert(0, 'NmeResponseWithJobAndUserCostAttributionConfigurationModel')
        $Result | CapProps
    }
    Catch {
        $message = ParseErrorForResponseBody($_)
        write-error ($message | out-string)
    }
}
Function Get-NmeUserCostAttributionConfigurationById {
    <#
 
    .SYNOPSIS
 
    Get configuration.
 
    .DESCRIPTION
 
    Get configuration.
 
    This function calls the /api/v1/user-cost-attribution/configuration/{id} endpoint of the NME REST API, using the get method.
 
 
    .PARAMETER Id
 
    ID of scripted Action
 
    #>


    [CmdletBinding()]
    Param(
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$Id
    )
    Set-NmeAuthHeaders
    Try {
        $Result = Invoke-RestMethod "$script:NmeUri/api/v1/user-cost-attribution/configuration/$Id$Querystring" -Method get -Headers $script:AuthHeaders -ContentType 'application/json'
        $Result.PSObject.TypeNames.Insert(0, 'NmeUserCostAttributionConfigurationModel')
        $Result | Add-Member -NotePropertyName 'id' -NotePropertyValue $id -erroraction 'SilentlyContinue'
        $Result | CapProps
    }
    Catch {
        $message = ParseErrorForResponseBody($_)
        write-error ($message | out-string)
    }
}
Function Set-NmeUserCostAttributionConfigurationId {
    <#
 
    .SYNOPSIS
 
    Partially update configuration.
 
    .DESCRIPTION
 
    Partially update configuration.
 
    This function calls the /api/v1/user-cost-attribution/configuration/{id} endpoint of the NME REST API, using the patch method.
 
 
    .PARAMETER Id
 
    ID of scripted Action
 
    .PARAMETER NmeUserCostAttributionConfigurationPatchModel
 
    Requires an NmeUserCostAttributionConfigurationPatchModel object, as generated by the New-NmeUserCostAttributionConfigurationPatchModel command.
 
    #>


    [CmdletBinding()]
    Param(
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$Id,
        [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$True)][ValidateScript({if ($_.PSObject.TypeNames -contains "NmeUserCostAttributionConfigurationPatchModel"){$true} else{throw " is not a NmeUserCostAttributionConfigurationPatchModel object."}})]$NmeUserCostAttributionConfigurationPatchModel
    )
    Set-NmeAuthHeaders
    Try {
        $json = $NmeUserCostAttributionConfigurationPatchModel | ConvertTo-Json -Depth 20
        Write-Debug 'json:'
        Write-Debug $json
        $Result = Invoke-RestMethod "$script:NmeUri/api/v1/user-cost-attribution/configuration/$Id$QueryString" -Method patch -Headers $script:AuthHeaders -ContentType 'application/json' -body $json
        Write-Verbose ($result | out-string)
        $Result.PSObject.TypeNames.Insert(0, 'NmeResponseWithJobAndUserCostAttributionConfigurationModel')
        $Result | Add-Member -NotePropertyName 'id' -NotePropertyValue $id -erroraction 'SilentlyContinue'
        $Result | CapProps
    }
    Catch {
        $message = ParseErrorForResponseBody($_)
        write-error ($message | out-string)
    }
}
Function Remove-NmeUserCostAttributionConfigurationId {
    <#
 
    .SYNOPSIS
 
    Delete configuration.
 
    .DESCRIPTION
 
    Delete configuration.
 
    This function calls the /api/v1/user-cost-attribution/configuration/{id} endpoint of the NME REST API, using the delete method.
 
 
    .PARAMETER Id
 
    ID of scripted Action
 
    #>


    [CmdletBinding()]
    Param(
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$Id
    )
    Set-NmeAuthHeaders
    Try {
        $Result = Invoke-RestMethod "$script:NmeUri/api/v1/user-cost-attribution/configuration/$Id$Querystring" -Method delete -Headers $script:AuthHeaders -ContentType 'application/json'
        $Result.PSObject.TypeNames.Insert(0, 'NmeResponseWithJob')
        $Result | Add-Member -NotePropertyName 'id' -NotePropertyValue $id -erroraction 'SilentlyContinue'
        $Result | CapProps
    }
    Catch {
        $message = ParseErrorForResponseBody($_)
        write-error ($message | out-string)
    }
}
Function Get-NmeUserCostAttributionReport {
    <#
 
    .SYNOPSIS
 
    Get report status and result if available.
 
    .DESCRIPTION
 
    Get report status and result if available.
 
    This function calls the /api/v1/user-cost-attribution/configuration/{id}/report/{year}/{month} endpoint of the NME REST API, using the get method.
 
 
    .PARAMETER Id
 
    ID of scripted Action
 
    .PARAMETER Year
 
    The year for the report
 
    .PARAMETER Month
 
    The month for the report
 
    .PARAMETER ReportType
 
    Uniform, Proportional, or Unallocated
 
    #>


    [CmdletBinding()]
    Param(
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][ValidatePattern('(\{|\()?[A-Za-z0-9]{4}([A-Za-z0-9]{4}\-?){4}[A-Za-z0-9]{12}(\}|\()?')][string]$Id,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][int]$Year,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][int]$Month,
        [Parameter(ValueFromPipelineByPropertyName=$true)][ValidateSet("Uniform", "Proportional", "Unallocated")][string]$ReportType
    )
    Set-NmeAuthHeaders
    Try {
        $QueryString = '?'
        $QueryStrings = @{}
        $QueryStrings += @{reportType= $reportType}
        $QueryString += ($QueryStrings.GetEnumerator() | % { "$($_.Key)=$($_.Value)" }) -join '&'
        $Result = Invoke-RestMethod "$script:NmeUri/api/v1/user-cost-attribution/configuration/$Id/report/$Year/$Month$Querystring" -Method get -Headers $script:AuthHeaders -ContentType 'application/json'
        $Result.PSObject.TypeNames.Insert(0, 'NmeUserCostAttributionReportResponse')
        $Result | Add-Member -NotePropertyName 'id' -NotePropertyValue $id -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'year' -NotePropertyValue $year -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'month' -NotePropertyValue $month -erroraction 'SilentlyContinue'
        $Result | CapProps
    }
    Catch {
        $message = ParseErrorForResponseBody($_)
        write-error ($message | out-string)
    }
}
Function New-NmeUserCostAttributionReport {
    <#
 
    .SYNOPSIS
 
    Create report.
 
    .DESCRIPTION
 
    Create report.
 
    This function calls the /api/v1/user-cost-attribution/configuration/{id}/report/{year}/{month} endpoint of the NME REST API, using the post method.
 
 
    .PARAMETER Id
 
    ID of scripted Action
 
    .PARAMETER Year
 
    The year for the report
 
    .PARAMETER Month
 
    The month for the report
 
    #>


    [CmdletBinding()]
    Param(
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][ValidatePattern('(\{|\()?[A-Za-z0-9]{4}([A-Za-z0-9]{4}\-?){4}[A-Za-z0-9]{12}(\}|\()?')][string]$Id,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][int]$Year,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][int]$Month
    )
    Set-NmeAuthHeaders
    Try {
        $Result = Invoke-RestMethod "$script:NmeUri/api/v1/user-cost-attribution/configuration/$Id/report/$Year/$Month$Querystring" -Method post -Headers $script:AuthHeaders -ContentType 'application/json'
        $Result.PSObject.TypeNames.Insert(0, 'NmeResponseWithJob')
        $Result | Add-Member -NotePropertyName 'id' -NotePropertyValue $id -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'year' -NotePropertyValue $year -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'month' -NotePropertyValue $month -erroraction 'SilentlyContinue'
        $Result | CapProps
    }
    Catch {
        $message = ParseErrorForResponseBody($_)
        write-error ($message | out-string)
    }
}
Function Get-NmeUserCostAttributionReportExport {
    <#
 
    .SYNOPSIS
 
    Export report (csv).
 
    .DESCRIPTION
 
    Export report (csv).
 
    This function calls the /api/v1/user-cost-attribution/configuration/{id}/report/{year}/{month}/export endpoint of the NME REST API, using the get method.
 
 
    .PARAMETER Id
 
    ID of scripted Action
 
    .PARAMETER Year
 
    The year for the report
 
    .PARAMETER Month
 
    The month for the report
 
    .PARAMETER ReportType
 
    Uniform, Proportional, or Unallocated
 
    .PARAMETER ExportType
 
    UserCostDetail, ResourceCostDetail, or ResourceCostSummary
 
    #>


    [CmdletBinding()]
    Param(
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][ValidatePattern('(\{|\()?[A-Za-z0-9]{4}([A-Za-z0-9]{4}\-?){4}[A-Za-z0-9]{12}(\}|\()?')][string]$Id,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][int]$Year,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][int]$Month,
        [Parameter(ValueFromPipelineByPropertyName=$true)][ValidateSet("Uniform", "Proportional", "Unallocated")][string]$ReportType,
        [Parameter(ValueFromPipelineByPropertyName=$true)][ValidateSet("UserCostDetail", "ResourceCostDetail", "ResourceCostSummary")][string]$ExportType
    )
    Set-NmeAuthHeaders
    Try {
        $QueryString = '?'
        $QueryStrings = @{}
        $QueryStrings += @{reportType= $reportType}
        $QueryStrings += @{exportType= $exportType}
        $QueryString += ($QueryStrings.GetEnumerator() | % { "$($_.Key)=$($_.Value)" }) -join '&'
        $Result = Invoke-RestMethod "$script:NmeUri/api/v1/user-cost-attribution/configuration/$Id/report/$Year/$Month/export$Querystring" -Method get -Headers $script:AuthHeaders -ContentType 'application/json'
        $Result | CapProps
    }
    Catch {
        $message = ParseErrorForResponseBody($_)
        write-error ($message | out-string)
    }
}