continueops_bia (Resource)
A business impact analysis: what a service's disruption costs and how quickly it must come back.
Terraform never approves a BIA. state is read-only here. A new BIA starts as draft, and a person moves it through review to approval in ContinueOps. Approval sets review_due_on unless your configuration sets it.
Changing an approved BIA in Terraform changes it in place and leaves it approved, as an edit through the API does.
The impact matrix and dependencies are not managed here: complete them in ContinueOps. computed_rto_minutes comes from the matrix and the revenue ceiling; manual_rto_minutes is the figure you set yourself.
The revenue_* fields need platform migration 20261022090000_bia_revenue_impact. Until an instance has it, setting one is refused by the API; BIAs without them work.
Destroy is a soft delete, as in the UI: risks linked to the BIA keep the reference.
Example Usage
resource "continueops_bia" "faster_payments" {
name = "Faster Payments"
service_id = continueops_service.faster_payments.id
entity_id = continueops_org_entity.uk.id
manual_rto_minutes = 240
manual_rpo_minutes = 15
impact_tolerance_hours = 4
tolerance_basis = "board_set"
compliance_frameworks = ["dora", "fca", "pra"]
}Schema
Required
name(String) BIA name, no surrounding whitespace.
Optional
bcm_lead_user_id(String) The business continuity lead (lower-case UUID). The user must be a member of the tenant;data.continueops_tenant.<name>.user_idis the API key's own user.bia_owner_user_id(String) The BIA owner (lower-case UUID). The user must be a member of the tenant;data.continueops_tenant.<name>.user_idis the API key's own user.business_unit(String) Business unit (free text).compliance_frameworks(Set of String) Compliance framework slugs, for exampledora,iso22301,fca.department(String) Department (free text).entity_id(String) Thecontinueops_org_entitythis BIA belongs to (lower-case UUID).impact_tolerance_hours(Number) Maximum tolerable disruption, in hours: more than 0, at most 100000, fractions allowed.manual_rpo_minutes(Number) Recovery point objective you set yourself, in minutes.manual_rto_minutes(Number) Recovery time objective you set yourself, in minutes.primary_location(String) Primary location (free text).revenue_basis(String) How the revenue figures were arrived at (free text).revenue_currency(String) ISO 4217 currency code, for exampleGBP. Unset means the organisation's reporting currency.revenue_loss_tolerance(Number) The most revenue the business accepts losing in one disruption. Not negative. Withrevenue_per_hourit implies a time ceiling (revenue_tolerable_minutes) that can tighten the computed RTO.revenue_per_hour(Number) Revenue lost for each hour the service is down. Not negative.review_due_on(String) Next review date,YYYY-MM-DD. If unset, approval sets it to a year out; removing it from the configuration later keeps the current value.service_id(String) Thecontinueops_servicethis BIA assesses (lower-case UUID).template_id(String) The BIA template it follows (lower-case UUID).timeouts(Attributes) (see below for nested schema)tolerance_basis(String) Who set the tolerance:board_set,regulatoryorprovisional.
Read-Only
approved_at(String) When it was approved.computed_recovery_tier(Number) Recovery tier the platform derives from the computed RTO.computed_rto_minutes(Number) RTO the platform derives from the impact matrix and the revenue ceiling, in minutes.created_at(String) When the BIA was created (RFC 3339, UTC).id(String) BIA id (UUID).revenue_tolerable_minutes(Number)revenue_loss_tolerance/revenue_per_hour, in minutes.state(String)draft,in_review,approvedorretired. Read-only: changed by people in ContinueOps.submitted_at(String) When it was submitted for review.updated_at(String) When the BIA 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_bia.example
id = "00000000-0000-4000-8000-000000000000"
}The terraform import command can be used, for example:
terraform import continueops_bia.example 00000000-0000-4000-8000-000000000000