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 after google_project_service.).
  • service: API endpoint name, e.g. pubsub.googleapis.com. Pass TfArg.literal('pubsub.googleapis.com').

Optional knobs:

  • project: explicit project ID; defaults to the provider's project when omitted.
  • disableOnDestroy: when false, leaves the API enabled if the resource is destroyed. Recommended false for personal/shared projects — disabling APIs that other resources outside Terraform's knowledge depend on can break unrelated workloads.
  • disableDependentServices: when true, also disables any APIs that depend on this one. Default false.

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

GoogleProjectService({required String localName, required TfArg<String> service, TfArg<String>? project, TfArg<bool>? disableOnDestroy, TfArg<bool>? disableDependentServices, LifecycleOptions? lifecycle, List<DependencyTarget>? dependsOn})

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 a DependencyTarget — either a wholesale resource (rendered as bare address) or an explicit TfRef (rendered via bareAddress).
finalinherited
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
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
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 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
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

Constants

tfType → const String