Map Example¶
Auto Map Module Generation¶
Below is an example of a module map using test/module_map.yaml.
Module: projectC¶
- locals projectC:locals¶
Project Locals
locals.tf¶ 2locals {
3 full_bucket_name = "${var.environment}-${var.bucket_name}"
4
5 common_tags = merge(
6 {
7 Environment = var.environment
8 Owner = var.owner
9 ManagedBy = "terraform"
10 },
11 var.tags
12 )
13}
- variable bucket_name¶
main.tf¶28variable "bucket_name" {
29 type = string
30 description = "The base name for the S3 bucket. A suffix will be appended to ensure global uniqueness."
31}
- variable environment¶
main.tf¶33variable "environment" {
34 type = string
35 description = "Deployment environment (e.g. dev, staging, production)."
36 default = "dev"
37}
- variable owner¶
main.tf¶39variable "owner" {
40 type = string
41 description = "Team or individual responsible for this bucket."
42 default = "unset"
43}
- variable tags¶
main.tf¶51variable "tags" {
52 type = map(string)
53 description = "Additional tags to apply to all resources."
54 default = {}
55}
- variable versioning_enabled¶
main.tf¶45variable "versioning_enabled" {
46 type = bool
47 description = "Enable S3 object versioning on the bucket."
48 default = false
49}
- terraform projectC:terraform¶
main.tf¶18terraform {
19 required_version = ">= 1.3.0"
20 required_providers {
21 aws = {
22 source = "hashicorp/aws"
23 version = ">= 4.0"
24 }
25 }
26}
- resource aws_s3_bucket main¶
Primary storage bucket for project assets.
s3.tf¶2resource "aws_s3_bucket" "main" {
3 bucket = local.full_bucket_name
4 tags = local.common_tags
5}
- resource aws_s3_bucket_public_access_block main¶
Block all public access by default.
s3.tf¶30resource "aws_s3_bucket_public_access_block" "main" {
31 bucket = aws_s3_bucket.main.id
32
33 block_public_acls = true
34 block_public_policy = true
35 ignore_public_acls = true
36 restrict_public_buckets = true
37}
- resource aws_s3_bucket_server_side_encryption_configuration main¶
- Arguments:
bucket (str) – The name of the
main S3 bucket.
s3.tf¶19resource "aws_s3_bucket_server_side_encryption_configuration" "main" {
20 bucket = aws_s3_bucket.main.id
21
22 rule {
23 apply_server_side_encryption_by_default {
24 sse_algorithm = "AES256"
25 }
26 }
27}
- resource aws_s3_bucket_versioning main¶
Another Pre Comment
s3.tf¶ 9resource "aws_s3_bucket_versioning" "main" {
10 bucket = aws_s3_bucket.main.id
11
12 versioning_configuration {
13 status = var.versioning_enabled ? "Enabled" : "Suspended"
14 }
15}
Module: projectD¶
- locals projectD:locals¶
Project Locals
locals.tf¶ 2locals {
3 full_bucket_name = "${var.environment}-${var.bucket_name}"
4
5 common_tags = merge(
6 {
7 Environment = var.environment
8 Owner = var.owner
9 ManagedBy = "terraform"
10 },
11 var.tags
12 )
13}
- variable bucket_name¶
main.tf¶28variable "bucket_name" {
29 type = string
30 description = "The base name for the S3 bucket. A suffix will be appended to ensure global uniqueness."
31}
- variable environment¶
main.tf¶33variable "environment" {
34 type = string
35 description = "Deployment environment (e.g. dev, staging, production)."
36 default = "dev"
37}
- variable owner¶
main.tf¶39variable "owner" {
40 type = string
41 description = "Team or individual responsible for this bucket."
42 default = "unset"
43}
- variable tags¶
main.tf¶51variable "tags" {
52 type = map(string)
53 description = "Additional tags to apply to all resources."
54 default = {}
55}
- variable versioning_enabled¶
main.tf¶45variable "versioning_enabled" {
46 type = bool
47 description = "Enable S3 object versioning on the bucket."
48 default = false
49}
- terraform projectD:terraform¶
main.tf¶18terraform {
19 required_version = ">= 1.3.0"
20 required_providers {
21 aws = {
22 source = "hashicorp/aws"
23 version = ">= 4.0"
24 }
25 }
26}
- resource aws_s3_bucket main¶
Primary storage bucket for project assets.
s3.tf¶2resource "aws_s3_bucket" "main" {
3 bucket = local.full_bucket_name
4 tags = local.common_tags
5}
- resource aws_s3_bucket_public_access_block main¶
Block all public access by default.
s3.tf¶30resource "aws_s3_bucket_public_access_block" "main" {
31 bucket = aws_s3_bucket.main.id
32
33 block_public_acls = true
34 block_public_policy = true
35 ignore_public_acls = true
36 restrict_public_buckets = true
37}
- resource aws_s3_bucket_server_side_encryption_configuration main¶
- Arguments:
bucket (str) – The name of the
main S3 bucket.
s3.tf¶19resource "aws_s3_bucket_server_side_encryption_configuration" "main" {
20 bucket = aws_s3_bucket.main.id
21
22 rule {
23 apply_server_side_encryption_by_default {
24 sse_algorithm = "AES256"
25 }
26 }
27}
- resource aws_s3_bucket_versioning main¶
Another Pre Comment
s3.tf¶ 9resource "aws_s3_bucket_versioning" "main" {
10 bucket = aws_s3_bucket.main.id
11
12 versioning_configuration {
13 status = var.versioning_enabled ? "Enabled" : "Suspended"
14 }
15}
Module: projectE¶
- locals projectE:locals¶
Project Locals
locals.tf¶ 2locals {
3 full_bucket_name = "${var.environment}-${var.bucket_name}"
4
5 common_tags = merge(
6 {
7 Environment = var.environment
8 Owner = var.owner
9 ManagedBy = "terraform"
10 },
11 var.tags
12 )
13}
- variable bucket_name¶
main.tf¶28variable "bucket_name" {
29 type = string
30 description = "The base name for the S3 bucket. A suffix will be appended to ensure global uniqueness."
31}
- variable environment¶
main.tf¶33variable "environment" {
34 type = string
35 description = "Deployment environment (e.g. dev, staging, production)."
36 default = "dev"
37}
- variable owner¶
main.tf¶39variable "owner" {
40 type = string
41 description = "Team or individual responsible for this bucket."
42 default = "unset"
43}
- variable tags¶
main.tf¶51variable "tags" {
52 type = map(string)
53 description = "Additional tags to apply to all resources."
54 default = {}
55}
- variable versioning_enabled¶
main.tf¶45variable "versioning_enabled" {
46 type = bool
47 description = "Enable S3 object versioning on the bucket."
48 default = false
49}
- terraform projectE:terraform¶
main.tf¶18terraform {
19 required_version = ">= 1.3.0"
20 required_providers {
21 aws = {
22 source = "hashicorp/aws"
23 version = ">= 4.0"
24 }
25 }
26}
- resource aws_s3_bucket main¶
Primary storage bucket for project assets.
s3.tf¶2resource "aws_s3_bucket" "main" {
3 bucket = local.full_bucket_name
4 tags = local.common_tags
5}
- resource aws_s3_bucket_public_access_block main¶
Block all public access by default.
s3.tf¶30resource "aws_s3_bucket_public_access_block" "main" {
31 bucket = aws_s3_bucket.main.id
32
33 block_public_acls = true
34 block_public_policy = true
35 ignore_public_acls = true
36 restrict_public_buckets = true
37}
- resource aws_s3_bucket_server_side_encryption_configuration main¶
- Arguments:
bucket (str) – The name of the
main S3 bucket.
s3.tf¶19resource "aws_s3_bucket_server_side_encryption_configuration" "main" {
20 bucket = aws_s3_bucket.main.id
21
22 rule {
23 apply_server_side_encryption_by_default {
24 sse_algorithm = "AES256"
25 }
26 }
27}
- resource aws_s3_bucket_versioning main¶
Another Pre Comment
s3.tf¶ 9resource "aws_s3_bucket_versioning" "main" {
10 bucket = aws_s3_bucket.main.id
11
12 versioning_configuration {
13 status = var.versioning_enabled ? "Enabled" : "Suspended"
14 }
15}
Module: projectF¶
- locals projectF:locals¶
Project Locals
locals.tf¶ 2locals {
3 full_bucket_name = "${var.environment}-${var.bucket_name}"
4
5 common_tags = merge(
6 {
7 Environment = var.environment
8 Owner = var.owner
9 ManagedBy = "terraform"
10 },
11 var.tags
12 )
13}
- variable bucket_name¶
main.tf¶28variable "bucket_name" {
29 type = string
30 description = "The base name for the S3 bucket. A suffix will be appended to ensure global uniqueness."
31}
- variable environment¶
main.tf¶33variable "environment" {
34 type = string
35 description = "Deployment environment (e.g. dev, staging, production)."
36 default = "dev"
37}
- variable owner¶
main.tf¶39variable "owner" {
40 type = string
41 description = "Team or individual responsible for this bucket."
42 default = "unset"
43}
- variable tags¶
main.tf¶51variable "tags" {
52 type = map(string)
53 description = "Additional tags to apply to all resources."
54 default = {}
55}
- variable versioning_enabled¶
main.tf¶45variable "versioning_enabled" {
46 type = bool
47 description = "Enable S3 object versioning on the bucket."
48 default = false
49}
- terraform projectF:terraform¶
main.tf¶18terraform {
19 required_version = ">= 1.3.0"
20 required_providers {
21 aws = {
22 source = "hashicorp/aws"
23 version = ">= 4.0"
24 }
25 }
26}
- resource aws_s3_bucket main¶
Primary storage bucket for project assets.
s3.tf¶2resource "aws_s3_bucket" "main" {
3 bucket = local.full_bucket_name
4 tags = local.common_tags
5}
- resource aws_s3_bucket_public_access_block main¶
Block all public access by default.
s3.tf¶30resource "aws_s3_bucket_public_access_block" "main" {
31 bucket = aws_s3_bucket.main.id
32
33 block_public_acls = true
34 block_public_policy = true
35 ignore_public_acls = true
36 restrict_public_buckets = true
37}
- resource aws_s3_bucket_server_side_encryption_configuration main¶
- Arguments:
bucket (str) – The name of the
main S3 bucket.
s3.tf¶19resource "aws_s3_bucket_server_side_encryption_configuration" "main" {
20 bucket = aws_s3_bucket.main.id
21
22 rule {
23 apply_server_side_encryption_by_default {
24 sse_algorithm = "AES256"
25 }
26 }
27}
- resource aws_s3_bucket_versioning main¶
Another Pre Comment
s3.tf¶ 9resource "aws_s3_bucket_versioning" "main" {
10 bucket = aws_s3_bucket.main.id
11
12 versioning_configuration {
13 status = var.versioning_enabled ? "Enabled" : "Suspended"
14 }
15}
Module: projectG¶
- locals projectG:locals¶
Project Locals
locals.tf¶ 2locals {
3 full_bucket_name = "${var.environment}-${var.bucket_name}"
4
5 common_tags = merge(
6 {
7 Environment = var.environment
8 Owner = var.owner
9 ManagedBy = "terraform"
10 },
11 var.tags
12 )
13}
- variable bucket_name¶
main.tf¶28variable "bucket_name" {
29 type = string
30 description = "The base name for the S3 bucket. A suffix will be appended to ensure global uniqueness."
31}
- variable environment¶
main.tf¶33variable "environment" {
34 type = string
35 description = "Deployment environment (e.g. dev, staging, production)."
36 default = "dev"
37}
- variable owner¶
main.tf¶39variable "owner" {
40 type = string
41 description = "Team or individual responsible for this bucket."
42 default = "unset"
43}
- variable tags¶
main.tf¶51variable "tags" {
52 type = map(string)
53 description = "Additional tags to apply to all resources."
54 default = {}
55}
- variable versioning_enabled¶
main.tf¶45variable "versioning_enabled" {
46 type = bool
47 description = "Enable S3 object versioning on the bucket."
48 default = false
49}
- terraform projectG:terraform¶
main.tf¶18terraform {
19 required_version = ">= 1.3.0"
20 required_providers {
21 aws = {
22 source = "hashicorp/aws"
23 version = ">= 4.0"
24 }
25 }
26}
- resource aws_s3_bucket main¶
Primary storage bucket for project assets.
s3.tf¶2resource "aws_s3_bucket" "main" {
3 bucket = local.full_bucket_name
4 tags = local.common_tags
5}
- resource aws_s3_bucket_public_access_block main¶
Block all public access by default.
s3.tf¶30resource "aws_s3_bucket_public_access_block" "main" {
31 bucket = aws_s3_bucket.main.id
32
33 block_public_acls = true
34 block_public_policy = true
35 ignore_public_acls = true
36 restrict_public_buckets = true
37}
- resource aws_s3_bucket_server_side_encryption_configuration main¶
- Arguments:
bucket (str) – The name of the
main S3 bucket.
s3.tf¶19resource "aws_s3_bucket_server_side_encryption_configuration" "main" {
20 bucket = aws_s3_bucket.main.id
21
22 rule {
23 apply_server_side_encryption_by_default {
24 sse_algorithm = "AES256"
25 }
26 }
27}
- resource aws_s3_bucket_versioning main¶
Another Pre Comment
s3.tf¶ 9resource "aws_s3_bucket_versioning" "main" {
10 bucket = aws_s3_bucket.main.id
11
12 versioning_configuration {
13 status = var.versioning_enabled ? "Enabled" : "Suspended"
14 }
15}
Module: projectH¶
- locals projectH:locals¶
Project Locals
locals.tf¶ 2locals {
3 full_bucket_name = "${var.environment}-${var.bucket_name}"
4
5 common_tags = merge(
6 {
7 Environment = var.environment
8 Owner = var.owner
9 ManagedBy = "terraform"
10 },
11 var.tags
12 )
13}
- variable bucket_name¶
main.tf¶28variable "bucket_name" {
29 type = string
30 description = "The base name for the S3 bucket. A suffix will be appended to ensure global uniqueness."
31}
- variable environment¶
main.tf¶33variable "environment" {
34 type = string
35 description = "Deployment environment (e.g. dev, staging, production)."
36 default = "dev"
37}
- variable owner¶
main.tf¶39variable "owner" {
40 type = string
41 description = "Team or individual responsible for this bucket."
42 default = "unset"
43}
- variable tags¶
main.tf¶51variable "tags" {
52 type = map(string)
53 description = "Additional tags to apply to all resources."
54 default = {}
55}
- variable versioning_enabled¶
main.tf¶45variable "versioning_enabled" {
46 type = bool
47 description = "Enable S3 object versioning on the bucket."
48 default = false
49}
- terraform projectH:terraform¶
main.tf¶18terraform {
19 required_version = ">= 1.3.0"
20 required_providers {
21 aws = {
22 source = "hashicorp/aws"
23 version = ">= 4.0"
24 }
25 }
26}
- resource aws_s3_bucket main¶
Primary storage bucket for project assets.
s3.tf¶2resource "aws_s3_bucket" "main" {
3 bucket = local.full_bucket_name
4 tags = local.common_tags
5}
- resource aws_s3_bucket_public_access_block main¶
Block all public access by default.
s3.tf¶30resource "aws_s3_bucket_public_access_block" "main" {
31 bucket = aws_s3_bucket.main.id
32
33 block_public_acls = true
34 block_public_policy = true
35 ignore_public_acls = true
36 restrict_public_buckets = true
37}
- resource aws_s3_bucket_server_side_encryption_configuration main¶
- Arguments:
bucket (str) – The name of the
main S3 bucket.
s3.tf¶19resource "aws_s3_bucket_server_side_encryption_configuration" "main" {
20 bucket = aws_s3_bucket.main.id
21
22 rule {
23 apply_server_side_encryption_by_default {
24 sse_algorithm = "AES256"
25 }
26 }
27}
- resource aws_s3_bucket_versioning main¶
Another Pre Comment
s3.tf¶ 9resource "aws_s3_bucket_versioning" "main" {
10 bucket = aws_s3_bucket.main.id
11
12 versioning_configuration {
13 status = var.versioning_enabled ? "Enabled" : "Suspended"
14 }
15}
Module: projectI¶
- locals projectI:locals¶
Project Locals
locals.tf¶ 2locals {
3 full_bucket_name = "${var.environment}-${var.bucket_name}"
4
5 common_tags = merge(
6 {
7 Environment = var.environment
8 Owner = var.owner
9 ManagedBy = "terraform"
10 },
11 var.tags
12 )
13}
- variable bucket_name¶
main.tf¶28variable "bucket_name" {
29 type = string
30 description = "The base name for the S3 bucket. A suffix will be appended to ensure global uniqueness."
31}
- variable environment¶
main.tf¶33variable "environment" {
34 type = string
35 description = "Deployment environment (e.g. dev, staging, production)."
36 default = "dev"
37}
- variable owner¶
main.tf¶39variable "owner" {
40 type = string
41 description = "Team or individual responsible for this bucket."
42 default = "unset"
43}
- variable tags¶
main.tf¶51variable "tags" {
52 type = map(string)
53 description = "Additional tags to apply to all resources."
54 default = {}
55}
- variable versioning_enabled¶
main.tf¶45variable "versioning_enabled" {
46 type = bool
47 description = "Enable S3 object versioning on the bucket."
48 default = false
49}
- terraform projectI:terraform¶
main.tf¶18terraform {
19 required_version = ">= 1.3.0"
20 required_providers {
21 aws = {
22 source = "hashicorp/aws"
23 version = ">= 4.0"
24 }
25 }
26}
- resource aws_s3_bucket main¶
Primary storage bucket for project assets.
s3.tf¶2resource "aws_s3_bucket" "main" {
3 bucket = local.full_bucket_name
4 tags = local.common_tags
5}
- resource aws_s3_bucket_public_access_block main¶
Block all public access by default.
s3.tf¶30resource "aws_s3_bucket_public_access_block" "main" {
31 bucket = aws_s3_bucket.main.id
32
33 block_public_acls = true
34 block_public_policy = true
35 ignore_public_acls = true
36 restrict_public_buckets = true
37}
- resource aws_s3_bucket_server_side_encryption_configuration main¶
- Arguments:
bucket (str) – The name of the
main S3 bucket.
s3.tf¶19resource "aws_s3_bucket_server_side_encryption_configuration" "main" {
20 bucket = aws_s3_bucket.main.id
21
22 rule {
23 apply_server_side_encryption_by_default {
24 sse_algorithm = "AES256"
25 }
26 }
27}
- resource aws_s3_bucket_versioning main¶
Another Pre Comment
s3.tf¶ 9resource "aws_s3_bucket_versioning" "main" {
10 bucket = aws_s3_bucket.main.id
11
12 versioning_configuration {
13 status = var.versioning_enabled ? "Enabled" : "Suspended"
14 }
15}
Module: projectJ¶
- locals projectJ:locals¶
Project Locals
locals.tf¶ 2locals {
3 full_bucket_name = "${var.environment}-${var.bucket_name}"
4
5 common_tags = merge(
6 {
7 Environment = var.environment
8 Owner = var.owner
9 ManagedBy = "terraform"
10 },
11 var.tags
12 )
13}
- variable bucket_name¶
main.tf¶28variable "bucket_name" {
29 type = string
30 description = "The base name for the S3 bucket. A suffix will be appended to ensure global uniqueness."
31}
- variable environment¶
main.tf¶33variable "environment" {
34 type = string
35 description = "Deployment environment (e.g. dev, staging, production)."
36 default = "dev"
37}
- variable owner¶
main.tf¶39variable "owner" {
40 type = string
41 description = "Team or individual responsible for this bucket."
42 default = "unset"
43}
- variable tags¶
main.tf¶51variable "tags" {
52 type = map(string)
53 description = "Additional tags to apply to all resources."
54 default = {}
55}
- variable versioning_enabled¶
main.tf¶45variable "versioning_enabled" {
46 type = bool
47 description = "Enable S3 object versioning on the bucket."
48 default = false
49}
- terraform projectJ:terraform¶
main.tf¶18terraform {
19 required_version = ">= 1.3.0"
20 required_providers {
21 aws = {
22 source = "hashicorp/aws"
23 version = ">= 4.0"
24 }
25 }
26}
- resource aws_s3_bucket main¶
Primary storage bucket for project assets.
s3.tf¶2resource "aws_s3_bucket" "main" {
3 bucket = local.full_bucket_name
4 tags = local.common_tags
5}
- resource aws_s3_bucket_public_access_block main¶
Block all public access by default.
s3.tf¶30resource "aws_s3_bucket_public_access_block" "main" {
31 bucket = aws_s3_bucket.main.id
32
33 block_public_acls = true
34 block_public_policy = true
35 ignore_public_acls = true
36 restrict_public_buckets = true
37}
- resource aws_s3_bucket_server_side_encryption_configuration main¶
- Arguments:
bucket (str) – The name of the
main S3 bucket.
s3.tf¶19resource "aws_s3_bucket_server_side_encryption_configuration" "main" {
20 bucket = aws_s3_bucket.main.id
21
22 rule {
23 apply_server_side_encryption_by_default {
24 sse_algorithm = "AES256"
25 }
26 }
27}
- resource aws_s3_bucket_versioning main¶
Another Pre Comment
s3.tf¶ 9resource "aws_s3_bucket_versioning" "main" {
10 bucket = aws_s3_bucket.main.id
11
12 versioning_configuration {
13 status = var.versioning_enabled ? "Enabled" : "Suspended"
14 }
15}