terradart_annotations library

terradart_annotations -- annotation surface consumed by terradart_codegen generated $Foo abstract classes.

Three const annotations exposed:

  • TerraformResource -- pinned on each generated abstract class to record the Terraform resource type + provider.
  • ForceNew -- marks getters whose schema attribute is ForceNew (provider replaces the resource on change).
  • Sensitive -- marks getters whose values must not appear in plain text in synth output. The aggregate set is emitted as a top-level const Set<String> <terraformTypeCamelCase>Sensitive sibling to each generated abstract class; factories read the const for their runtime $sensitiveFields getter.

Classes

ForceNew
Marks a getter on a generated $Foo abstract class whose underlying Terraform attribute is ForceNew -- i.e. mutating it triggers a destroy/recreate cycle. Pure documentation in v0.0.x; future may surface this in plan-time warnings.
Sensitive
Marks a getter on a generated $Foo abstract class whose value must be masked in synth output. Per ADRs 0009 + 0012, all @Sensitive-marked fields are aggregated by terradart_codegen into a top-level const Set<String> <terraformTypeCamelCase>Sensitive sibling to the abstract class; the runtime synth pass consults that set when emitting terraform.tf.json to substitute literal sensitive values with ''.
TerraformResource
Records the Terraform resource type and provider on a generated abstract $Foo class. Emitted by terradart_codegen on every generated abstract class (both the curated terradart_google factories and any user-side codegen output).