Examples

More examples can be found in in Terrascripts examples/ directory.

AWS

VPCs

This example has been copied from the Terraform documentation for the AWS Provider.

Terraform HCL code:

Python code:

import terrascript
import terrascript.provider
import terrascript.resource

config = terrascript.Terrascript()
config += terrascript.provider.aws(region="us-east-1", version="~> 2.0")
config += terrascript.resource.aws_vpc("example", cidr_block="10.0.0.0/16")

print(config)

JSON output:

{
  "provider": {
    "aws": [
      {
        "version": "~> 2.0",
        "region": "us-east-1"
      }
    ]
  },
  "resource": {
    "aws_vpc": {
      "example": {
        "cidr_block": "10.0.0.0/16"
      }
    }
  }
}

Provider Endpoints

Terraform HCL code:

Python code:

import terrascript
import terrascript.provider
import terrascript.resource

config = terrascript.Terrascript()

config += terrascript.provider.aws(
    region="us-east-1",
    version="~> 2.0",
    endpoints=terrascript.Block(
        dynamodb="http://localhost:4569",
        s3="http://localhost:4572",
    ),
)

config += terrascript.resource.aws_vpc("example", cidr_block="10.0.0.0/16")

print(config)

JSON output:

{
  "provider": {
    "aws": [
      {
        "version": "~> 2.0",
        "region": "us-east-1",
        "endpoints": {
          "dynamodb": "http://localhost:4569",
          "s3": "http://localhost:4572"
        }
      }
    ]
  },
  "resource": {
    "aws_vpc": {
      "example": {
        "cidr_block": "10.0.0.0/16"
      }
    }
  }
}