GoogleProjectServiceIdentity class final
Hand-written wrapper for google_project_service_identity
(hashicorp/google-beta).
Mints the Google-managed service agent for service via Service Usage
generateServiceIdentity. Enabling the API with GoogleProjectService
does not create that agent — topic/project IAM then 400s with
"Service account … does not exist".
Always emits provider = google-beta. Add GoogleBetaProvider to
Stack.providers next to GoogleProvider.
final assetSa = GoogleProjectServiceIdentity(
localName: 'cloudasset',
service: TfArg.literal('cloudasset.googleapis.com'),
);
Constructors
-
GoogleProjectServiceIdentity({required String localName, required TfArg<
String> service, TfArg<String> ? project, List<DependencyTarget> ? dependsOn, LifecycleOptions? lifecycle})
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 -
email
→ TfRef<
String> -
Google-managed agent email (
service-{number}@gcp-sa-….gserviceaccount.com).no setter - hashCode → int
-
The hash code for this object.
no setterinherited
-
id
→ TfRef<
String> -
Terraform id.
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
-
member
→ TfRef<
String> -
IAM member string (
serviceAccount:{email}).no setter - provider → String?
-
Optional Terraform
providermeta-argument (e.g.'google-beta').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