Get-GitLabProjectMergeRequestNote.ps1

function Get-GitLabProjectMergeRequestNote
{
  <#
      .SYNOPSIS
      Get Merge Request Note
      .DESCRIPTION
      Get note for specified Merge Request.
      Returnes all notes by default, Specify -NoteID to return single note.
      .EXAMPLE
      Get-GitLabProjectMergeRequestNote -ProjectID 20 -MergeRequestID 1
      ---------------------------------------------------------------
      get all notes for project 20 and Merge Request 1
      .EXAMPLE
      Get-GitLabProjectMergeRequestNote -ProjectID 20 -MergeRequestID 1 -NoteID 3
      ---------------------------------------------------------------
      gets note 3 for project 20 and Merge Request 1
  #>

  [CmdletBinding(DefaultParameterSetName = 'AllNotes')]
  [Alias('Get-GitLabProjectMRNote')]
  [OutputType()]
  Param
  (
    #The ID of a project
    [Parameter(HelpMessage = 'ProjectID',
        Mandatory = $true)]
    [Alias('ID')]
    [int]$ProjectID,

    #The ID of a projects Merge Request
    [Parameter(HelpMessage = 'MergeRequestID',
        Mandatory = $true)]
    [Alias('merge_request_id','MRID')]
    [string]$MergeRequestID,

    #The ID of a MergeRequests note
    [Parameter(ParameterSetName = 'SingleNote',
        HelpMessage = 'NoteID',
        Mandatory = $true)]
    [Alias('note_id')]
    [string]$NoteID,

    # Existing GitlabConnector Object, can be retrieved with Get-GitlabConnect
    [Parameter(HelpMessage = 'Specify Existing GitlabConnector',
        Mandatory = $false,
        DontShow = $true)]
    [psobject]$GitlabConnect = (Get-GitlabConnect)
  )


  $httpmethod = 'get'
  $apiurl = "projects/$ProjectID/merge_requests/$MergeRequestID/notes"
  $parameters = @{}

  if($PSCmdlet.ParameterSetName -like 'AllNotes')
  {
    #no further action required
  }

  if($PSCmdlet.ParameterSetName -like 'SingleNote')
  {
    $apiurl += "/$NoteID"
  }

  $GitlabConnect.callapi($apiurl,$httpmethod,$parameters)
}