compute library

Compute Engine beta-only types: machine images, future reservations, region backend buckets, network policies, and backend IAM adjuncts.

Classes

AppConstant<T>
A value the Stack hands to application code as a static const in the generated AppExports file — known when synth runs, so the app compiles against it.
AppExports
Where synth writes the Dart file application code imports: the Stack's constants, as the static const members of <name>Constants, and a typed reader of its Terraform outputs, <name>Outputs.
AttributeRef<T>
Public for sealed pattern matching, but constructor is private — only TfRef.attribute() may construct instances.
ComputeBackendBucketIamBindingCondition
Typed helper for the condition block of google_compute_backend_bucket_iam_binding (derived from provider schema).
ComputeBackendBucketIamMemberCondition
Typed helper for the condition block of google_compute_backend_bucket_iam_member (derived from provider schema).
ComputeBackendServiceIamBindingCondition
Typed helper for the condition block of google_compute_backend_service_iam_binding (derived from provider schema).
ComputeBackendServiceIamMemberCondition
Typed helper for the condition block of google_compute_backend_service_iam_member (derived from provider schema).
ComputeFutureReservationAccelerator
Typed helper for the aggregate_reservation.reserved_resources.accelerator block of google_compute_future_reservation (derived from provider schema).
ComputeFutureReservationAggregateReservation
Typed helper for the aggregate_reservation block of google_compute_future_reservation (derived from provider schema).
ComputeFutureReservationAutoCreatedReservationsDuration
Typed helper for the auto_created_reservations_duration block of google_compute_future_reservation (derived from provider schema).
ComputeFutureReservationCommitmentInfo
Typed helper for the commitment_info block of google_compute_future_reservation (derived from provider schema).
ComputeFutureReservationDuration
Typed helper for the time_window.duration block of google_compute_future_reservation (derived from provider schema).
ComputeFutureReservationGuestAccelerators
Typed helper for the specific_sku_properties.instance_properties.guest_accelerators block of google_compute_future_reservation (derived from provider schema).
ComputeFutureReservationInstanceProperties
Typed helper for the specific_sku_properties.instance_properties block of google_compute_future_reservation (derived from provider schema).
ComputeFutureReservationLocalSsds
Typed helper for the specific_sku_properties.instance_properties.local_ssds block of google_compute_future_reservation (derived from provider schema).
ComputeFutureReservationParams
Typed helper for the params block of google_compute_future_reservation (derived from provider schema).
ComputeFutureReservationProjectMap
Typed helper for the share_settings.project_map block of google_compute_future_reservation (derived from provider schema).
ComputeFutureReservationReservedResources
Typed helper for the aggregate_reservation.reserved_resources block of google_compute_future_reservation (derived from provider schema).
ComputeFutureReservationShareSettings
Typed helper for the share_settings block of google_compute_future_reservation (derived from provider schema).
ComputeFutureReservationSpecificSkuProperties
Typed helper for the specific_sku_properties block of google_compute_future_reservation (derived from provider schema).
ComputeFutureReservationTimeWindow
Typed helper for the time_window block of google_compute_future_reservation (derived from provider schema).
ComputeInstanceFromMachineImageAccessConfig
Typed helper for the network_interface.access_config block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImageAdvancedMachineFeatures
Typed helper for the advanced_machine_features block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImageAliasIpRange
Typed helper for the network_interface.alias_ip_range block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImageAliasIpv6Range
Typed helper for the network_interface.alias_ipv6_range block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImageConfidentialInstanceConfig
Typed helper for the confidential_instance_config block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImageGracefulShutdown
Typed helper for the scheduling.graceful_shutdown block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImageGuestAccelerator
Typed helper for the guest_accelerator block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImageInstanceEncryptionKey
Typed helper for the instance_encryption_key block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImageIpv6AccessConfig
Typed helper for the network_interface.ipv6_access_config block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImageLocalSsdRecoveryTimeout
Typed helper for the scheduling.local_ssd_recovery_timeout block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImageMaxDuration
Typed helper for the scheduling.graceful_shutdown.max_duration block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImageMaxRunDuration
Typed helper for the scheduling.max_run_duration block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImageNetworkInterface
Typed helper for the network_interface block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImageNetworkPerformanceConfig
Typed helper for the network_performance_config block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImageNodeAffinities
Typed helper for the scheduling.node_affinities block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImageOnInstanceStopAction
Typed helper for the scheduling.on_instance_stop_action block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImageParams
Typed helper for the params block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImagePreemptionNoticeDuration
Typed helper for the scheduling.preemption_notice_duration block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImageReservationAffinity
Typed helper for the reservation_affinity block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImageScheduling
Typed helper for the scheduling block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImageServiceAccount
Typed helper for the service_account block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImageShieldedInstanceConfig
Typed helper for the shielded_instance_config block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImageSourceMachineImageEncryptionKey
Typed helper for the source_machine_image_encryption_key block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImageSpecificReservation
Typed helper for the reservation_affinity.specific_reservation block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeInstanceFromMachineImageWorkloadIdentityConfig
Typed helper for the workload_identity_config block of google_compute_instance_from_machine_image (derived from provider schema).
ComputeMachineImageEncryptionKey
Typed helper for the machine_image_encryption_key block of google_compute_machine_image (derived from provider schema).
ComputeMachineImageIamBindingCondition
Typed helper for the condition block of google_compute_machine_image_iam_binding (derived from provider schema).
ComputeMachineImageIamMemberCondition
Typed helper for the condition block of google_compute_machine_image_iam_member (derived from provider schema).
ComputeMachineImageParams
Typed helper for the params block of google_compute_machine_image (derived from provider schema).
ComputeNetworkFirewallPolicyPacketMirroringRuleLayer4Configs
Typed helper for the match.layer4_configs block of google_compute_network_firewall_policy_packet_mirroring_rule (derived from provider schema).
ComputeNetworkFirewallPolicyPacketMirroringRuleMatch
Typed helper for the match block of google_compute_network_firewall_policy_packet_mirroring_rule (derived from provider schema).
ComputeNetworkFirewallPolicyPacketMirroringRuleTargetSecureTags
Typed helper for the target_secure_tags block of google_compute_network_firewall_policy_packet_mirroring_rule (derived from provider schema).
ComputeRegionBackendBucketIamBindingCondition
Typed helper for the condition block of google_compute_region_backend_bucket_iam_binding (derived from provider schema).
ComputeRegionBackendBucketIamMemberCondition
Typed helper for the condition block of google_compute_region_backend_bucket_iam_member (derived from provider schema).
ComputeRegionBackendServiceIamBindingCondition
Typed helper for the condition block of google_compute_region_backend_service_iam_binding (derived from provider schema).
ComputeRegionBackendServiceIamMemberCondition
Typed helper for the condition block of google_compute_region_backend_service_iam_member (derived from provider schema).
ComputeRegionNetworkPolicyTrafficClassificationRuleAction
Typed helper for the action block of google_compute_region_network_policy_traffic_classification_rule (derived from provider schema).
ComputeRegionNetworkPolicyTrafficClassificationRuleLayer4Configs
Typed helper for the match.layer4_configs block of google_compute_region_network_policy_traffic_classification_rule (derived from provider schema).
ComputeRegionNetworkPolicyTrafficClassificationRuleMatch
Typed helper for the match block of google_compute_region_network_policy_traffic_classification_rule (derived from provider schema).
ComputeRegionNetworkPolicyTrafficClassificationRuleTarget
At most one of target_service_accounts, target_secure_tags on google_compute_region_network_policy_traffic_classification_rule: the provider rejects more than one, so each variant sets one of them and a null choice sets none.
ComputeRegionNetworkPolicyTrafficClassificationRuleTargetSecureTags
Typed helper for the target_secure_tags block of google_compute_region_network_policy_traffic_classification_rule (derived from provider schema).
ComputeRegionNetworkPolicyTrafficClassificationRuleTargetSecureTagsChoice
The ComputeRegionNetworkPolicyTrafficClassificationRuleTarget.targetSecureTags choice: sets target_secure_tags.
ComputeRegionNetworkPolicyTrafficClassificationRuleTargetServiceAccounts
The ComputeRegionNetworkPolicyTrafficClassificationRuleTarget.targetServiceAccounts choice: sets target_service_accounts.
DartDefineOutput
An output whose value is the client build's --dart-define file, registered with Stack.addDartDefineOutput.
Data
Base of every user-instantiable Terraform data block.
DataRef<T>
Public for sealed pattern matching, but constructor is private — only TfRef.data() may construct instances.
EnvironmentConstant
The AppConstant.fromEnvironment choice.
GcsBackend
terraform { backend "gcs" { ... } } configuration.
GoogleComputeBackendBucketIamBinding
Factory wrapper for google_compute_backend_bucket_iam_binding.
GoogleComputeBackendBucketIamMember
Factory wrapper for google_compute_backend_bucket_iam_member.
GoogleComputeBackendBucketIamPolicy
Factory wrapper for google_compute_backend_bucket_iam_policy.
GoogleComputeBackendServiceIamBinding
Factory wrapper for google_compute_backend_service_iam_binding.
GoogleComputeBackendServiceIamMember
Factory wrapper for google_compute_backend_service_iam_member.
GoogleComputeBackendServiceIamPolicy
Factory wrapper for google_compute_backend_service_iam_policy.
GoogleComputeFutureReservation
Factory wrapper for google_compute_future_reservation.
GoogleComputeInstanceFromMachineImage
Factory wrapper for google_compute_instance_from_machine_image.
GoogleComputeMachineImage
Factory wrapper for google_compute_machine_image.
GoogleComputeMachineImageIamBinding
Factory wrapper for google_compute_machine_image_iam_binding.
GoogleComputeMachineImageIamMember
Factory wrapper for google_compute_machine_image_iam_member.
GoogleComputeMachineImageIamPolicy
Factory wrapper for google_compute_machine_image_iam_policy.
GoogleComputeNetworkFirewallPolicyPacketMirroringRule
Factory wrapper for google_compute_network_firewall_policy_packet_mirroring_rule.
GoogleComputeRegionBackendBucket
Factory wrapper for google_compute_region_backend_bucket.
GoogleComputeRegionBackendBucketIamBinding
Factory wrapper for google_compute_region_backend_bucket_iam_binding.
GoogleComputeRegionBackendBucketIamMember
Factory wrapper for google_compute_region_backend_bucket_iam_member.
GoogleComputeRegionBackendBucketIamPolicy
Factory wrapper for google_compute_region_backend_bucket_iam_policy.
GoogleComputeRegionBackendServiceIamBinding
Factory wrapper for google_compute_region_backend_service_iam_binding.
GoogleComputeRegionBackendServiceIamMember
Factory wrapper for google_compute_region_backend_service_iam_member.
GoogleComputeRegionBackendServiceIamPolicy
Factory wrapper for google_compute_region_backend_service_iam_policy.
GoogleComputeRegionNetworkPolicy
Factory wrapper for google_compute_region_network_policy.
GoogleComputeRegionNetworkPolicyTrafficClassificationRule
Factory wrapper for google_compute_region_network_policy_traffic_classification_rule.
IgnoreAllChanges
IgnoreChanges.all.
IgnoreAttributes
IgnoreChanges.of.
IgnoreChanges
What ignore_changes covers: every attribute, or the listed ones.
InvalidDartDefineOutput
An output of Stack.addDartDefineOutput that cannot carry what it names: an output that is not registered, is sensitive or has no environment value, two outputs read from one variable, or no output at all.
InvalidLifecycle
A lifecycle block Terraform rejects: a data source (or one of its attributes) in replaceTriggeredBy, all inside IgnoreChanges.of, or a condition with an empty error message.
InvalidMoveTarget
A moved block whose to names no resource of the Stack.
InvalidTimeout
A negative timeouts duration.
LifecycleCondition
A precondition or postcondition block: Terraform fails the plan (LifecycleCondition.pre) or the apply (LifecycleCondition.post) with errorMessage when condition is false.
LifecycleOptions
lifecycle { ... } block on a resource.
LocalBackend
terraform { backend "local" { ... } } configuration.
MissingProvider
A block needs a provider configuration the Stack does not register: the provider its type implies (google for google_pubsub_topic), the one its provider meta-argument names, or one a module call passes on.
ModuleCall
A module "<localName>" { ... } call as a Dart value.
NoProviders
The Stack registers no provider, but declares resources or data sources.
ProviderConflict
Two provider registrations Terraform rejects together: two defaults of one name, a repeated alias, an alias that is not an identifier, or configurations of one name with different source / version constraints.
RefConstant<T>
The AppConstant.ref choice.
ReplaceTrigger
What lifecycle.replaceTriggeredBy lists: a resource of the Stack or an attribute getter of one. Resource and TfRef implement it; synth reports a data source or a data-source attribute as an InvalidLifecycle.
Resource
Base of every user-instantiable Terraform resource.
ResourceRef
Public for sealed pattern matching, but constructor is private — only TfRef.resource() may construct instances.
S3Backend
terraform { backend "s3" { ... } } configuration.
Sensitive<T>
What an argument Terraform marks sensitive takes: a variable, an expression or an attribute getter — a value Terraform resolves, never a Dart literal that would be written into main.tf.json.
SensitiveLiteral
A sensitive field is set to a literal, which would write the secret in plain text into main.tf.json.
Stack
User-extended IaC composition root.
StackBackend
Lightweight backend hook. Core ships GcsBackend, S3Backend, and LocalBackend; anything else implements this interface in the caller. The Stack only stores the value and exposes a discriminator for synth's terraform { backend ... } emitter.
StackProvider
Coordination interface between Stack (in this package) and concrete providers (e.g. GoogleProvider in terradart_google). Concrete providers implement every getter using their baked-in constants from Stage 2 codegen.
SynthIssue
One reason a Stack cannot be synthesized.
SynthResult
Bundle returned by StackSynth.synth.
TfAddressed
Anything that exposes a Terraform address, e.g. google_pubsub_topic.orders.
TfArg<T>
A Terraform argument: a Dart-side literal, a reference to another block's attribute (TfRef), a variable or a raw expression.
TfArgExpression<T>
A raw Terraform expression — the tf.json template string, verbatim.
TfArgLiteral<T>
TfArgVariable<T>
TfCollectionType
list(...), set(...) or map(...).
TfMoved
One moved { from = ... to = ... } block: the state object at from now belongs to the resource at to, so a rename does not become a destroy-and-create.
TfObjectType
object({ ... }).
TfOptionalType
optional(<type>[, <default>]).
TfOutput<T>
An output "<name>" { value = ... } block, registered with Stack.addOutput.
TfPrimitiveType
string, number, bool or any.
TfRef<T>
A Terraform-side reference: an attribute of a resource (AttributeRef) or a data source (DataRef), or a whole resource (ResourceRef).
TfTimeouts
timeouts { ... } on a resource or data source: how long Terraform waits for each operation before giving up.
TfTupleType
tuple([...]).
TfType
A Terraform type constraint: string, list(number), object({ name = string }).
TfVariable
One variable "<name>" { ... } declaration.
UndeclaredVariable
A TfArg.variable or var.<name> in an expression names a variable the Stack does not declare.
UnregisteredReference
A block references another block that was never registered on the Stack: built, but not passed to add(...) / addModule(...).
UnresolvableConstant
An AppConstant.ref whose value is not known at synth: the attribute is not set to a literal, is sensitive, does not match the constant's type, or belongs to a block that is not registered.
ValueConstant<T>
The AppConstant.value choice.

Enums

ResourceKind
Whether a Stack entry is a resource block or a data block in Terraform JSON.

Extension Types

ComputeFutureReservationCommitmentPlan
commitment_plan — derived from the provider schema description.
ComputeFutureReservationDeploymentType
Compute Future Reservation Deployment enum for deployment_type.
ComputeFutureReservationInterface
interface — derived from the provider schema description.
ComputeFutureReservationMaintenanceInterval
maintenance_interval — derived from the provider schema description.
ComputeFutureReservationMode
Compute Future Reservation enum for reservation_mode.
ComputeFutureReservationPlanningStatus
Compute Future Reservation Planning enum for planning_status.
ComputeFutureReservationPreviousCommitmentTerms
previous_commitment_terms — derived from the provider schema description.
ComputeFutureReservationSchedulingType
Compute Future Reservation Scheduling enum for scheduling_type.
ComputeFutureReservationShareType
share_type — derived from the provider schema description.
ComputeFutureReservationVmFamily
vm_family — derived from the provider schema description.
ComputeFutureReservationWorkloadType
workload_type — derived from the provider schema description.
ComputeInstanceFromMachineImageNicType
nic_type — derived from the provider schema description.
ComputeInstanceFromMachineImageTotalEgressBandwidthTier
total_egress_bandwidth_tier — derived from the provider schema description.
ComputeNetworkFirewallPolicyPacketMirroringRuleDirection
Compute Network Firewall Policy Packet Mirroring Rule enum for direction.
ComputeRegionBackendBucketLoadBalancingScheme
Compute Region Backend Bucket Load Balancing enum for load_balancing_scheme.
ComputeRegionNetworkPolicyTrafficClassificationRuleDscpMode
dscp_mode — derived from the provider schema description.
ComputeRegionNetworkPolicyTrafficClassificationRuleTrafficClass
traffic_class — derived from the provider schema description.
ComputeRegionNetworkPolicyTrafficClassificationRuleType
type — derived from the provider schema description.
OutputEnvironment
The environment Stack.outputEnvironment returns: each variable and its value, in registration order.
RefTo
A reference to a resource of type R, for an argument that names another resource (network, vpc_id, role_arn, ...).

Extensions

RefToList on TfArg<List<RefTo<R>>>
A list-valued reference argument (security_group_ids, subnet_ids): a literal list of RefTos, or one value that is the whole list (TfArg.variable('subnet_ids'), TfArg.expression(...)).
TerraformDurationExt on Duration
Converts a Dart Duration into a Terraform duration string ("604800s").

Constants

terradartManifestVariable → const String
The environment variable the terradart command sets to the file runStack and runEnvironments describe what they wrote in.

Functions

runEnvironments<E extends Enum>(List<String> args, List<E> environments, Stack build(E env), {String dir(E env)?, String? workspace(E env)?, List<String> backendConfig(E env)?, E? defaultEnv}) → Future<void>
The entry point of a project with one Stack per environment. The environments are the members of an enum of the project's own — any names, each carrying its values — so the Stack takes a typed env and derives everything per environment from it, its backend included:
runStack(List<String> args, Stack build(), {String out = 'tf-out'}) → Future<void>
The entry point of a project with one Stack: writes it to out.

Exceptions / Errors

DuplicateModuleError
A ModuleCall registered twice under one name.
DuplicateResourceError
Thrown by Stack.add when an entry with the same (kind, terraformType, localName) triple is registered twice.
SynthException
Thrown by Stack.synth() and Stack.writeTo() when the Stack has one or more SynthIssues. Nothing is written.