Skip to content

Commit 48dd59b

Browse files
authored
feat: add all notification target resources (#799)
1 parent b20e6a3 commit 48dd59b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+2768
-0
lines changed

docs/resources/notify_amqp.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
---
2+
page_title: "minio_notify_amqp Resource - terraform-provider-minio"
3+
subcategory: ""
4+
description: |-
5+
Manages an AMQP/RabbitMQ notification target for MinIO bucket event notifications.
6+
---
7+
8+
# minio_notify_amqp (Resource)
9+
10+
Manages an AMQP/RabbitMQ notification target for MinIO bucket event notifications.
11+
12+
**NOTE:** Creating a new notification target may require a MinIO server restart before it becomes fully active. The `restart_required` attribute indicates when this is necessary.
13+
14+
## Example Usage
15+
16+
```terraform
17+
resource "minio_notify_amqp" "events" {
18+
name = "rabbitmq"
19+
url = "amqp://user:password@rabbitmq.example.com:5672"
20+
exchange = "minio-events"
21+
exchange_type = "fanout"
22+
routing_key = "bucketevents"
23+
durable = true
24+
}
25+
```
26+
27+
<!-- schema generated by tfplugindocs -->
28+
## Schema
29+
30+
### Required
31+
32+
- `name` (String) Target name identifier.
33+
- `url` (String, Sensitive) AMQP connection URL (e.g., 'amqp://user:pass@host:5672'). MinIO does not return this value on read; Terraform keeps the value from your configuration.
34+
35+
### Optional
36+
37+
- `auto_deleted` (Boolean) Whether the queue is auto-deleted when the last consumer unsubscribes.
38+
- `comment` (String) Comment or description for this notification target.
39+
- `delivery_mode` (Number) AMQP delivery mode: 1 for non-persistent, 2 for persistent.
40+
- `durable` (Boolean) Whether the AMQP queue is durable (survives broker restart).
41+
- `enable` (Boolean) Whether this notification target is enabled.
42+
- `exchange` (String) AMQP exchange name.
43+
- `exchange_type` (String) AMQP exchange type (e.g., 'direct', 'fanout', 'topic', 'headers').
44+
- `internal` (Boolean) Whether the exchange is internal.
45+
- `mandatory` (Boolean) Whether to set the mandatory flag on published messages.
46+
- `no_wait` (Boolean) Whether to set the no-wait flag on queue declaration.
47+
- `queue_dir` (String) Directory path for persistent event store when the target is offline.
48+
- `queue_limit` (Number) Maximum number of undelivered messages to queue.
49+
- `routing_key` (String) AMQP routing key for message delivery.
50+
51+
### Read-Only
52+
53+
- `id` (String) The ID of this resource.
54+
- `restart_required` (Boolean) Indicates whether a MinIO server restart is required.
55+
56+
## Import
57+
58+
Import is supported using the target name:
59+
60+
```shell
61+
terraform import minio_notify_amqp.example target-name
62+
```
63+
64+
Note: Sensitive fields are not returned by the MinIO API. After import, these values will be empty in state until the next apply.
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
---
2+
page_title: "minio_notify_elasticsearch Resource - terraform-provider-minio"
3+
subcategory: ""
4+
description: |-
5+
Manages an Elasticsearch notification target for MinIO bucket event notifications.
6+
---
7+
8+
# minio_notify_elasticsearch (Resource)
9+
10+
Manages an Elasticsearch notification target for MinIO bucket event notifications.
11+
12+
**NOTE:** Creating a new notification target may require a MinIO server restart before it becomes fully active. The `restart_required` attribute indicates when this is necessary.
13+
14+
## Example Usage
15+
16+
```terraform
17+
resource "minio_notify_elasticsearch" "events" {
18+
name = "primary"
19+
url = "https://elasticsearch.example.com:9200"
20+
index = "minio-events"
21+
format = "namespace"
22+
username = "elastic"
23+
password = var.es_password
24+
}
25+
```
26+
27+
<!-- schema generated by tfplugindocs -->
28+
## Schema
29+
30+
### Required
31+
32+
- `format` (String) Output format for event records: 'namespace' or 'access'.
33+
- `index` (String) Name of the Elasticsearch index for event records.
34+
- `name` (String) Target name identifier.
35+
- `url` (String, Sensitive) Elasticsearch server URL (e.g., 'http://localhost:9200'). MinIO does not return this value on read; Terraform keeps the value from your configuration.
36+
37+
### Optional
38+
39+
- `comment` (String) Comment or description for this notification target.
40+
- `enable` (Boolean) Whether this notification target is enabled.
41+
- `password` (String, Sensitive) Password for Elasticsearch authentication. MinIO does not return this value on read; Terraform keeps the value from your configuration.
42+
- `queue_dir` (String) Directory path for persistent event store when the target is offline.
43+
- `queue_limit` (Number) Maximum number of undelivered messages to queue.
44+
- `username` (String) Username for Elasticsearch authentication.
45+
46+
### Read-Only
47+
48+
- `id` (String) The ID of this resource.
49+
- `restart_required` (Boolean) Indicates whether a MinIO server restart is required.
50+
51+
## Import
52+
53+
Import is supported using the target name:
54+
55+
```shell
56+
terraform import minio_notify_elasticsearch.example target-name
57+
```
58+
59+
Note: Sensitive fields are not returned by the MinIO API. After import, these values will be empty in state until the next apply.

docs/resources/notify_kafka.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
---
2+
page_title: "minio_notify_kafka Resource - terraform-provider-minio"
3+
subcategory: ""
4+
description: |-
5+
Manages a Kafka notification target for MinIO bucket event notifications.
6+
---
7+
8+
# minio_notify_kafka (Resource)
9+
10+
Manages a Kafka notification target for MinIO bucket event notifications.
11+
12+
**NOTE:** Creating a new notification target may require a MinIO server restart before it becomes fully active. The `restart_required` attribute indicates when this is necessary.
13+
14+
## Example Usage
15+
16+
```terraform
17+
resource "minio_notify_kafka" "events" {
18+
name = "primary"
19+
brokers = "kafka1:9092,kafka2:9092,kafka3:9092"
20+
topic = "minio-bucket-events"
21+
22+
sasl_username = "minio"
23+
sasl_password = var.kafka_password
24+
sasl_mechanism = "plain"
25+
tls = true
26+
}
27+
```
28+
29+
<!-- schema generated by tfplugindocs -->
30+
## Schema
31+
32+
### Required
33+
34+
- `brokers` (String) Comma-separated list of Kafka broker addresses (e.g., 'host1:9092,host2:9092').
35+
- `name` (String) Target name identifier.
36+
- `topic` (String) Kafka topic to publish event notifications to.
37+
38+
### Optional
39+
40+
- `batch_size` (Number) Number of messages to batch before sending to Kafka.
41+
- `client_tls_cert` (String) Path to the client TLS certificate for mTLS authentication.
42+
- `client_tls_key` (String, Sensitive) Path to the client TLS private key. MinIO does not return this value on read; Terraform keeps the value from your configuration.
43+
- `comment` (String) Comment or description for this notification target.
44+
- `enable` (Boolean) Whether this notification target is enabled.
45+
- `queue_dir` (String) Directory path for persistent event store when the target is offline.
46+
- `queue_limit` (Number) Maximum number of undelivered messages to queue.
47+
- `sasl_mechanism` (String) SASL authentication mechanism: 'plain', 'scram-sha-256', or 'scram-sha-512'.
48+
- `sasl_password` (String, Sensitive) SASL password for Kafka authentication. MinIO does not return this value on read; Terraform keeps the value from your configuration.
49+
- `sasl_username` (String) SASL username for Kafka authentication.
50+
- `tls` (Boolean) Whether to enable TLS for the Kafka connection.
51+
- `tls_client_auth` (Number) TLS client authentication type (0=NoClientCert, 1=RequestClientCert, etc.).
52+
- `tls_skip_verify` (Boolean) Whether to skip TLS certificate verification.
53+
- `version` (String) Kafka cluster version (e.g., '2.8.0').
54+
55+
### Read-Only
56+
57+
- `id` (String) The ID of this resource.
58+
- `restart_required` (Boolean) Indicates whether a MinIO server restart is required.
59+
60+
## Import
61+
62+
Import is supported using the target name:
63+
64+
```shell
65+
terraform import minio_notify_kafka.example target-name
66+
```
67+
68+
Note: Sensitive fields are not returned by the MinIO API. After import, these values will be empty in state until the next apply.

docs/resources/notify_mqtt.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
---
2+
page_title: "minio_notify_mqtt Resource - terraform-provider-minio"
3+
subcategory: ""
4+
description: |-
5+
Manages an MQTT notification target for MinIO bucket event notifications.
6+
---
7+
8+
# minio_notify_mqtt (Resource)
9+
10+
Manages an MQTT notification target for MinIO bucket event notifications.
11+
12+
**NOTE:** Creating a new notification target may require a MinIO server restart before it becomes fully active. The `restart_required` attribute indicates when this is necessary.
13+
14+
## Example Usage
15+
16+
```terraform
17+
resource "minio_notify_mqtt" "iot" {
18+
name = "iot"
19+
broker = "tcp://mqtt.example.com:1883"
20+
topic = "minio/events"
21+
username = "minio"
22+
password = var.mqtt_password
23+
qos = 1
24+
}
25+
```
26+
27+
<!-- schema generated by tfplugindocs -->
28+
## Schema
29+
30+
### Required
31+
32+
- `broker` (String) MQTT broker URL (e.g., 'tcp://host:1883').
33+
- `name` (String) Target name identifier.
34+
- `topic` (String) MQTT topic to publish event notifications to.
35+
36+
### Optional
37+
38+
- `comment` (String) Comment or description for this notification target.
39+
- `enable` (Boolean) Whether this notification target is enabled.
40+
- `keep_alive_interval` (String) MQTT keep-alive interval duration (e.g., '10s').
41+
- `password` (String, Sensitive) Password for MQTT broker authentication. MinIO does not return this value on read; Terraform keeps the value from your configuration.
42+
- `qos` (Number) MQTT Quality of Service level: 0 (at most once), 1 (at least once), or 2 (exactly once).
43+
- `queue_dir` (String) Directory path for persistent event store when the target is offline.
44+
- `queue_limit` (Number) Maximum number of undelivered messages to queue.
45+
- `reconnect_interval` (String) MQTT reconnect interval duration (e.g., '5s').
46+
- `username` (String) Username for MQTT broker authentication.
47+
48+
### Read-Only
49+
50+
- `id` (String) The ID of this resource.
51+
- `restart_required` (Boolean) Indicates whether a MinIO server restart is required.
52+
53+
## Import
54+
55+
Import is supported using the target name:
56+
57+
```shell
58+
terraform import minio_notify_mqtt.example target-name
59+
```
60+
61+
Note: Sensitive fields are not returned by the MinIO API. After import, these values will be empty in state until the next apply.

docs/resources/notify_mysql.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
page_title: "minio_notify_mysql Resource - terraform-provider-minio"
3+
subcategory: ""
4+
description: |-
5+
Manages a MySQL notification target for MinIO bucket event notifications.
6+
---
7+
8+
# minio_notify_mysql (Resource)
9+
10+
Manages a MySQL notification target for MinIO bucket event notifications.
11+
12+
**NOTE:** Creating a new notification target may require a MinIO server restart before it becomes fully active. The `restart_required` attribute indicates when this is necessary.
13+
14+
## Example Usage
15+
16+
```terraform
17+
resource "minio_notify_mysql" "events" {
18+
name = "primary"
19+
connection_string = "user:password@tcp(mysql.example.com:3306)/minio_events"
20+
table = "bucket_events"
21+
format = "namespace"
22+
}
23+
```
24+
25+
<!-- schema generated by tfplugindocs -->
26+
## Schema
27+
28+
### Required
29+
30+
- `connection_string` (String, Sensitive) MySQL DSN connection string (e.g., 'user:password@tcp(host:port)/database'). MinIO does not return this value on read; Terraform keeps the value from your configuration.
31+
- `format` (String) Output format for event records: 'namespace' or 'access'.
32+
- `name` (String) Target name identifier.
33+
- `table` (String) MySQL table name for storing event records.
34+
35+
### Optional
36+
37+
- `comment` (String) Comment or description for this notification target.
38+
- `enable` (Boolean) Whether this notification target is enabled.
39+
- `max_open_connections` (Number) Maximum number of open connections to the MySQL database.
40+
- `queue_dir` (String) Directory path for persistent event store when the target is offline.
41+
- `queue_limit` (Number) Maximum number of undelivered messages to queue.
42+
43+
### Read-Only
44+
45+
- `id` (String) The ID of this resource.
46+
- `restart_required` (Boolean) Indicates whether a MinIO server restart is required.
47+
48+
## Import
49+
50+
Import is supported using the target name:
51+
52+
```shell
53+
terraform import minio_notify_mysql.example target-name
54+
```
55+
56+
Note: Sensitive fields are not returned by the MinIO API. After import, these values will be empty in state until the next apply.

docs/resources/notify_nats.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
---
2+
page_title: "minio_notify_nats Resource - terraform-provider-minio"
3+
subcategory: ""
4+
description: |-
5+
Manages a NATS notification target for MinIO bucket event notifications.
6+
---
7+
8+
# minio_notify_nats (Resource)
9+
10+
Manages a NATS notification target for MinIO bucket event notifications.
11+
12+
**NOTE:** Creating a new notification target may require a MinIO server restart before it becomes fully active. The `restart_required` attribute indicates when this is necessary.
13+
14+
## Example Usage
15+
16+
```terraform
17+
resource "minio_notify_nats" "events" {
18+
name = "primary"
19+
address = "nats.example.com:4222"
20+
subject = "minio.events"
21+
22+
username = "minio"
23+
password = var.nats_password
24+
jetstream = true
25+
}
26+
```
27+
28+
<!-- schema generated by tfplugindocs -->
29+
## Schema
30+
31+
### Required
32+
33+
- `address` (String) NATS server address (e.g., 'nats://localhost:4222').
34+
- `name` (String) Target name identifier.
35+
- `subject` (String) NATS subject to publish notifications to.
36+
37+
### Optional
38+
39+
- `cert_authority` (String) Path to the certificate authority file for TLS verification.
40+
- `client_cert` (String) Path to the client certificate for mTLS authentication.
41+
- `client_key` (String, Sensitive) Path to the client private key for mTLS authentication. MinIO does not return this value on read; Terraform keeps the value from your configuration.
42+
- `comment` (String) Comment or description for this notification target.
43+
- `enable` (Boolean) Whether this notification target is enabled.
44+
- `jetstream` (Boolean) Whether to enable JetStream support for NATS.
45+
- `password` (String, Sensitive) Password for NATS authentication. MinIO does not return this value on read; Terraform keeps the value from your configuration.
46+
- `ping_interval` (String) Duration interval between NATS ping requests (e.g., '0s').
47+
- `queue_dir` (String) Directory path for persistent event store when the target is offline.
48+
- `queue_limit` (Number) Maximum number of undelivered messages to queue.
49+
- `streaming` (Boolean) Whether to enable NATS Streaming (STAN) mode.
50+
- `streaming_async` (Boolean) Whether to enable asynchronous publishing for NATS Streaming.
51+
- `streaming_cluster_id` (String) Cluster ID for NATS Streaming.
52+
- `streaming_max_pub_acks_in_flight` (Number) Maximum number of unacknowledged messages in flight for NATS Streaming.
53+
- `tls` (Boolean) Whether to enable TLS for the NATS connection.
54+
- `tls_skip_verify` (Boolean) Whether to skip TLS certificate verification.
55+
- `token` (String, Sensitive) Token for NATS authentication. MinIO does not return this value on read; Terraform keeps the value from your configuration.
56+
- `user_credentials` (String) Path to NATS user credentials file.
57+
- `username` (String) Username for NATS authentication.
58+
59+
### Read-Only
60+
61+
- `id` (String) The ID of this resource.
62+
- `restart_required` (Boolean) Indicates whether a MinIO server restart is required.
63+
64+
## Import
65+
66+
Import is supported using the target name:
67+
68+
```shell
69+
terraform import minio_notify_nats.example target-name
70+
```
71+
72+
Note: Sensitive fields are not returned by the MinIO API. After import, these values will be empty in state until the next apply.

0 commit comments

Comments
 (0)