continueops_report_config (Resource)
An emailed run report: who receives it, how often, and which runs (by tag) it covers. Destroying it stops the emails; the platform keeps a soft-deleted copy.
Example Usage
resource "continueops_report_config" "weekly" {
name = "Weekly DR evidence"
recipients = ["resilience@example.com"]
frequency = "weekly"
send_weekday = 1 # Monday
send_hour_utc = 8
window_hours = 168
include_bundle_zip = true
tag_ids = [continueops_tag.prod.id]
}Schema
Required
name(String) Report name, 1-200 characters, no surrounding whitespace.recipients(Set of String) Email addresses the report goes to, 1-100 of them. Write them in lower case: the API stores addresses lower-cased, and an upper-case one would differ from state on every plan, so it is rejected at plan time.
Optional
ai_summary_enabled(Boolean) Add an AI-written summary to the report. Defaultfalse.ai_summary_instructions(String) Extra instructions for the AI summary, up to 4000 characters.digest_enabled(Boolean) Whether the scheduled digest is sent (seefrequency). Defaulttrue.enabled(Boolean) Whether reports are sent. Defaulttrue.frequency(String) How often the digest is sent:daily,weeklyormonthly. Defaultdaily.include_bundle_zip(Boolean) Attach the runs' evidence bundles as a zip. Defaultfalse.on_group_complete(Boolean) Also send a report whenever a runbook group run completes. Defaultfalse.send_day_of_month(Number) Day of the month amonthlydigest is sent, 1-28. Default1.send_hour_utc(Number) Hour of the day the digest is sent, 0-23 UTC. Default7.send_weekday(Number) Day aweeklydigest is sent, 0-6 with 0 = Sunday. Default1(Monday).tag_ids(Set of String) Ids ofcontinueops_tags whose runs the report covers (lower-case UUIDs, at most 50). Unset covers every run.timeouts(Attributes) (see below for nested schema)window_hours(Number) How many hours of runs the report covers, 1-744. Default24.
Read-Only
created_at(String) When the report config was created (RFC 3339, UTC).id(String) Report config id (UUID).last_sent_at(String) When a report was last sent (RFC 3339, UTC), null if never. Set by the platform.updated_at(String) When the report config last changed (RFC 3339, UTC).
Nested Schema for timeouts
Optional:
create(String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).delete(String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.read(String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled.update(String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
Import
Import is supported using the following syntax:
In Terraform v1.5.0 and later, the import block can be used with the id attribute, for example:
import {
to = continueops_report_config.example
id = "00000000-0000-4000-8000-000000000000"
}The terraform import command can be used, for example:
# Import by id (UUID), shown in the ContinueOps UI and returned by the API.
terraform import continueops_report_config.example 00000000-0000-4000-8000-000000000000