GoogleComputeFirewall class final

Factory wrapper for google_compute_firewall.

Each network has its own firewall controlling access to and from the instances.

All traffic to instances, even from other instances, is blocked by the firewall unless firewall rules are created to allow it.

The default network has automatically created firewall rules that are shown in default firewall rules. No manually created network has automatically created firewall rules except for a default "allow" rule for outgoing traffic and a default "deny" for incoming traffic. For all networks except the default network, you must create any firewall rules you need.

This resource models a VPC firewall rule.

Required identity:

  • localName: Terraform local name (the address segment after google_compute_firewall.).
  • name: GCP firewall rule name.
  • network: VPC network this rule attaches to. Typically vpc.ref where vpc is a GoogleComputeNetwork.

Choose exactly one ComputeFirewallRulePolicy:

Example:

final allowSsh = GoogleComputeFirewall(
  'allow_ssh',
  name: TfArg.literal('allow-ssh'),
  network: vpc.ref,
  direction: FirewallDirection.ingress,
  priority: TfArg.literal(1000),
  rulePolicy: ComputeFirewallAllowPolicy(
    protocol: TfArg.literal('tcp'),
    ports: ['22'],
  ),
  sourceRanges: TfArg.literal(['10.0.0.0/8']),
);

Composition pattern: extends Resource for runtime behavior. The allow / deny list-typed blocks and the single log_config block are modeled as helper classes in the prelude below.

Inheritance

Constructors

GoogleComputeFirewall(String localName, {required TfArg<String> name, required RefTo<GoogleComputeNetwork> network, FirewallDirection? direction, TfArg<num>? priority, required ComputeFirewallRulePolicy rulePolicy, TfArg<List<String>>? sourceRanges, TfArg<List<String>>? sourceTags, TfArg<List<String>>? sourceServiceAccounts, TfArg<List<String>>? targetTags, TfArg<List<String>>? targetServiceAccounts, TfArg<List<String>>? destinationRanges, ComputeFirewallLogConfig? logConfig, TfArg<bool>? disabled, TfArg<bool>? enableLogging, TfArg<String>? description, ComputeFirewallParams? params, TfArg<String>? project, LifecycleOptions? lifecycle, List<TfAddressed>? dependsOn, StackProvider? provider, TfTimeouts? timeouts})

Properties

argMap → Map<String, TfArg?>
Argument-name → TfArg map. Keys are snake_case (Terraform JSON name). Synth emits these keys directly; the factory is responsible for the camelCase → snake_case translation at construction time.
finalinherited
creationTimestamp → TfRef<String>
Reference to creation_timestamp attribute.
no setter
defaultProvider → String
The provider name a block without provider uses: by default the prefix of terraformType (google for google_pubsub_topic).
no setterinherited
deletionPolicy → TfRef<String>
Reference to deletion_policy attribute.
no setter
dependsOn → List<TfAddressed>?
Optional depends_on = [...]: the resources, data sources and module calls this block waits for, e.g. dependsOn: [api, ...apiDeps]. Terraform takes whole blocks only, so an entry is never an attribute.
finalinherited
description → TfRef<String>
Reference to description attribute.
no setter
destinationRanges → TfRef<List<String>>
Reference to destination_ranges attribute.
no setter
direction → TfRef<String>
Reference to direction attribute.
no setter
disabled → TfRef<bool>
Reference to disabled attribute.
no setter
enableLogging → TfRef<bool>
Reference to enable_logging attribute.
no setter
hashCode → int
The hash code for this object.
no setterinherited
id → TfRef<String>
Reference to id attribute.
no setter
kind → ResourceKind
Always ResourceKind.resource. Overridden by Data.
no setterinherited
lifecycle → LifecycleOptions?
Optional lifecycle { ... } block.
finalinherited
localName → String
User-supplied local name within a Stack.
finalinherited
name → TfRef<String>
Reference to name attribute.
no setter
network → TfRef<String>
Reference to network attribute.
no setter
priority → TfRef<num>
Reference to priority attribute.
no setter
project → TfRef<String>
Reference to project attribute.
no setter
provider → StackProvider?
Optional Terraform provider meta-argument: the provider configuration this block uses, e.g. the aliased GoogleProvider(alias: 'eu') the Stack registered with addProvider.
finalinherited
ref → RefTo<GoogleComputeFirewall>
A reference to this resource, for arguments typed RefTo<GoogleComputeFirewall>.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
Reference to self_link attribute.
no setter
sensitiveFields → Set<String>
Field names that are @Sensitive per the IR-derived per-resource constant. Curated factories override with a baked-in static const Set<String> (file-private in v0.5+).
no setteroverride
sourceRanges → TfRef<List<String>>
Reference to source_ranges attribute.
no setter
sourceServiceAccounts → TfRef<List<String>>
Reference to source_service_accounts attribute.
no setter
sourceTags → TfRef<List<String>>
Reference to source_tags attribute.
no setter
supportsDeletionProtection → bool
Capability flag: true when this resource's underlying Terraform schema has a deletion_protection boolean attribute that the synth-time devMode flow can flip to false. Defaults to false; the codegen emitter overrides this to true for wrappers whose schema includes the attribute.
no setterinherited
targetServiceAccounts → TfRef<List<String>>
Reference to target_service_accounts attribute.
no setter
targetTags → TfRef<List<String>>
Reference to target_tags attribute.
no setter
terraformType → String
Terraform resource type, e.g. google_pubsub_topic.
finalinherited
tfAddress → String
Terraform address <terraformType>.<localName>, e.g. google_pubsub_topic.orders.
no setterinherited
timeouts → TfTimeouts?
Optional timeouts { ... } block: how long Terraform waits for each operation. Provider-neutral like lifecycle — synth copies the duration strings verbatim, and terraform validate decides whether this resource's schema declares the operations set here.
finalinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Constants

tfType → const String