Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 20 additions & 2 deletions Build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ $buildVersion = $env:BUILD_VERSION
$manifestPath = "./Logic.Monitor.psd1"
$publicFuncFolderPath = './Public'

# Exclude patterns for functions to not export (e.g., work-in-progress features)
$excludePatterns = @('*LMUptime*')

$ps1xmlFiles = Get-ChildItem -Path ./ -Filter *.ps1xml
Foreach ($ps1xml in $ps1xmlFiles) {
[xml]$xml = Get-Content -Path $ps1xml.FullName
Expand Down Expand Up @@ -34,8 +37,23 @@ If (!(Get-Module PwshSpectreConsole -ListAvailable)) {

$manifestContent = (Get-Content -Path $manifestPath -Raw) -replace '<ModuleVersion>', $buildVersion

If ((Test-Path -Path $publicFuncFolderPath) -and ($publicFunctionNames = Get-ChildItem -Path $publicFuncFolderPath -Filter '*.ps1' | Select-Object -ExpandProperty BaseName)) {
$funcStrings = "'$($publicFunctionNames -join "','")'"
If (Test-Path -Path $publicFuncFolderPath) {
$allFunctions = Get-ChildItem -Path $publicFuncFolderPath -Filter '*.ps1'

# Apply exclusion patterns
$filteredFunctions = $allFunctions
foreach ($pattern in $excludePatterns) {
$filteredFunctions = $filteredFunctions | Where-Object { $_.Name -notlike $pattern }
}

$publicFunctionNames = $filteredFunctions | Select-Object -ExpandProperty BaseName

if ($publicFunctionNames) {
$funcStrings = "'$($publicFunctionNames -join "','")'"
}
else {
$funcStrings = $null
}
}
Else {
$funcStrings = $null
Expand Down
31 changes: 15 additions & 16 deletions Documentation/Get-LMDeviceData.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,56 +15,56 @@ Retrieves monitoring data for a LogicMonitor device.
### dsName-deviceName-instanceId
```
Get-LMDeviceData -DatasourceName <String> -DeviceName <String> -InstanceId <Int32> [-StartDate <DateTime>]
[-EndDate <DateTime>] [-Filter <Object>] [-BatchSize <Int32>] [-ProgressAction <ActionPreference>]
[-EndDate <DateTime>] [-Filter <Object>] [-Datapoints <String>] [-ProgressAction <ActionPreference>]
[<CommonParameters>]
```

### dsName-deviceName-instanceName
```
Get-LMDeviceData -DatasourceName <String> -DeviceName <String> [-InstanceName <String>] [-StartDate <DateTime>]
[-EndDate <DateTime>] [-Filter <Object>] [-BatchSize <Int32>] [-ProgressAction <ActionPreference>]
[-EndDate <DateTime>] [-Filter <Object>] [-Datapoints <String>] [-ProgressAction <ActionPreference>]
[<CommonParameters>]
```

### dsName-deviceId-instanceName
```
Get-LMDeviceData -DatasourceName <String> -DeviceId <Int32> [-InstanceName <String>] [-StartDate <DateTime>]
[-EndDate <DateTime>] [-Filter <Object>] [-BatchSize <Int32>] [-ProgressAction <ActionPreference>]
[-EndDate <DateTime>] [-Filter <Object>] [-Datapoints <String>] [-ProgressAction <ActionPreference>]
[<CommonParameters>]
```

### dsName-deviceId-instanceId
```
Get-LMDeviceData -DatasourceName <String> -DeviceId <Int32> -InstanceId <Int32> [-StartDate <DateTime>]
[-EndDate <DateTime>] [-Filter <Object>] [-BatchSize <Int32>] [-ProgressAction <ActionPreference>]
[-EndDate <DateTime>] [-Filter <Object>] [-Datapoints <String>] [-ProgressAction <ActionPreference>]
[<CommonParameters>]
```

### dsId-deviceName-instanceId
```
Get-LMDeviceData -DatasourceId <Int32> -DeviceName <String> -InstanceId <Int32> [-StartDate <DateTime>]
[-EndDate <DateTime>] [-Filter <Object>] [-BatchSize <Int32>] [-ProgressAction <ActionPreference>]
[-EndDate <DateTime>] [-Filter <Object>] [-Datapoints <String>] [-ProgressAction <ActionPreference>]
[<CommonParameters>]
```

### dsId-deviceName-instanceName
```
Get-LMDeviceData -DatasourceId <Int32> -DeviceName <String> [-InstanceName <String>] [-StartDate <DateTime>]
[-EndDate <DateTime>] [-Filter <Object>] [-BatchSize <Int32>] [-ProgressAction <ActionPreference>]
[-EndDate <DateTime>] [-Filter <Object>] [-Datapoints <String>] [-ProgressAction <ActionPreference>]
[<CommonParameters>]
```

### dsId-deviceId-instanceName
```
Get-LMDeviceData -DatasourceId <Int32> -DeviceId <Int32> [-InstanceName <String>] [-StartDate <DateTime>]
[-EndDate <DateTime>] [-Filter <Object>] [-BatchSize <Int32>] [-ProgressAction <ActionPreference>]
[-EndDate <DateTime>] [-Filter <Object>] [-Datapoints <String>] [-ProgressAction <ActionPreference>]
[<CommonParameters>]
```

### dsId-deviceId-instanceId
```
Get-LMDeviceData -DatasourceId <Int32> -DeviceId <Int32> -InstanceId <Int32> [-StartDate <DateTime>]
[-EndDate <DateTime>] [-Filter <Object>] [-BatchSize <Int32>] [-ProgressAction <ActionPreference>]
[-EndDate <DateTime>] [-Filter <Object>] [-Datapoints <String>] [-ProgressAction <ActionPreference>]
[<CommonParameters>]
```

Expand All @@ -76,8 +76,8 @@ It supports various combinations of identifying the device, datasource, and inst

### EXAMPLE 1
```
#Retrieve data using IDs
Get-LMDeviceData -DeviceId 123 -DatasourceId 456 -InstanceId 789
#Retrieve data using IDs for datapoints "cpu" and "memory"
Get-LMDeviceData -DeviceId 123 -DatasourceId 456 -InstanceId 789 -Datapoints "cpu,memory"
```

### EXAMPLE 2
Expand Down Expand Up @@ -232,19 +232,18 @@ Accept pipeline input: False
Accept wildcard characters: False
```

### -BatchSize
The number of results to return per request.
Must be between 1 and 1000.
Defaults to 1000.
### -Datapoints
Comma separated list of datapoints to retrieve.
If not provided, all datapoints will be retrieved.

```yaml
Type: Int32
Type: String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: 1000
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```
Expand Down
252 changes: 252 additions & 0 deletions Documentation/Set-LMAWSDiscoverySettings.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,252 @@
---
external help file: Logic.Monitor-help.xml
Module Name: Logic.Monitor
online version:
schema: 2.0.0
---

# Set-LMAWSDiscoverySettings

## SYNOPSIS
Updates AWS Cloud discovery settings for specified AWS accounts in LogicMonitor.

## SYNTAX

### Id (Default)
```
Set-LMAWSDiscoverySettings -AccountId <Int32> -ServiceName <String> -Regions <String[]> [-AutoDelete <Boolean>]
[-DeleteDelayDays <Int32>] [-DisableAlerting <Boolean>] [-ProgressAction <ActionPreference>] [-WhatIf]
[-Confirm] [<CommonParameters>]
```

### Name
```
Set-LMAWSDiscoverySettings -Name <String> -ServiceName <String> -Regions <String[]> [-AutoDelete <Boolean>]
[-DeleteDelayDays <Int32>] [-DisableAlerting <Boolean>] [-ProgressAction <ActionPreference>] [-WhatIf]
[-Confirm] [<CommonParameters>]
```

### Csv
```
Set-LMAWSDiscoverySettings -CsvPath <String> -ServiceName <String> -Regions <String[]> [-AutoDelete <Boolean>]
[-DeleteDelayDays <Int32>] [-DisableAlerting <Boolean>] [-ProgressAction <ActionPreference>] [-WhatIf]
[-Confirm] [<CommonParameters>]
```

## DESCRIPTION
The Set-LMAWSDiscoverySettings function modifies AWS Cloud discovery settings such as monitored regions, automatic deletion policies, and alerting preferences for AWS services within LogicMonitor.
The function supports updating a single AWS account by AccountId or multiple accounts by importing AccountIds from a CSV file.

## EXAMPLES

### EXAMPLE 1
```
Set-LMAWSDiscoverySettings -AccountId 317 -ServiceName "EC2" -Regions "us-east-1","us-west-2"
Updates EC2 discovery settings for AWS account group ID 317 to monitor only us-east-1 and us-west-2 regions.
```

### EXAMPLE 2
```
Set-LMAWSDiscoverySettings -Name "Production AWS Account" -ServiceName "RDS" -Regions "us-east-1","us-east-2" -AutoDelete -DeleteDelayDays 10
Updates RDS discovery settings for the AWS account named "Production AWS Account" with automatic deletion enabled after 10 days.
```

### EXAMPLE 3
```
Set-LMAWSDiscoverySettings -CsvPath "C:\aws_accounts.csv" -ServiceName "EC2" -Regions "us-east-1","us-east-2"
Bulk updates EC2 discovery settings for multiple AWS accounts listed in the CSV file.
```

### EXAMPLE 4
```
Set-LMAWSDiscoverySettings -AccountId 317 -ServiceName "Lambda" -Regions "us-east-1" -AutoDelete -DeleteDelayDays 5 -DisableAlerting
Updates Lambda discovery settings with automatic deletion after 5 days and alerting disabled on termination.
```

## PARAMETERS

### -AccountId
Specifies the LogicMonitor device group ID of the AWS account for which to update discovery settings.
This parameter is mandatory when using the 'Id' parameter set.

```yaml
Type: Int32
Parameter Sets: Id
Aliases: Id

Required: True
Position: Named
Default value: 0
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False
```

### -Name
Specifies the name of the AWS account device group.
This parameter is mandatory when using the 'Name' parameter set.

```yaml
Type: String
Parameter Sets: Name
Aliases:

Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### -CsvPath
Specifies the path to a CSV file containing multiple AWS AccountIds to update in bulk.
The CSV must have an "AccountId" column.
This parameter is part of the 'Csv' parameter set.

```yaml
Type: String
Parameter Sets: Csv
Aliases:

Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### -ServiceName
Specifies the AWS service name (e.g., "EC2", "RDS", "Lambda") whose discovery settings are to be updated.

```yaml
Type: String
Parameter Sets: (All)
Aliases:

Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### -Regions
Specifies an array of AWS regions (e.g., "us-east-1","us-east-2") to monitor for the specified service.

```yaml
Type: String[]
Parameter Sets: (All)
Aliases:

Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### -AutoDelete
Specifies whether to enable automatic deletion of terminated AWS resources.

```yaml
Type: Boolean
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### -DeleteDelayDays
Specifies the number of days to wait before automatically deleting terminated resources.
Defaults to 7.

```yaml
Type: Int32
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### -DisableAlerting
Specifies whether to disable alerting automatically after resource termination.

```yaml
Type: Boolean
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### -WhatIf
Shows what would happen if the cmdlet runs.
The cmdlet is not run.

```yaml
Type: SwitchParameter
Parameter Sets: (All)
Aliases: wi

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### -Confirm
Prompts you for confirmation before running the cmdlet.

```yaml
Type: SwitchParameter
Parameter Sets: (All)
Aliases: cf

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### -ProgressAction
{{ Fill ProgressAction Description }}

```yaml
Type: ActionPreference
Parameter Sets: (All)
Aliases: proga

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).

## INPUTS

### You can pipe objects containing AccountId properties to this function.
## OUTPUTS

### Returns a LogicMonitor.DeviceGroup object containing the updated AWS account group information.
## NOTES
This function requires a valid LogicMonitor API authentication.
Use Connect-LMAccount before running this command.

## RELATED LINKS
Loading