terradart_google 0.25.3
terradart_google: ^0.25.3 copied to clipboard
Curated factory wrappers for Google Cloud resources (Compute, BigQuery, Cloud Run, Cloud SQL, Pub/Sub, Monitoring, ...) for Dart-first Terraform stacks.
terradart_google #
Curated factory wrappers for Google Cloud resources (the official hashicorp/google Terraform provider) for Dart-first Terraform stacks.
Ships 1332 curated resource factories + 461 data sources (1793 catalog entries) across per-service barrels (compute, pubsub, cloud_run, bigquery, …). The GA hashicorp/google catalog is filled.
Beta-only types live in terradart_google_beta (128 resource factories). The full factory table with example pointers is on Coverage. Discover factories programmatically via package:terradart_google/catalog.dart (terradartCatalog).
Installation #
dependencies:
terradart_core: ^0.25.x
terradart_google: ^0.25.x
Usage example #
import 'package:terradart_core/terradart_core.dart';
import 'package:terradart_google/provider.dart';
import 'package:terradart_google/storage.dart';
final 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'),
storageClass: TfArg.literal(BucketStorageClass.standard),
));
}
}
// bin/infra.dart
import 'package:my_infra/assets_stack.dart';
Future<void> main() async {
final stack = AssetsStack(projectId: 'my-project-id');
await stack.writeTo('tf-out');
}
dart pub get
dart run bin/infra.dart
cd tf-out && terraform init && terraform apply
Per-service imports (cloud_run.dart, storage.dart, …) keep IDE completion scoped. See examples/ and the pubsub quickstart for AppExport / boundary patterns.
How resources are built #
Factory wrappers under lib/src/<service>/ are emitted by terradart wrap from curated overrides in terradart_codegen. They are committed so consumers depend on terradart_google without running codegen locally.
CI verifies determinism via terradart wrap --check. Runtime primitives (Stack, TfArg, writeTo) live in terradart_core.