GoogleProjectService class final
Factory wrapper for google_project_service.
Enables a single Google Cloud API on a project. Each GCP API (Pub/Sub,
Cloud Tasks, Secret Manager, Cloud Scheduler, …) requires its matching
google_project_service resource to be enabled before its resources
can be created — typically wired as an explicit dependsOn so Terraform
applies the API enablement first.
Required identity:
localName: Terraform local name (the address segment aftergoogle_project_service.).service: API endpoint name, e.g.pubsub.googleapis.com. PassTfArg.literal('pubsub.googleapis.com').
Optional knobs:
project: explicit project ID; defaults to the provider'sprojectwhen omitted.disableOnDestroy: whenfalse, leaves the API enabled if the resource is destroyed. Recommendedfalsefor personal/shared projects — disabling APIs that other resources outside Terraform's knowledge depend on can break unrelated workloads.disableDependentServices: whentrue, also disables any APIs that depend on this one. Defaultfalse.
Example pairing with GooglePubsubTopic:
final pubsubApi = GoogleProjectService(
localName: 'pubsub',
service: TfArg.literal('pubsub.googleapis.com'),
disableOnDestroy: TfArg.literal(false),
);
final orders = GooglePubsubTopic(
localName: 'orders',
name: TfArg.literal('orders-prod'),
dependsOn: [pubsubApi],
);
Constructors
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
-
dependsOn
→ List<
DependencyTarget> ? -
Optional
depends_on = [...]. Each entry is aDependencyTarget— either a wholesale resource (rendered as bare address) or an explicitTfRef(rendered viabareAddress).finalinherited - hashCode → int
-
The hash code for this object.
no setterinherited
-
id
→ TfRef<
String> -
Reference to
idattribute.no setter - kind → ResourceKind
-
Always
ResourceKind.resource. Overridden byData.no setterinherited - lifecycle → LifecycleOptions?
-
Optional
lifecycle { ... }block.finalinherited - localName → String
-
User-supplied local name within a Stack.
finalinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
sensitiveFields
→ Set<
String> -
Field names that are
@Sensitiveper the IR-derived per-resource constant. Curated factories override with a baked-instatic const Set<String>(file-private in v0.5+).no setter - supportsDeletionProtection → bool
-
Capability flag: true when this resource's underlying Terraform
schema has a
deletion_protectionboolean attribute that the synth-time devMode flow can flip tofalse. Defaults to false; the codegen emitter overrides this totruefor wrappers whose schema includes the attribute.no setterinherited - terraformType → String
-
Terraform resource type, e.g.
google_pubsub_topic.finalinherited - tfAddress → String
-
no setterinherited
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