Private/Get-CustomDetectionActionMap.ps1
|
function Get-CustomDetectionActionMap { <# .SYNOPSIS Returns the table of supported automated actions. .DESCRIPTION Each entry links the YAML actionType to its automatedActions collection, the legacy responseAction type name and the default column mapping. #> [CmdletBinding()] [OutputType([object[]])] param() $deviceDefaults = [ordered]@{ deviceIdColumn = 'DeviceId' } # The API stores one hash column per file action, so only sha1Column is defaulted $fileDefaults = [ordered]@{ sha1Column = 'SHA1' } $sidDefaults = [ordered]@{ accountSidColumn = 'AccountSid' } $emailDefaults = [ordered]@{ networkMessageIdColumn = 'NetworkMessageId'; recipientColumn = 'RecipientEmailAddress' } # Fields lists the properties the Graph action type documents $deviceFields = @('deviceIdColumn') $fileFields = @('sha1Column', 'sha256Column', 'deviceGroupNames') $sidFields = @('accountSidColumn') $emailFields = @('networkMessageIdColumn', 'recipientColumn') return @( [PSCustomObject]@{ ActionType = 'IsolateMachine'; Collection = 'isolateDevices'; LegacyType = 'isolateDeviceResponseAction'; Defaults = [ordered]@{ deviceIdColumn = 'DeviceId'; isolationType = 'full' }; Fields = @('deviceIdColumn', 'isolationType') } [PSCustomObject]@{ ActionType = 'CollectInvestigationPackage'; Collection = 'collectInvestigationPackages'; LegacyType = 'collectInvestigationPackageResponseAction'; Defaults = $deviceDefaults; Fields = $deviceFields } [PSCustomObject]@{ ActionType = 'RunAntivirusScan'; Collection = 'runAntivirusScans'; LegacyType = 'runAntivirusScanResponseAction'; Defaults = $deviceDefaults; Fields = $deviceFields } [PSCustomObject]@{ ActionType = 'InitiateInvestigation'; Collection = 'initiateInvestigations'; LegacyType = 'initiateInvestigationResponseAction'; Defaults = $deviceDefaults; Fields = $deviceFields } [PSCustomObject]@{ ActionType = 'RestrictAppExecution'; Collection = 'restrictAppExecutions'; LegacyType = 'restrictAppExecutionResponseAction'; Defaults = $deviceDefaults; Fields = $deviceFields } [PSCustomObject]@{ ActionType = 'StopAndQuarantineFile'; Collection = 'stopAndQuarantineFiles'; LegacyType = 'stopAndQuarantineFileResponseAction'; Defaults = [ordered]@{ deviceIdColumn = 'DeviceId'; sha1Column = 'SHA1' }; Fields = @('deviceIdColumn', 'sha1Column') } [PSCustomObject]@{ ActionType = 'AllowFile'; Collection = 'allowFiles'; LegacyType = 'allowFileResponseAction'; Defaults = $fileDefaults; Fields = $fileFields } [PSCustomObject]@{ ActionType = 'BlockFile'; Collection = 'blockFiles'; LegacyType = 'blockFileResponseAction'; Defaults = $fileDefaults; Fields = $fileFields } [PSCustomObject]@{ ActionType = 'DisableUser'; Collection = 'disableUsers'; LegacyType = 'disableUserResponseAction'; Defaults = $sidDefaults; Fields = $sidFields } [PSCustomObject]@{ ActionType = 'ForceUserPasswordReset'; Collection = 'forceUserPasswordResets'; LegacyType = 'forceUserPasswordResetResponseAction'; Defaults = $sidDefaults; Fields = $sidFields } [PSCustomObject]@{ ActionType = 'MarkUserAsCompromised'; Collection = 'markUsersAsCompromised'; LegacyType = 'markUserAsCompromisedResponseAction'; Defaults = [ordered]@{ accountObjectIdColumn = 'AccountObjectId' }; Fields = @('accountObjectIdColumn') } [PSCustomObject]@{ ActionType = 'HardDeleteEmail'; Collection = 'hardDeleteEmails'; LegacyType = 'hardDeleteResponseAction'; Defaults = $emailDefaults; Fields = $emailFields } [PSCustomObject]@{ ActionType = 'SoftDeleteEmail'; Collection = 'softDeleteEmails'; LegacyType = 'softDeleteResponseAction'; Defaults = $emailDefaults; Fields = $emailFields } [PSCustomObject]@{ ActionType = 'MoveEmailToInbox'; Collection = 'moveEmailsToInbox'; LegacyType = 'moveToInboxResponseAction'; Defaults = $emailDefaults; Fields = $emailFields } [PSCustomObject]@{ ActionType = 'MoveEmailToJunk'; Collection = 'moveEmailsToJunk'; LegacyType = 'moveToJunkResponseAction'; Defaults = $emailDefaults; Fields = $emailFields } [PSCustomObject]@{ ActionType = 'MoveEmailToDeletedItems'; Collection = 'moveEmailsToDeletedItems'; LegacyType = 'moveToDeletedItemsResponseAction'; Defaults = $emailDefaults; Fields = $emailFields } ) } |