Public/Block-DarktraceMail.ps1
function Block-DarktraceMail { <# .SYNOPSIS Block a mail .DESCRIPTION Set hold action to a mail .EXAMPLE PS> .INPUTS .OUTPUTS $true or $false #> [CmdletBinding(DefaultParameterSetName="WithUUID")] [OutputType('[bool]', ParameterSetName="none")] Param ( [Parameter( HelpMessage = 'Message from Search-DarktraceMail or Get-DarktraceMail', Mandatory = $true, ValueFromPipeline = $true, Position = 0, ParameterSetName="WithDarktraceSearchMail" )] [Object] $Message, [Parameter( HelpMessage = 'UUID', Mandatory = $true, ValueFromPipeline = $true, Position = 0, ParameterSetName="WithUUID" )] [String] $uuid ) Begin { } Process { if ($uuid) { Write-Verbose "UUID specified Need to grab message details." Try { $message = $uuid | Get-DarktraceMail } Catch { throw $_.Exception } } if ($message -and $message.GetType() -in [DarktraceSearchMail], [DarktraceGetMail]) { Try { $body = @{ "action"= "hold"; "recipients" = @($message.rcpts.rcpt_to) } | convertto-json Write-Verbose "Sending body $($body)" $result = Send-DarktraceMailApiRequest -endpoint "agemail/api/ep/api/v1.0/emails/$($message.uuid)/action" -method "POST" -body $body } catch { throw $_.Exception } } else { throw "Incorrect message provided" } } End { if ($result.resp) { $result.resp } else { $result } } } |