terradart_google 0.34.0 copy "terradart_google: ^0.34.0" to clipboard
terradart_google: ^0.34.0 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 #

pub: terradart_google Dart SDK License: Apache-2.0

Curated factory wrappers for Google Cloud resources (the official hashicorp/google Terraform provider) for Dart-first Terraform stacks.

Ships 1366 curated resource factories + 468 data sources (1834 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 (112 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.34.0
  terradart_google: ^0.34.0

Usage example #

// lib/assets_stack.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(
      'assets',
      name: .literal('my-app-assets-prod'),
      location: .literal('ASIA-NORTHEAST1'),
      storageClass: .standard,
    ));
  }
}
// bin/infra.dart
import 'package:my_app/assets_stack.dart';

Future<void> main() async {
  final stack = AssetsStack(projectId: 'my-project-id');
  await stack.writeTo('tf-out');
}
dart pub get
dart pub global activate terradart_cli
terradart apply

Register a second configuration with final eu = addProvider(GoogleProvider(alias: 'eu', ...)) and select it on a resource with provider: eu — every factory and data source takes provider: (Terraform's provider meta-argument), a provider instance the Stack registers; a registered GoogleBetaProvider puts a GA type on the beta provider.

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-codegen 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-codegen wrap --check. Runtime primitives (Stack, TfArg, writeTo) live in terradart_core.

1
likes
160
points
738
downloads

Documentation

Documentation
API reference

Publisher

unverified uploader

Weekly Downloads

Curated factory wrappers for Google Cloud resources (Compute, BigQuery, Cloud Run, Cloud SQL, Pub/Sub, Monitoring, ...) for Dart-first Terraform stacks.

Repository (GitHub)
View/report issues
Contributing

Topics

#terraform #infrastructure #codegen #google-cloud

License

Apache-2.0 (license)

Dependencies

meta, terradart_core, terradart_time

More

Packages that depend on terradart_google