Public/installation-tokens.ps1
function Edit-FalconInstallTokenSetting { <# .SYNOPSIS Update installation token settings .DESCRIPTION Requires 'Installation token settings: Write'. .PARAMETER TokensRequired Installation token requirement .PARAMETER MaxActiveToken Maximum number of active installation tokens .LINK https://github.com/crowdstrike/psfalcon/wiki/Edit-FalconInstallTokenSetting #> [CmdletBinding(DefaultParameterSetName='/installation-tokens/entities/customer-settings/v1:patch', SupportsShouldProcess)] param( [Parameter(ParameterSetName='/installation-tokens/entities/customer-settings/v1:patch',Position=1)] [Alias('tokens_required')] [boolean]$TokenRequired, [Parameter(ParameterSetName='/installation-tokens/entities/customer-settings/v1:patch',Position=2)] [Alias('max_active_tokens')] [int]$MaxActiveToken ) begin { $Param = @{ Command = $MyInvocation.MyCommand.Name Endpoint = $PSCmdlet.ParameterSetName Format = @{ Body = @{ root = @('tokens_required','max_active_tokens') }} } } process { Invoke-Falcon @Param -Inputs $PSBoundParameters } } function Edit-FalconInstallToken { <# .SYNOPSIS Modify installation tokens .DESCRIPTION Requires 'Installation tokens: Write'. .PARAMETER Label Installation token label .PARAMETER ExpiresTimestamp Installation token expiration time (RFC3339), or 'null' .PARAMETER Revoked Set revocation status .PARAMETER Id Installation token identifier .LINK https://github.com/crowdstrike/psfalcon/wiki/Edit-FalconInstallToken #> [CmdletBinding(DefaultParameterSetName='/installation-tokens/entities/tokens/v1:patch',SupportsShouldProcess)] param( [Parameter(ParameterSetName='/installation-tokens/entities/tokens/v1:patch', ValueFromPipelineByPropertyName,Position=1)] [string]$Label, [Parameter(ParameterSetName='/installation-tokens/entities/tokens/v1:patch', ValueFromPipelineByPropertyName,Position=2)] [ValidatePattern('^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z|null)$')] [Alias('expires_timestamp')] [string]$ExpiresTimestamp, [Parameter(ParameterSetName='/installation-tokens/entities/tokens/v1:patch', ValueFromPipelineByPropertyName,Position=3)] [boolean]$Revoked, [Parameter(ParameterSetName='/installation-tokens/entities/tokens/v1:patch',Mandatory, ValueFromPipelineByPropertyName,Position=4)] [ValidatePattern('^[a-fA-F0-9]{32}$')] [Alias('Ids')] [string[]]$Id ) begin { $Param = @{ Command = $MyInvocation.MyCommand.Name Endpoint = $PSCmdlet.ParameterSetName Format = @{ Query = @('ids') Body = @{ root = @('label','revoked','expires_timestamp') } } } [System.Collections.Generic.List[string]]$List = @() } process { if ($Id) { @($Id).foreach{ $List.Add($_) }}} end { if ($List) { $PSBoundParameters['Id'] = @($List | Select-Object -Unique) Invoke-Falcon @Param -Inputs $PSBoundParameters } } } function Get-FalconInstallToken { <# .SYNOPSIS Search for installation tokens .DESCRIPTION Requires 'Installation tokens: Read'. .PARAMETER Id Installation token identifier .PARAMETER Filter Falcon Query Language expression to limit results .PARAMETER Sort Property and direction to sort results .PARAMETER Limit Maximum number of results per request .PARAMETER Offset Position to begin retrieving results .PARAMETER Detailed Retrieve detailed information .PARAMETER All Repeat requests until all available results are retrieved .PARAMETER Total Display total result count instead of results .LINK https://github.com/crowdstrike/psfalcon/wiki/Get-FalconInstallToken #> [CmdletBinding(DefaultParameterSetName='/installation-tokens/queries/tokens/v1:get',SupportsShouldProcess)] param( [Parameter(ParameterSetName='/installation-tokens/entities/tokens/v1:get',Mandatory, ValueFromPipelineByPropertyName,ValueFromPipeline)] [ValidatePattern('^[a-fA-F0-9]{32}$')] [Alias('Ids')] [string[]]$Id, [Parameter(ParameterSetName='/installation-tokens/queries/tokens/v1:get',Position=1)] [ValidateScript({ Test-FqlStatement $_ })] [string]$Filter, [Parameter(ParameterSetName='/installation-tokens/queries/tokens/v1:get',Position=2)] [string]$Sort, [Parameter(ParameterSetName='/installation-tokens/queries/tokens/v1:get',Position=3)] [ValidateRange(1,1000)] [int32]$Limit, [Parameter(ParameterSetName='/installation-tokens/queries/tokens/v1:get')] [int32]$Offset, [Parameter(ParameterSetName='/installation-tokens/queries/tokens/v1:get')] [switch]$Detailed, [Parameter(ParameterSetName='/installation-tokens/queries/tokens/v1:get')] [switch]$All, [Parameter(ParameterSetName='/installation-tokens/queries/tokens/v1:get')] [switch]$Total ) begin { $Param = @{ Command = $MyInvocation.MyCommand.Name Endpoint = $PSCmdlet.ParameterSetName Format = @{ Query = @('sort','ids','offset','limit','filter') } } [System.Collections.Generic.List[string]]$List = @() } process { if ($Id) { @($Id).foreach{ $List.Add($_) }}} end { if ($List) { $PSBoundParameters['Id'] = @($List | Select-Object -Unique) } Invoke-Falcon @Param -Inputs $PSBoundParameters } } function Get-FalconInstallTokenEvent { <# .SYNOPSIS Search for installation token audit events .DESCRIPTION Requires 'Installation tokens: Read'. .PARAMETER Id Installation token audit event identifier .PARAMETER Filter Falcon Query Language expression to limit results .PARAMETER Sort Property and direction to sort results .PARAMETER Limit Maximum number of results per request .PARAMETER Offset Position to begin retrieving results .PARAMETER Detailed Retrieve detailed information .PARAMETER All Repeat requests until all available results are retrieved .PARAMETER Total Display total result count instead of results .LINK https://github.com/crowdstrike/psfalcon/wiki/Get-FalconInstallTokenEvent #> [CmdletBinding(DefaultParameterSetName='/installation-tokens/queries/audit-events/v1:get', SupportsShouldProcess)] param( [Parameter(ParameterSetName='/installation-tokens/entities/audit-events/v1:get',Mandatory, ValueFromPipelineByPropertyName,ValueFromPipeline)] [ValidatePattern('^[a-fA-F0-9]{32}$')] [Alias('Ids')] [string[]]$Id, [Parameter(ParameterSetName='/installation-tokens/queries/audit-events/v1:get',Position=1)] [ValidateScript({ Test-FqlStatement $_ })] [string]$Filter, [Parameter(ParameterSetName='/installation-tokens/queries/audit-events/v1:get',Position=2)] [string]$Sort, [Parameter(ParameterSetName='/installation-tokens/queries/audit-events/v1:get',Position=3)] [int32]$Limit, [Parameter(ParameterSetName='/installation-tokens/queries/audit-events/v1:get')] [int32]$Offset, [Parameter(ParameterSetName='/installation-tokens/queries/audit-events/v1:get')] [switch]$Detailed, [Parameter(ParameterSetName='/installation-tokens/queries/audit-events/v1:get')] [switch]$All, [Parameter(ParameterSetName='/installation-tokens/queries/audit-events/v1:get')] [switch]$Total ) begin { $Param = @{ Command = $MyInvocation.MyCommand.Name Endpoint = $PSCmdlet.ParameterSetName Format = @{ Query = @('sort','ids','offset','limit','filter') } } [System.Collections.Generic.List[string]]$List = @() } process { if ($Id) { @($Id).foreach{ $List.Add($_) }}} end { if ($List) { $PSBoundParameters['Id'] = @($List | Select-Object -Unique) } Invoke-Falcon @Param -Inputs $PSBoundParameters } } function Get-FalconInstallTokenSetting { <# .SYNOPSIS Retrieve installation token settings .DESCRIPTION Returns the maximum number of allowed installation tokens,and whether or not they are required for installation of the Falcon sensor. Requires 'Installation tokens: Read'. .LINK https://github.com/crowdstrike/psfalcon/wiki/Get-FalconInstallTokenSetting #> [CmdletBinding(DefaultParameterSetName='/installation-tokens/entities/customer-settings/v1:get', SupportsShouldProcess)] param() process { Invoke-Falcon -Endpoint $PSCmdlet.ParameterSetName } } function New-FalconInstallToken { <# .SYNOPSIS Create an installation token .DESCRIPTION Requires 'Installation tokens: Write'. .PARAMETER Label Installation token label .PARAMETER ExpiresTimestamp Installation token expiration time (RFC3339),or 'null' .LINK https://github.com/crowdstrike/psfalcon/wiki/New-FalconInstallToken #> [CmdletBinding(DefaultParameterSetName='/installation-tokens/entities/tokens/v1:post',SupportsShouldProcess)] param( [Parameter(ParameterSetName='/installation-tokens/entities/tokens/v1:post',Mandatory,Position=1)] [string]$Label, [Parameter(ParameterSetName='/installation-tokens/entities/tokens/v1:post',Mandatory,Position=2)] [ValidatePattern('^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z|null)$')] [Alias('expires_timestamp')] [string]$ExpiresTimestamp ) process { $Param = @{ Command = $MyInvocation.MyCommand.Name Endpoint = $PSCmdlet.ParameterSetName Format = @{ Body = @{ root = @('label','expires_timestamp') }} } Invoke-Falcon @Param -Inputs $PSBoundParameters } } function Remove-FalconInstallToken { <# .SYNOPSIS Remove installation tokens .DESCRIPTION Requires 'Installation tokens: Write'. .PARAMETER Id Installation token identifier .LINK https://github.com/crowdstrike/psfalcon/wiki/Remove-FalconInstallToken #> [CmdletBinding(DefaultParameterSetName='/installation-tokens/entities/tokens/v1:delete',SupportsShouldProcess)] param( [Parameter(ParameterSetName='/installation-tokens/entities/tokens/v1:delete',Mandatory, ValueFromPipelineByPropertyName,ValueFromPipeline,Position=1)] [ValidatePattern('^[a-fA-F0-9]{32}$')] [Alias('Ids')] [string[]]$Id ) begin { $Param = @{ Command = $MyInvocation.MyCommand.Name Endpoint = $PSCmdlet.ParameterSetName Format = @{ Query = @('ids') } } [System.Collections.Generic.List[string]]$List = @() } process { if ($Id) { @($Id).foreach{ $List.Add($_) }}} end { if ($List) { $PSBoundParameters['Id'] = @($List | Select-Object -Unique) Invoke-Falcon @Param -Inputs $PSBoundParameters } } } |