terradart_google 0.7.0-dev
terradart_google: ^0.7.0-dev copied to clipboard
terradart curated GCP factory wrappers — 96 google_* resources + 1 data source (Compute, Compute LB stack, BigQuery, KMS, Cloud Storage, DNS, Cloud Run v2, Logging, Monitoring, Pub/Sub, Cloud Tasks, S [...]
terradart_google #
Curated GCP factory wrappers for terradart. 70 curated resource factories + 1 data source, each shipping with typed Dart enums for fixed-value-set fields, typed helper classes for every nested block, and golden-tested deterministic codegen.
Resources #
BigQuery (4) #
GoogleBigqueryDataset(8-variant sealedAccesshierarchy),GoogleBigqueryTable,GoogleBigqueryDatasetIamMember,GoogleBigqueryTableIamMember.
Cloud Functions (2) #
GoogleCloudfunctions2Function(Gen 2; typedBuildConfig,ServiceConfig,EventTrigger),GoogleCloudfunctions2FunctionIamMember.
Cloud Run v2 (4) #
GoogleCloudRunV2Service(sealedEnvVarSource, sealedVolumeSource; typedIngress,LaunchStage,Template,ServiceContainer, etc.),GoogleCloudRunV2Job,GoogleCloudRunV2ServiceIamMember,GoogleCloudRunV2JobIamMember.
Cloud Scheduler (1) #
GoogleCloudSchedulerJob(Pub/Sub / HTTP / AppEngine targets).
Cloud SQL (3) #
GoogleSqlDatabaseInstance(typedDatabaseVersion,SqlActivationPolicy,IpConfiguration,BackupConfiguration,InsightsConfig),GoogleSqlDatabase,GoogleSqlUser.
Cloud Tasks (2) #
GoogleCloudTasksQueue(typedRateLimits,RetryConfig,QueueHttpTarget),GoogleCloudTasksQueueIamMember.
Compute (9) #
GoogleComputeNetwork,GoogleComputeAddress,GoogleComputeSubnetwork,GoogleComputeFirewall,GoogleComputeInstance(typedBootDisk,NetworkInterface,Scheduling, etc.),GoogleComputeGlobalAddress,GoogleComputeInstanceIamMember,GoogleComputeDiskIamMember,GoogleComputeSubnetworkIamMember.
DNS (2) #
GoogleDnsManagedZone(typedDnsZoneVisibility,DnssecState; helpers for private visibility / DNSSEC / peering / forwarding),GoogleDnsManagedZoneIamMember.
Firebase App Check (7) #
GoogleFirebaseAppCheckRecaptchaEnterpriseConfig,GoogleFirebaseAppCheckPlayIntegrityConfig,GoogleFirebaseAppCheckAppAttestConfig,GoogleFirebaseAppCheckDeviceCheckConfig,GoogleFirebaseAppCheckServiceConfig(sharedAppCheckEnforcementModeenum),GoogleFirebaseAppCheckDebugToken,GoogleFirebaseAppCheckResourcePolicy.
Firebase App Hosting (5) #
GoogleFirebaseAppHostingBackend,GoogleFirebaseAppHostingBuild,GoogleFirebaseAppHostingDefaultDomain,GoogleFirebaseAppHostingDomain,GoogleFirebaseAppHostingTraffic.
Firebase Data Connect (1) #
GoogleFirebaseDataConnectService.
Firebase Remote Config (1) #
GoogleFirebaseRemoteConfigRemoteConfig.
Firestore (5) #
GoogleFirestoreDatabase,GoogleFirestoreField,GoogleFirestoreIndex,GoogleFirestoreBackupSchedule,GoogleFirestoreUserCreds.
IAM (6) #
GoogleServiceAccount(pre-formattedmemberref),GoogleProjectIamMember,GoogleProjectIamCustomRole(typedCustomRoleStage),GoogleServiceAccountIamMember,GoogleServiceAccountKey(typedKeyAlgorithm,PrivateKeyType;private_keymasked at synth time),GoogleIamWorkloadIdentityPool(typedWorkloadIdentityPoolMode).
KMS (4) #
GoogleKmsKeyRing,GoogleKmsCryptoKey(typedKmsKeyPurpose,KmsProtectionLevel,VersionTemplate),GoogleKmsCryptoKeyIamMember,GoogleKmsKeyRingIamMember.
Logging (1) #
GoogleLoggingProjectSink(typedBigqueryOptions,LogSinkExclusion).
Monitoring (1) #
GoogleMonitoringAlertPolicy(typedComparison,Aligner19 variants,Reducer14 variants;AlertConditioncovering 6 mutually-exclusive condition variants).
Project enablement (1) #
GoogleProjectService.
Pub/Sub (4) #
GooglePubsubTopic,GooglePubsubSubscription(typedPushConfig,BigQueryConfig,CloudStorageConfig,DeadLetterPolicy,RetryPolicy),GooglePubsubTopicIamMember,GooglePubsubSubscriptionIamMember.
Secret Manager (3) #
GoogleSecretManagerSecret(sealedReplicationfor auto / userManaged variants),GoogleSecretManagerSecretVersion(write-onlysecret_data_wo),GoogleSecretManagerSecretIamMember.
Service Networking (1) #
GoogleServiceNetworkingConnection.
Cloud Storage (3) #
GoogleStorageBucket(typedBucketStorageClass,LifecycleRule,Versioning,RetentionPolicy, etc.),GoogleStorageBucketObject(sealedBucketObjectContentfor source / content exactly-one-of),GoogleStorageBucketIamMember.
Data sources (1) #
GoogleProject(project number lookup).
How resources are built #
The factory wrappers under lib/src/<service>/ are emitted by terradart wrap from curated overrides under terradart_codegen. They are committed to the package so consumers can depend on terradart_google directly without running any codegen themselves.
CI verifies determinism via terradart wrap --check: all 71 emitted files (70 resource wrappers + 1 data source) must stay byte-identical across PRs.
For any other google_* / google-beta_* resource that isn't in the catalog above, run terradart codegen against your provider schema dump and emit bindings into your own lib/generated/ rather than depending on this package.
For the runtime side (Stack, Resource, StackSynth.synth), see terradart_core. For project-level documentation, see the terradart repo README.
Installation #
dependencies:
terradart_core: ^0.1.0-dev
terradart_google: ^0.1.0-dev
terradart is a SemVer pre-release; explicit ^0.1.0-dev constraints are required because dart pub get skips pre-releases by default.
Usage example #
import 'package:terradart_core/terradart_core.dart';
import 'package:terradart_google/provider.dart';
import 'package:terradart_google/storage.dart';
class AssetsStack extends Stack {
AssetsStack({required String projectId})
: super(providers: [
GoogleProvider(project: projectId, region: 'asia-northeast1'),
]) {
add(
GoogleStorageBucket(
localName: 'assets',
name: TfArg.literal('my-app-assets-prod'),
location: TfArg.literal('ASIA-NORTHEAST1'),
storageClass: TfArg.literal(BucketStorageClass.standard), // typed enum
versioning: const Versioning(enabled: true), // typed helper
lifecycleRule: const [
LifecycleRule(
action: LifecycleAction(
type: LifecycleActionType.setStorageClass,
storageClass: BucketStorageClass.archive,
),
condition: LifecycleCondition(age: 365),
),
],
),
);
}
}
See the 20 runnable quickstart projects under examples/ for end-to-end usage of every service.