diff --git a/docs/data-sources/audit_trail_event.md b/docs/data-sources/audit_trail_event.md index 201a5ea92..0abdc26aa 100644 --- a/docs/data-sources/audit_trail_event.md +++ b/docs/data-sources/audit_trail_event.md @@ -5,55 +5,69 @@ page_title: "Scaleway: scaleway_audit_trail_event" # scaleway_audit_trail_event -Use this data source to get a list of existing Audit Trail events. +The [`scaleway_audit_trail_event`](https://registry.terraform.io/providers/scaleway/scaleway/latest/docs/data-sources/audit_trail_event) data source is used to get a list of existing Audit Trail events. + For more information refer to the [Audit Trail API documentation](https://www.scaleway.com/en/developers/api/audit-trail/). + ## Example Usage -```hcl +```terraform +# Retrieve audit trail for a specific resource +data "scaleway_audit_trail_event" "find_by_resource_id" { +resource_id = "11111111-1111-1111-1111-111111111111" +} +``` + +```terraform # Retrieve all audit trail events on the default organization -data "scaleway_audit_trail_event" "find_all" { +data "scaleway_audit_trail_event" "find_all" {} +``` + +```terraform +# Retrieve audit trail for a specific Scaleway product +data "scaleway_audit_trail_event" "find_by_product_name" { + product_name = "secret-manager" +} +``` + +```terraform +# Retrieve audit trail events with various filtering +data "scaleway_audit_trail_event" "find_with_filters" { + region = "fr-par" + service_name = "instance" + method_name = "CreateServer" + principal_id = "11111111-1111-1111-1111-111111111111" + source_ip = "192.0.2.1" + status = 200 + recorded_after = "2025-10-01T00:00:00Z" + recorded_before = "2025-12-31T23:59:59Z" + order_by = "recorded_at_desc" } +``` +```terraform # Retrieve audit trail events on a specific organization data "scaleway_audit_trail_event" "find_by_org" { organization_id = "11111111-1111-1111-1111-111111111111" } +``` +```terraform # Retrieve audit trail events on a specific project data "scaleway_audit_trail_event" "find_by_project" { project_id = "11111111-1111-1111-1111-111111111111" } +``` +```terraform # Retrieve audit trail events for a specific type of resource data "scaleway_audit_trail_event" "find_by_resource_type" { resource_type = "instance_server" } - -# Retrieve audit trail for a specific resource -data "scaleway_audit_trail_event" "find_by_resource_id" { - resource_id = "11111111-1111-1111-1111-111111111111" -} - -# Retrieve audit trail for a specific Scaleway product -data "scaleway_audit_trail_event" "find_by_product_name" { - product_name = "secret-manager" -} - -# Retrieve audit trail events with various filtering -data "scaleway_audit_trail_event" "find_with_filters" { - region = "fr-par" - service_name = "instance" - method_name = "CreateServer" - principal_id = "11111111-1111-1111-1111-111111111111" - source_ip = "192.0.2.1" - status = 200 - recorded_after = "2025-10-01T00:00:00Z" - recorded_before = "2025-12-31T23:59:59Z" - order_by = "recorded_at_desc" -} ``` + ## Argument Reference - `region` - (Optional) The [region](../guides/regions_and_zones.md#regions) you want to target. Defaults to the region specified in the [provider configuration](../index.md#region). diff --git a/examples/data-sources/scaleway_audit_trail_event/data-source-audit-trail-event-resource.tf b/examples/data-sources/scaleway_audit_trail_event/data-source-audit-trail-event-resource.tf new file mode 100644 index 000000000..d63085c26 --- /dev/null +++ b/examples/data-sources/scaleway_audit_trail_event/data-source-audit-trail-event-resource.tf @@ -0,0 +1,4 @@ +# Retrieve audit trail for a specific resource +data "scaleway_audit_trail_event" "find_by_resource_id" { +resource_id = "11111111-1111-1111-1111-111111111111" +} \ No newline at end of file diff --git a/examples/data-sources/scaleway_audit_trail_event/data-source-audit-trail-event.tf b/examples/data-sources/scaleway_audit_trail_event/data-source-audit-trail-event.tf new file mode 100644 index 000000000..a04c2a059 --- /dev/null +++ b/examples/data-sources/scaleway_audit_trail_event/data-source-audit-trail-event.tf @@ -0,0 +1,2 @@ +# Retrieve all audit trail events on the default organization +data "scaleway_audit_trail_event" "find_all" {} diff --git a/examples/data-sources/scaleway_audit_trail_event/data-source-audit-trail-find-by-product-name.tf b/examples/data-sources/scaleway_audit_trail_event/data-source-audit-trail-find-by-product-name.tf new file mode 100644 index 000000000..6a6a64726 --- /dev/null +++ b/examples/data-sources/scaleway_audit_trail_event/data-source-audit-trail-find-by-product-name.tf @@ -0,0 +1,4 @@ +# Retrieve audit trail for a specific Scaleway product +data "scaleway_audit_trail_event" "find_by_product_name" { + product_name = "secret-manager" +} diff --git a/examples/data-sources/scaleway_audit_trail_event/data-source-audit-trail-find-with-filters.tf b/examples/data-sources/scaleway_audit_trail_event/data-source-audit-trail-find-with-filters.tf new file mode 100644 index 000000000..a7b876412 --- /dev/null +++ b/examples/data-sources/scaleway_audit_trail_event/data-source-audit-trail-find-with-filters.tf @@ -0,0 +1,12 @@ +# Retrieve audit trail events with various filtering +data "scaleway_audit_trail_event" "find_with_filters" { + region = "fr-par" + service_name = "instance" + method_name = "CreateServer" + principal_id = "11111111-1111-1111-1111-111111111111" + source_ip = "192.0.2.1" + status = 200 + recorded_after = "2025-10-01T00:00:00Z" + recorded_before = "2025-12-31T23:59:59Z" + order_by = "recorded_at_desc" +} diff --git a/examples/data-sources/scaleway_audit_trail_event/data-source-audit-trail-org.tf b/examples/data-sources/scaleway_audit_trail_event/data-source-audit-trail-org.tf new file mode 100644 index 000000000..e2eee24e0 --- /dev/null +++ b/examples/data-sources/scaleway_audit_trail_event/data-source-audit-trail-org.tf @@ -0,0 +1,4 @@ +# Retrieve audit trail events on a specific organization +data "scaleway_audit_trail_event" "find_by_org" { + organization_id = "11111111-1111-1111-1111-111111111111" +} diff --git a/examples/data-sources/scaleway_audit_trail_event/data-source-audit-trail-project.tf b/examples/data-sources/scaleway_audit_trail_event/data-source-audit-trail-project.tf new file mode 100644 index 000000000..522469455 --- /dev/null +++ b/examples/data-sources/scaleway_audit_trail_event/data-source-audit-trail-project.tf @@ -0,0 +1,4 @@ +# Retrieve audit trail events on a specific project +data "scaleway_audit_trail_event" "find_by_project" { + project_id = "11111111-1111-1111-1111-111111111111" +} diff --git a/examples/data-sources/scaleway_audit_trail_event/data-source-audit-trail-type.tf b/examples/data-sources/scaleway_audit_trail_event/data-source-audit-trail-type.tf new file mode 100644 index 000000000..0fe604609 --- /dev/null +++ b/examples/data-sources/scaleway_audit_trail_event/data-source-audit-trail-type.tf @@ -0,0 +1,4 @@ +# Retrieve audit trail events for a specific type of resource +data "scaleway_audit_trail_event" "find_by_resource_type" { + resource_type = "instance_server" +} diff --git a/examples/instance-servers/main.tf b/examples/instance-servers/main.tf index 90b41d6af..b41cab590 100644 --- a/examples/instance-servers/main.tf +++ b/examples/instance-servers/main.tf @@ -11,8 +11,8 @@ resource "scaleway_instance_ip" "ip" { } resource "scaleway_instance_server" "server" { - count = var.server_count - type = "PLAY2-MICRO" - image = "ubuntu_jammy" + count = var.server_count + type = "PLAY2-MICRO" + image = "ubuntu_jammy" ip_ids = [scaleway_instance_ip.ip[count.index].id] } diff --git a/internal/services/audittrail/descriptions/event.md b/internal/services/audittrail/descriptions/event.md new file mode 100644 index 000000000..c379690a1 --- /dev/null +++ b/internal/services/audittrail/descriptions/event.md @@ -0,0 +1,3 @@ +The [`scaleway_audit_trail_event`](https://registry.terraform.io/providers/scaleway/scaleway/latest/docs/data-sources/audit_trail_event) data source is used to get a list of existing Audit Trail events. + +For more information refer to the [Audit Trail API documentation](https://www.scaleway.com/en/developers/api/audit-trail/). \ No newline at end of file diff --git a/internal/services/audittrail/event_data_source.go b/internal/services/audittrail/event_data_source.go index f11126f7d..468df4f07 100644 --- a/internal/services/audittrail/event_data_source.go +++ b/internal/services/audittrail/event_data_source.go @@ -2,6 +2,7 @@ package audittrail import ( "context" + _ "embed" "fmt" "github.com/google/uuid" @@ -18,8 +19,12 @@ import ( "github.com/scaleway/terraform-provider-scaleway/v2/internal/verify" ) +//go:embed descriptions/event.md +var eventDescription string + func DataSourceEvent() *schema.Resource { return &schema.Resource{ + Description: eventDescription, ReadContext: DataSourceEventsRead, SchemaFunc: eventSchema, } diff --git a/templates/data-sources/audit_trail_event.md.tmpl b/templates/data-sources/audit_trail_event.md.tmpl index 201a5ea92..25a884849 100644 --- a/templates/data-sources/audit_trail_event.md.tmpl +++ b/templates/data-sources/audit_trail_event.md.tmpl @@ -1,3 +1,4 @@ +{{- /*gotype: github.com/hashicorp/terraform-plugin-docs/internal/provider.ResourceTemplateType */ -}} --- subcategory: "Audit Trail" page_title: "Scaleway: scaleway_audit_trail_event" @@ -5,54 +6,16 @@ page_title: "Scaleway: scaleway_audit_trail_event" # scaleway_audit_trail_event -Use this data source to get a list of existing Audit Trail events. -For more information refer to the [Audit Trail API documentation](https://www.scaleway.com/en/developers/api/audit-trail/). +{{ .Description }} +{{ if .HasExamples }} ## Example Usage -```hcl -# Retrieve all audit trail events on the default organization -data "scaleway_audit_trail_event" "find_all" { -} +{{ range .ExampleFiles -}} +{{ tffile . }} -# Retrieve audit trail events on a specific organization -data "scaleway_audit_trail_event" "find_by_org" { - organization_id = "11111111-1111-1111-1111-111111111111" -} - -# Retrieve audit trail events on a specific project -data "scaleway_audit_trail_event" "find_by_project" { - project_id = "11111111-1111-1111-1111-111111111111" -} - -# Retrieve audit trail events for a specific type of resource -data "scaleway_audit_trail_event" "find_by_resource_type" { - resource_type = "instance_server" -} - -# Retrieve audit trail for a specific resource -data "scaleway_audit_trail_event" "find_by_resource_id" { - resource_id = "11111111-1111-1111-1111-111111111111" -} - -# Retrieve audit trail for a specific Scaleway product -data "scaleway_audit_trail_event" "find_by_product_name" { - product_name = "secret-manager" -} - -# Retrieve audit trail events with various filtering -data "scaleway_audit_trail_event" "find_with_filters" { - region = "fr-par" - service_name = "instance" - method_name = "CreateServer" - principal_id = "11111111-1111-1111-1111-111111111111" - source_ip = "192.0.2.1" - status = 200 - recorded_after = "2025-10-01T00:00:00Z" - recorded_before = "2025-12-31T23:59:59Z" - order_by = "recorded_at_desc" -} -``` +{{ end }} +{{ end -}} ## Argument Reference