From e2970fd747bbf5d0b1539f7bbbdced56977a1bdf Mon Sep 17 00:00:00 2001
From: Melissa Greenbaum <69476188+magreenbaum@users.noreply.github.com>
Date: Thu, 14 Mar 2024 09:13:56 -0400
Subject: [PATCH] feat: Support VPC flow log cloudwatch log group class (#1053)
support log group class
---
README.md | 5 +++--
examples/complete/README.md | 4 ++--
examples/complete/versions.tf | 2 +-
examples/ipam/README.md | 4 ++--
examples/ipam/versions.tf | 2 +-
examples/ipv6-dualstack/README.md | 4 ++--
examples/ipv6-dualstack/versions.tf | 2 +-
examples/ipv6-only/README.md | 4 ++--
examples/ipv6-only/versions.tf | 2 +-
examples/issues/README.md | 4 ++--
examples/issues/versions.tf | 2 +-
examples/manage-default-vpc/README.md | 2 +-
examples/manage-default-vpc/versions.tf | 2 +-
examples/network-acls/README.md | 4 ++--
examples/network-acls/versions.tf | 2 +-
examples/outpost/README.md | 4 ++--
examples/outpost/versions.tf | 2 +-
examples/secondary-cidr-blocks/README.md | 4 ++--
examples/secondary-cidr-blocks/versions.tf | 2 +-
examples/separate-route-tables/README.md | 4 ++--
examples/separate-route-tables/versions.tf | 2 +-
examples/simple/README.md | 4 ++--
examples/simple/versions.tf | 2 +-
examples/vpc-flow-logs/README.md | 4 ++--
examples/vpc-flow-logs/main.tf | 1 +
examples/vpc-flow-logs/versions.tf | 2 +-
modules/vpc-endpoints/README.md | 4 ++--
modules/vpc-endpoints/versions.tf | 2 +-
variables.tf | 6 ++++++
versions.tf | 2 +-
vpc-flow-logs.tf | 1 +
31 files changed, 50 insertions(+), 41 deletions(-)
diff --git a/README.md b/README.md
index 371702918..127493807 100644
--- a/README.md
+++ b/README.md
@@ -256,13 +256,13 @@ Full contributing [guidelines are covered here](.github/contributing.md).
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.20 |
+| [aws](#requirement\_aws) | >= 5.30 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.20 |
+| [aws](#provider\_aws) | >= 5.30 |
## Modules
@@ -445,6 +445,7 @@ No modules.
| [external\_nat\_ip\_ids](#input\_external\_nat\_ip\_ids) | List of EIP IDs to be assigned to the NAT Gateways (used in combination with reuse\_nat\_ips) | `list(string)` | `[]` | no |
| [external\_nat\_ips](#input\_external\_nat\_ips) | List of EIPs to be used for `nat_public_ips` output (used in combination with reuse\_nat\_ips and external\_nat\_ip\_ids) | `list(string)` | `[]` | no |
| [flow\_log\_cloudwatch\_iam\_role\_arn](#input\_flow\_log\_cloudwatch\_iam\_role\_arn) | The ARN for the IAM role that's used to post flow logs to a CloudWatch Logs log group. When flow\_log\_destination\_arn is set to ARN of Cloudwatch Logs, this argument needs to be provided | `string` | `""` | no |
+| [flow\_log\_cloudwatch\_log\_group\_class](#input\_flow\_log\_cloudwatch\_log\_group\_class) | Specified the log class of the log group. Possible values are: STANDARD or INFREQUENT\_ACCESS | `string` | `null` | no |
| [flow\_log\_cloudwatch\_log\_group\_kms\_key\_id](#input\_flow\_log\_cloudwatch\_log\_group\_kms\_key\_id) | The ARN of the KMS Key to use when encrypting log data for VPC flow logs | `string` | `null` | no |
| [flow\_log\_cloudwatch\_log\_group\_name\_prefix](#input\_flow\_log\_cloudwatch\_log\_group\_name\_prefix) | Specifies the name prefix of CloudWatch Log Group for VPC flow logs | `string` | `"/aws/vpc-flow-log/"` | no |
| [flow\_log\_cloudwatch\_log\_group\_name\_suffix](#input\_flow\_log\_cloudwatch\_log\_group\_name\_suffix) | Specifies the name suffix of CloudWatch Log Group for VPC flow logs | `string` | `""` | no |
diff --git a/examples/complete/README.md b/examples/complete/README.md
index 4d359dd89..fbe618488 100644
--- a/examples/complete/README.md
+++ b/examples/complete/README.md
@@ -22,13 +22,13 @@ Note that this example may create resources which can cost money (AWS Elastic IP
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.20 |
+| [aws](#requirement\_aws) | >= 5.30 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.20 |
+| [aws](#provider\_aws) | >= 5.30 |
## Modules
diff --git a/examples/complete/versions.tf b/examples/complete/versions.tf
index f8fba3dfd..22111ba53 100644
--- a/examples/complete/versions.tf
+++ b/examples/complete/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.20"
+ version = ">= 5.30"
}
}
}
diff --git a/examples/ipam/README.md b/examples/ipam/README.md
index 2aa0998e6..ce1070c5a 100644
--- a/examples/ipam/README.md
+++ b/examples/ipam/README.md
@@ -30,13 +30,13 @@ Note that this example may create resources which can cost money (AWS Elastic IP
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.20 |
+| [aws](#requirement\_aws) | >= 5.30 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.20 |
+| [aws](#provider\_aws) | >= 5.30 |
## Modules
diff --git a/examples/ipam/versions.tf b/examples/ipam/versions.tf
index f8fba3dfd..22111ba53 100644
--- a/examples/ipam/versions.tf
+++ b/examples/ipam/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.20"
+ version = ">= 5.30"
}
}
}
diff --git a/examples/ipv6-dualstack/README.md b/examples/ipv6-dualstack/README.md
index 9b99735f5..5b5c17c09 100644
--- a/examples/ipv6-dualstack/README.md
+++ b/examples/ipv6-dualstack/README.md
@@ -20,13 +20,13 @@ Note that this example may create resources which can cost money (AWS Elastic IP
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.20 |
+| [aws](#requirement\_aws) | >= 5.30 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.20 |
+| [aws](#provider\_aws) | >= 5.30 |
## Modules
diff --git a/examples/ipv6-dualstack/versions.tf b/examples/ipv6-dualstack/versions.tf
index f8fba3dfd..22111ba53 100644
--- a/examples/ipv6-dualstack/versions.tf
+++ b/examples/ipv6-dualstack/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.20"
+ version = ">= 5.30"
}
}
}
diff --git a/examples/ipv6-only/README.md b/examples/ipv6-only/README.md
index fca0b6799..e4fea6c43 100644
--- a/examples/ipv6-only/README.md
+++ b/examples/ipv6-only/README.md
@@ -20,13 +20,13 @@ Note that this example may create resources which can cost money (AWS Elastic IP
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.20 |
+| [aws](#requirement\_aws) | >= 5.30 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.20 |
+| [aws](#provider\_aws) | >= 5.30 |
## Modules
diff --git a/examples/ipv6-only/versions.tf b/examples/ipv6-only/versions.tf
index f8fba3dfd..22111ba53 100644
--- a/examples/ipv6-only/versions.tf
+++ b/examples/ipv6-only/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.20"
+ version = ">= 5.30"
}
}
}
diff --git a/examples/issues/README.md b/examples/issues/README.md
index 6ec13c86f..a312e67a7 100644
--- a/examples/issues/README.md
+++ b/examples/issues/README.md
@@ -25,13 +25,13 @@ Note that this example may create resources which can cost money (AWS Elastic IP
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.20 |
+| [aws](#requirement\_aws) | >= 5.30 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.20 |
+| [aws](#provider\_aws) | >= 5.30 |
## Modules
diff --git a/examples/issues/versions.tf b/examples/issues/versions.tf
index f8fba3dfd..22111ba53 100644
--- a/examples/issues/versions.tf
+++ b/examples/issues/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.20"
+ version = ">= 5.30"
}
}
}
diff --git a/examples/manage-default-vpc/README.md b/examples/manage-default-vpc/README.md
index c37171dc9..d1e70e542 100644
--- a/examples/manage-default-vpc/README.md
+++ b/examples/manage-default-vpc/README.md
@@ -22,7 +22,7 @@ Run `terraform destroy` when you don't need these resources.
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.20 |
+| [aws](#requirement\_aws) | >= 5.30 |
## Providers
diff --git a/examples/manage-default-vpc/versions.tf b/examples/manage-default-vpc/versions.tf
index f8fba3dfd..22111ba53 100644
--- a/examples/manage-default-vpc/versions.tf
+++ b/examples/manage-default-vpc/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.20"
+ version = ">= 5.30"
}
}
}
diff --git a/examples/network-acls/README.md b/examples/network-acls/README.md
index f0fa51948..477a903d2 100644
--- a/examples/network-acls/README.md
+++ b/examples/network-acls/README.md
@@ -24,13 +24,13 @@ Note that this example may create resources which can cost money (AWS Elastic IP
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.20 |
+| [aws](#requirement\_aws) | >= 5.30 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.20 |
+| [aws](#provider\_aws) | >= 5.30 |
## Modules
diff --git a/examples/network-acls/versions.tf b/examples/network-acls/versions.tf
index f8fba3dfd..22111ba53 100644
--- a/examples/network-acls/versions.tf
+++ b/examples/network-acls/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.20"
+ version = ">= 5.30"
}
}
}
diff --git a/examples/outpost/README.md b/examples/outpost/README.md
index 6d3ca4d47..8105dff04 100644
--- a/examples/outpost/README.md
+++ b/examples/outpost/README.md
@@ -24,13 +24,13 @@ Note that this example may create resources which can cost money (AWS Elastic IP
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.20 |
+| [aws](#requirement\_aws) | >= 5.30 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.20 |
+| [aws](#provider\_aws) | >= 5.30 |
## Modules
diff --git a/examples/outpost/versions.tf b/examples/outpost/versions.tf
index f8fba3dfd..22111ba53 100644
--- a/examples/outpost/versions.tf
+++ b/examples/outpost/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.20"
+ version = ">= 5.30"
}
}
}
diff --git a/examples/secondary-cidr-blocks/README.md b/examples/secondary-cidr-blocks/README.md
index 176b774ce..be90f2670 100644
--- a/examples/secondary-cidr-blocks/README.md
+++ b/examples/secondary-cidr-blocks/README.md
@@ -22,13 +22,13 @@ Note that this example may create resources which can cost money (AWS Elastic IP
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.20 |
+| [aws](#requirement\_aws) | >= 5.30 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.20 |
+| [aws](#provider\_aws) | >= 5.30 |
## Modules
diff --git a/examples/secondary-cidr-blocks/versions.tf b/examples/secondary-cidr-blocks/versions.tf
index f8fba3dfd..22111ba53 100644
--- a/examples/secondary-cidr-blocks/versions.tf
+++ b/examples/secondary-cidr-blocks/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.20"
+ version = ">= 5.30"
}
}
}
diff --git a/examples/separate-route-tables/README.md b/examples/separate-route-tables/README.md
index 5f45a5276..cd7be22ed 100644
--- a/examples/separate-route-tables/README.md
+++ b/examples/separate-route-tables/README.md
@@ -22,13 +22,13 @@ Note that this example may create resources which can cost money (AWS Elastic IP
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.20 |
+| [aws](#requirement\_aws) | >= 5.30 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.20 |
+| [aws](#provider\_aws) | >= 5.30 |
## Modules
diff --git a/examples/separate-route-tables/versions.tf b/examples/separate-route-tables/versions.tf
index f8fba3dfd..22111ba53 100644
--- a/examples/separate-route-tables/versions.tf
+++ b/examples/separate-route-tables/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.20"
+ version = ">= 5.30"
}
}
}
diff --git a/examples/simple/README.md b/examples/simple/README.md
index 9fb29e7f2..fb62fba7c 100644
--- a/examples/simple/README.md
+++ b/examples/simple/README.md
@@ -26,13 +26,13 @@ Note that this example may create resources which can cost money (AWS Elastic IP
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.20 |
+| [aws](#requirement\_aws) | >= 5.30 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.20 |
+| [aws](#provider\_aws) | >= 5.30 |
## Modules
diff --git a/examples/simple/versions.tf b/examples/simple/versions.tf
index f8fba3dfd..22111ba53 100644
--- a/examples/simple/versions.tf
+++ b/examples/simple/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.20"
+ version = ">= 5.30"
}
}
}
diff --git a/examples/vpc-flow-logs/README.md b/examples/vpc-flow-logs/README.md
index 47bc8bc94..e8b6f0d3b 100644
--- a/examples/vpc-flow-logs/README.md
+++ b/examples/vpc-flow-logs/README.md
@@ -24,14 +24,14 @@ Note that this example may create resources which can cost money (AWS Elastic IP
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.20 |
+| [aws](#requirement\_aws) | >= 5.30 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.20 |
+| [aws](#provider\_aws) | >= 5.30 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/vpc-flow-logs/main.tf b/examples/vpc-flow-logs/main.tf
index 140aa0cd6..9fee41bdf 100644
--- a/examples/vpc-flow-logs/main.tf
+++ b/examples/vpc-flow-logs/main.tf
@@ -78,6 +78,7 @@ module "vpc_with_flow_logs_cloudwatch_logs_default" {
flow_log_max_aggregation_interval = 60
flow_log_cloudwatch_log_group_name_prefix = "/aws/my-amazing-vpc-flow-logz/"
flow_log_cloudwatch_log_group_name_suffix = "my-test"
+ flow_log_cloudwatch_log_group_class = "INFREQUENT_ACCESS"
vpc_flow_log_tags = local.tags
}
diff --git a/examples/vpc-flow-logs/versions.tf b/examples/vpc-flow-logs/versions.tf
index 0ac52370c..6af908428 100644
--- a/examples/vpc-flow-logs/versions.tf
+++ b/examples/vpc-flow-logs/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.20"
+ version = ">= 5.30"
}
random = {
diff --git a/modules/vpc-endpoints/README.md b/modules/vpc-endpoints/README.md
index 235cef659..6c0de6a46 100644
--- a/modules/vpc-endpoints/README.md
+++ b/modules/vpc-endpoints/README.md
@@ -56,13 +56,13 @@ module "endpoints" {
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
-| [aws](#requirement\_aws) | >= 5.20 |
+| [aws](#requirement\_aws) | >= 5.30 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 5.20 |
+| [aws](#provider\_aws) | >= 5.30 |
## Modules
diff --git a/modules/vpc-endpoints/versions.tf b/modules/vpc-endpoints/versions.tf
index f8fba3dfd..22111ba53 100644
--- a/modules/vpc-endpoints/versions.tf
+++ b/modules/vpc-endpoints/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.20"
+ version = ">= 5.30"
}
}
}
diff --git a/variables.tf b/variables.tf
index c990ecdbd..ce81d687a 100644
--- a/variables.tf
+++ b/variables.tf
@@ -1584,6 +1584,12 @@ variable "flow_log_cloudwatch_log_group_skip_destroy" {
default = false
}
+variable "flow_log_cloudwatch_log_group_class" {
+ description = "Specified the log class of the log group. Possible values are: STANDARD or INFREQUENT_ACCESS"
+ type = string
+ default = null
+}
+
variable "putin_khuylo" {
description = "Do you agree that Putin doesn't respect Ukrainian sovereignty and territorial integrity? More info: https://en.wikipedia.org/wiki/Putin_khuylo!"
type = bool
diff --git a/versions.tf b/versions.tf
index f8fba3dfd..22111ba53 100644
--- a/versions.tf
+++ b/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.20"
+ version = ">= 5.30"
}
}
}
diff --git a/vpc-flow-logs.tf b/vpc-flow-logs.tf
index 9e453c819..e21cd11e6 100644
--- a/vpc-flow-logs.tf
+++ b/vpc-flow-logs.tf
@@ -50,6 +50,7 @@ resource "aws_cloudwatch_log_group" "flow_log" {
retention_in_days = var.flow_log_cloudwatch_log_group_retention_in_days
kms_key_id = var.flow_log_cloudwatch_log_group_kms_key_id
skip_destroy = var.flow_log_cloudwatch_log_group_skip_destroy
+ log_group_class = var.flow_log_cloudwatch_log_group_class
tags = merge(var.tags, var.vpc_flow_log_tags)
}