Skip to content
Open
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
123 changes: 123 additions & 0 deletions docs/resources/integration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "grafana_integration Resource - terraform-provider-grafana"
subcategory: "Cloud"
description: |-
Manages Grafana Cloud integrations.
Official documentation https://grafana.com/docs/grafana-cloud/data-configuration/integrations/
Required access policy scopes:
folders:readfolders:writedashboards:readdashboards:write
Note: This resource creates folders and dashboards as part of the integration installation process, which requires additional permissions beyond the basic integration scopes.
---

# grafana_integration (Resource)

Manages Grafana Cloud integrations.

* [Official documentation](https://grafana.com/docs/grafana-cloud/data-configuration/integrations/)

Required access policy scopes:

* folders:read
* folders:write
* dashboards:read
* dashboards:write
Comment on lines +21 to +24

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's also installing alerts and rules isn't it?


**Note:** This resource creates folders and dashboards as part of the integration installation process, which requires additional permissions beyond the basic integration scopes.

## Example Usage

```terraform
# Install Docker integration with logs and alerts enabled
resource "grafana_integration" "docker" {
slug = "docker"

configuration {
configurable_logs {
logs_disabled = false
}
configurable_alerts {
alerts_disabled = false
}
}
}

# Install Linux Node integration with logs enabled but alerts disabled
resource "grafana_integration" "linux_node" {
slug = "linux-node"

configuration {
configurable_logs {
logs_disabled = false
}
configurable_alerts {
alerts_disabled = true
}
}
}

# Install Windows integration with minimal configuration
resource "grafana_integration" "windows" {
slug = "windows-exporter"
}

# Output integration information
output "docker_integration" {
value = {
name = grafana_integration.docker.name
version = grafana_integration.docker.version
installed = grafana_integration.docker.installed
dashboard_folder = grafana_integration.docker.dashboard_folder
}
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `slug` (String) The slug of the integration to install (e.g., 'docker', 'linux-node').

### Optional

- `configuration` (Block List, Max: 1) Configuration options for the integration. (see [below for nested schema](#nestedblock--configuration))

### Read-Only

- `dashboard_folder` (String) The dashboard folder associated with this integration.
- `id` (String) The ID of this resource.
- `installed` (Boolean) Whether the integration is currently installed.
- `name` (String) The display name of the integration.
- `version` (String) The version of the installed integration.

<a id="nestedblock--configuration"></a>
### Nested Schema for `configuration`

Optional:

- `configurable_alerts` (Block List, Max: 1) Alerts configuration for the integration. (see [below for nested schema](#nestedblock--configuration--configurable_alerts))
- `configurable_logs` (Block List, Max: 1) Logs configuration for the integration. (see [below for nested schema](#nestedblock--configuration--configurable_logs))

<a id="nestedblock--configuration--configurable_alerts"></a>
### Nested Schema for `configuration.configurable_alerts`

Optional:

- `alerts_disabled` (Boolean) Whether to disable alerts for this integration. Defaults to `false`.


<a id="nestedblock--configuration--configurable_logs"></a>
### Nested Schema for `configuration.configurable_logs`

Optional:

- `logs_disabled` (Boolean) Whether to disable logs collection for this integration. Defaults to `false`.

## Import

Import is supported using the following syntax:

```shell
terraform import grafana_integration.name "{{ slug }}"
```
1 change: 1 addition & 0 deletions examples/resources/grafana_integration/import.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
terraform import grafana_integration.name "{{ slug }}"
42 changes: 42 additions & 0 deletions examples/resources/grafana_integration/resource.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Install Docker integration with logs and alerts enabled
resource "grafana_integration" "docker" {
slug = "docker"

configuration {
configurable_logs {
logs_disabled = false
}
configurable_alerts {
alerts_disabled = false
}
}
}

# Install Linux Node integration with logs enabled but alerts disabled
resource "grafana_integration" "linux_node" {
slug = "linux-node"

configuration {
configurable_logs {
logs_disabled = false
}
configurable_alerts {
alerts_disabled = true
}
}
}

# Install Windows integration with minimal configuration
resource "grafana_integration" "windows" {
slug = "windows-exporter"
}

# Output integration information
output "docker_integration" {
value = {
name = grafana_integration.docker.name
version = grafana_integration.docker.version
installed = grafana_integration.docker.installed
dashboard_folder = grafana_integration.docker.dashboard_folder
}
}
1 change: 1 addition & 0 deletions internal/common/resource.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ var (
CategoryFleetManagement ResourceCategory = "Fleet Management"
CategoryFrontendO11y ResourceCategory = "Frontend Observability"
CategoryK6 ResourceCategory = "k6"
CategoryIntegration ResourceCategory = "Integration"
)

type ResourceCommon struct {
Expand Down
96 changes: 96 additions & 0 deletions internal/resources/integrations/api-quick-doc.md

Large diffs are not rendered by default.

Loading
Loading