module "cf-templates-14tjte8xlww1c-us-east-1" {
  #checkov:skip=CKV_AWS_19: Ensure all data stored in the S3 bucket is securely encrypted at rest
  #checkov:skip=CKV_AWS_145: Ensure that S3 buckets are encrypted with KMS by default
  #checkov:skip=CKV_AWS_21: Ensure all data stored in the S3 bucket have versioning enabled
  #checkov:skip=CKV_AWS_300: Ensure S3 lifecycle configuration sets period for aborting failed uploads
  source  = "terraform-aws-modules/s3-bucket/aws"
  version = "~> 3.11.0"
  bucket  = "cf-templates-14tjte8xlww1c-us-east-1"
  versioning = {
    enabled = false
  }

  server_side_encryption_configuration = {
    rule = {
      apply_server_side_encryption_by_default = {
        kms_master_key_id = "arn:aws:kms:us-east-1:765134955759:key/d4b5e789-5f7e-4621-aeb5-ad233aabc9b5"
        sse_algorithm     = "aws:kms"
      }
    }
  }
  logging = {
    target_bucket = "sme-dadc-mps-prod-us-east-1-logs"
    target_prefix = "sme-dx3-dev/"
  }
  object_ownership                      = "BucketOwnerEnforced"
  object_lock_enabled                   = false
  block_public_acls                     = var.block_public_acls
  ignore_public_acls                    = var.ignore_public_acls
  restrict_public_buckets               = var.restrict_public_buckets
  block_public_policy                   = var.block_public_policy
  force_destroy                         = var.force_destroy
  attach_policy                         = var.attach_policy
  policy                                = data.aws_iam_policy_document.cf-templates-14tjte8xlww1c-us-east-1.json
  attach_deny_insecure_transport_policy = var.attach_deny_insecure_transport_policy
  attach_require_latest_tls_policy      = var.attach_require_latest_tls_policy

  tags = {
    Business-Unit    = "Digital Exchange",
    Classification   = "internal-use-only",
    Environment      = "Dev",
    Name             = "cf-templates-14tjte8xlww1c-us-east-1",
    Owner            = "Christian seitz",
    Project-Code     = "2000306K",
    Project-Name     = "SME DX3 - Dev",
    Terraform        =  "True",
    Purpose          = "CLOUDOPS"
  }
}

module "sme-dadc-mps-prod-awsconfig" {
  #checkov:skip=CKV_AWS_19: Ensure all data stored in the S3 bucket is securely encrypted at rest
  #checkov:skip=CKV_AWS_145: Ensure that S3 buckets are encrypted with KMS by default
  #checkov:skip=CKV_AWS_21: Ensure all data stored in the S3 bucket have versioning enabled
  #checkov:skip=CKV_AWS_300: Ensure S3 lifecycle configuration sets period for aborting failed uploads
  source  = "terraform-aws-modules/s3-bucket/aws"
  version = "~> 3.11.0"
  bucket  = "sme-dadc-mps-prod-awsconfig"
  versioning = {
    enabled = false
  }

  server_side_encryption_configuration = var.server_side_encryption_configuration
  logging = {
    target_bucket = "sme-dadc-mps-prod-us-east-1-logs"
    target_prefix = "sme-dx3-dev/"
  }
  object_ownership                      = "BucketOwnerEnforced"
  object_lock_enabled                   = false
  block_public_acls                     = var.block_public_acls
  ignore_public_acls                    = var.ignore_public_acls
  restrict_public_buckets               = var.restrict_public_buckets
  block_public_policy                   = var.block_public_policy
  force_destroy                         = var.force_destroy
  attach_policy                         = var.attach_policy
  policy                                = data.aws_iam_policy_document.sme-dadc-mps-prod-awsconfig.json
  attach_deny_insecure_transport_policy = var.attach_deny_insecure_transport_policy
  attach_require_latest_tls_policy      = var.attach_require_latest_tls_policy

  tags = {
    Business-Unit   = "Digital Exchange",
    Environment     = "Dev",
    Name            = "sme-dadc-mps-prod-awsconfig",
    Owner           = "Christian seitz",
    Project-Code    = "2000306K",
    Project-Name    = "SME-DX3-Dev",
    Classification  = "internal-use-only",
    Terraform       = "True",
    Purpose         = "CLOUDOPS"
  }
}

module "sme-dadc-mps-prod-us-east-1-logs" {
  #checkov:skip=CKV_AWS_19: Ensure all data stored in the S3 bucket is securely encrypted at rest
  #checkov:skip=CKV_AWS_145: Ensure that S3 buckets are encrypted with KMS by default
  #checkov:skip=CKV_AWS_21: Ensure all data stored in the S3 bucket have versioning enabled
  #checkov:skip=CKV_AWS_300: Ensure S3 lifecycle configuration sets period for aborting failed uploads
  source  = "terraform-aws-modules/s3-bucket/aws"
  version = "~> 3.11.0"
  bucket  = "sme-dadc-mps-prod-us-east-1-logs"
  versioning = {
    enabled = true
  }

  server_side_encryption_configuration = var.server_side_encryption_configuration

  object_ownership                      = "BucketOwnerEnforced"
  object_lock_enabled                   = false
  block_public_acls                     = var.block_public_acls
  ignore_public_acls                    = var.ignore_public_acls
  restrict_public_buckets               = var.restrict_public_buckets
  block_public_policy                   = var.block_public_policy
  force_destroy                         = var.force_destroy
  attach_policy                         = var.attach_policy
  policy                                = data.aws_iam_policy_document.sme-dadc-mps-prod-us-east-1-logs.json
  attach_deny_insecure_transport_policy = var.attach_deny_insecure_transport_policy
  attach_require_latest_tls_policy      = var.attach_require_latest_tls_policy

  tags = { 
    Business-Unit    = "Digital Exchange",
    Classification   = "internal-use-only",
    Environment      = "Dev",
    Name             = "sme-dadc-mps-prod-us-east-1-logs",
    Owner            = "Christian seitz",
    Project-Code     = "2000306K",
    Project-Name     = "SME DX3 - Dev",
    Terraform        = "True",
    Purpose          = "LOGGING"
  }
}

module "sme-dx3-d1-vpc-flowlogs" {
  #checkov:skip=CKV_AWS_19: Ensure all data stored in the S3 bucket is securely encrypted at rest
  #checkov:skip=CKV_AWS_145: Ensure that S3 buckets are encrypted with KMS by default
  #checkov:skip=CKV_AWS_21: Ensure all data stored in the S3 bucket have versioning enabled
  #checkov:skip=CKV_AWS_300: Ensure S3 lifecycle configuration sets period for aborting failed uploads
  source  = "terraform-aws-modules/s3-bucket/aws"
  version = "~> 3.11.0"
  bucket  = "sme-dx3-d1-vpc-flowlogs"
  versioning = {
    enabled = false
  }
  providers = {
    aws = aws.eu-central-1
  }
  server_side_encryption_configuration = var.server_side_encryption_configuration
  logging = {
    target_bucket = "sme-dx3d-s3-logs-euc1"
    target_prefix = "sme-dx3-dev/"
  }
  object_ownership                      = "BucketOwnerEnforced"
  object_lock_enabled                   = false
  block_public_acls                     = var.block_public_acls
  ignore_public_acls                    = var.ignore_public_acls
  restrict_public_buckets               = var.restrict_public_buckets
  block_public_policy                   = var.block_public_policy
  force_destroy                         = var.force_destroy
  attach_policy                         = var.attach_policy
  policy                                = data.aws_iam_policy_document.sme-dx3-d1-vpc-flowlogs.json
  attach_deny_insecure_transport_policy = var.attach_deny_insecure_transport_policy
  attach_require_latest_tls_policy      = var.attach_require_latest_tls_policy

  tags = {
    Business-Unit    = "Digital Exchange",
    Classification   = "internal-use-only",
    Environment      = "Dev",
    Name             = "sme-dx3-d1-vpc-flowlogs",
    Owner            = "Christian seitz",
    Project-Code     = "2000306K",
    Project-Name     = "SME DX3 - Dev",
    Terraform        = "True",
    Purpose          = "LOGGING"
  }
}

module "sme-dx3-dev-athena-out" {
  #checkov:skip=CKV_AWS_19: Ensure all data stored in the S3 bucket is securely encrypted at rest
  #checkov:skip=CKV_AWS_145: Ensure that S3 buckets are encrypted with KMS by default
  #checkov:skip=CKV_AWS_21: Ensure all data stored in the S3 bucket have versioning enabled
  #checkov:skip=CKV_AWS_300: Ensure S3 lifecycle configuration sets period for aborting failed uploads
  source  = "terraform-aws-modules/s3-bucket/aws"
  version = "~> 3.11.0"
  bucket  = "sme-dx3-dev-athena-out"
  versioning = {
    enabled = false
  }
  providers = {
    aws = aws.eu-central-1
  }
  server_side_encryption_configuration = var.server_side_encryption_configuration
  logging = {
    target_bucket = "sme-dx3d-s3-logs-euc1"
    target_prefix = "sme-dx3-dev/"
  }
  object_ownership                      = "BucketOwnerEnforced"
  object_lock_enabled                   = false
  block_public_acls                     = var.block_public_acls
  ignore_public_acls                    = var.ignore_public_acls
  restrict_public_buckets               = var.restrict_public_buckets
  block_public_policy                   = var.block_public_policy
  force_destroy                         = var.force_destroy
  attach_policy                         = false
  attach_deny_insecure_transport_policy = var.attach_deny_insecure_transport_policy
  attach_require_latest_tls_policy      = var.attach_require_latest_tls_policy

  tags = { 
    Business-Unit     = "Digital-Exchange",
    Classification    = "internal-use-only",
    Environment       = "Dev",
    Name              = "sme-dx3-dev-athena-out",
    Project-Code      = "2000306K",
    Project-Name      = "SME-DX3-Dev",
    Owner             = "Christian seitz",
    Terraform         = "True",
    Purpose           = "CLOUDOPS"
  }
}

module "sme-dx3-dev-db-team-lambda" {
  #checkov:skip=CKV_AWS_19: Ensure all data stored in the S3 bucket is securely encrypted at rest
  #checkov:skip=CKV_AWS_145: Ensure that S3 buckets are encrypted with KMS by default
  #checkov:skip=CKV_AWS_21: Ensure all data stored in the S3 bucket have versioning enabled
  #checkov:skip=CKV_AWS_300: Ensure S3 lifecycle configuration sets period for aborting failed uploads
  source  = "terraform-aws-modules/s3-bucket/aws"
  version = "~> 3.11.0"
  bucket  = "sme-dx3-dev-db-team-lambda"
  versioning = {
    enabled = false
  }
  providers = {
    aws = aws.eu-central-1
  }
  server_side_encryption_configuration = var.server_side_encryption_configuration
  logging = {
    target_bucket = "sme-dx3d-s3-logs-euc1"
    target_prefix = "sme-dx3-dev/"
  }
  object_ownership                      = "BucketOwnerEnforced"
  object_lock_enabled                   = false
  block_public_acls                     = var.block_public_acls
  ignore_public_acls                    = var.ignore_public_acls
  restrict_public_buckets               = var.restrict_public_buckets
  block_public_policy                   = var.block_public_policy
  force_destroy                         = var.force_destroy
  attach_policy                         = var.attach_policy
  policy                                = data.aws_iam_policy_document.sme-dx3-dev-db-team-lambda.json
  attach_deny_insecure_transport_policy = var.attach_deny_insecure_transport_policy
  attach_require_latest_tls_policy      = var.attach_require_latest_tls_policy

  tags = { 
    Business-Unit     = "Digital Exchange",
    Environment       = "Dev",
    Classification    = "internal-use-only",
    Name              = "sme-dx3d-dx3",
    Owner             = "Christian seitz",
    Project-Code      = "2000306K",
    Project-Name      = "SME DX3 - Dev",
    Terraform         = "True",
    Purpose           = "APP-SUPPORT"
  }
}

module "sme-dx3-dev-euc1-s3-inventory" {
  #checkov:skip=CKV_AWS_19: Ensure all data stored in the S3 bucket is securely encrypted at rest
  #checkov:skip=CKV_AWS_145: Ensure that S3 buckets are encrypted with KMS by default
  #checkov:skip=CKV_AWS_21: Ensure all data stored in the S3 bucket have versioning enabled
  #checkov:skip=CKV_AWS_300: Ensure S3 lifecycle configuration sets period for aborting failed uploads
  source  = "terraform-aws-modules/s3-bucket/aws"
  version = "~> 3.11.0"
  bucket  = "sme-dx3-dev-euc1-s3-inventory"
  versioning = {
    enabled = false
  }
  providers = {
    aws = aws.eu-central-1
  }
  server_side_encryption_configuration = var.server_side_encryption_configuration
  logging = {
    target_bucket = "sme-dx3d-s3-logs-euc1"
    target_prefix = "sme-dx3-dev/"
  }
  object_ownership                      = "BucketOwnerEnforced"
  object_lock_enabled                   = false
  block_public_acls                     = var.block_public_acls
  ignore_public_acls                    = var.ignore_public_acls
  restrict_public_buckets               = var.restrict_public_buckets
  block_public_policy                   = var.block_public_policy
  force_destroy                         = var.force_destroy
  attach_policy                         = var.attach_policy
  policy                                = data.aws_iam_policy_document.sme-dx3-dev-euc1-s3-inventory.json
  attach_deny_insecure_transport_policy = var.attach_deny_insecure_transport_policy
  attach_require_latest_tls_policy      = var.attach_require_latest_tls_policy

  tags = { 
    Business-Unit    = "Digital-Exchange",
    Classification   = "internal-use-only",
    Environment      = "Dev",
    Name             = "sme-dx3-dev-euc1-s3-inventory",
    Owner            = "Christian seitz",
    Project-Code     = "2000306K",
    Project-Name     = "SME-DX3-Dev",
    Terraform        = "True",
    Purpose          = "CLOUDOPS"
  }
}

module "sme-dx3-dev-ssm-out" {
  #checkov:skip=CKV_AWS_19: Ensure all data stored in the S3 bucket is securely encrypted at rest
  #checkov:skip=CKV_AWS_145: Ensure that S3 buckets are encrypted with KMS by default
  #checkov:skip=CKV_AWS_21: Ensure all data stored in the S3 bucket have versioning enabled
  #checkov:skip=CKV_AWS_300: Ensure S3 lifecycle configuration sets period for aborting failed uploads
  source  = "terraform-aws-modules/s3-bucket/aws"
  version = "~> 3.11.0"
  bucket  = "sme-dx3-dev-ssm-out"
  versioning = {
    enabled = false
  }
  providers = {
    aws = aws.eu-central-1
  }
  server_side_encryption_configuration = var.server_side_encryption_configuration
  logging = {
    target_bucket = "sme-dx3d-s3-logs-euc1"
    target_prefix = "sme-dx3-dev/"
  }
  object_ownership                      = "BucketOwnerEnforced"
  object_lock_enabled                   = false
  block_public_acls                     = var.block_public_acls
  ignore_public_acls                    = var.ignore_public_acls
  restrict_public_buckets               = var.restrict_public_buckets
  block_public_policy                   = var.block_public_policy
  force_destroy                         = var.force_destroy
  attach_policy                         = false
  attach_deny_insecure_transport_policy = var.attach_deny_insecure_transport_policy
  attach_require_latest_tls_policy      = var.attach_require_latest_tls_policy

  tags = { 
    Business-Unit    = "Digital Exchange",
    Classification   = "internal-use-only",
    Environment      = "Dev",
    Name             = "sme-dx3-dev-ssm-out",
    Owner            = "Christian seitz",
    Project-Code     = "2000306K",
    Project-Name     = "SME DX3 - Dev",
    Terraform        = "True",
    Purpose          = "CLOUDOPS"
  }
}

module "sme-dx3-dev-use1-s3-inventory" {
  #checkov:skip=CKV_AWS_19: Ensure all data stored in the S3 bucket is securely encrypted at rest
  #checkov:skip=CKV_AWS_145: Ensure that S3 buckets are encrypted with KMS by default
  #checkov:skip=CKV_AWS_21: Ensure all data stored in the S3 bucket have versioning enabled
  #checkov:skip=CKV_AWS_300: Ensure S3 lifecycle configuration sets period for aborting failed uploads
  source  = "terraform-aws-modules/s3-bucket/aws"
  version = "~> 3.11.0"
  bucket  = "sme-dx3-dev-use1-s3-inventory"
  versioning = {
    enabled = false
  }

  server_side_encryption_configuration = var.server_side_encryption_configuration
  logging = {
    target_bucket = "sme-dadc-mps-prod-us-east-1-logs"
    target_prefix = "sme-dx3-dev/"
  }
  object_ownership                      = "BucketOwnerEnforced"
  object_lock_enabled                   = false
  block_public_acls                     = var.block_public_acls
  ignore_public_acls                    = var.ignore_public_acls
  restrict_public_buckets               = var.restrict_public_buckets
  block_public_policy                   = var.block_public_policy
  force_destroy                         = var.force_destroy
  attach_policy                         = var.attach_policy
  policy                                = data.aws_iam_policy_document.sme-dx3-dev-use1-s3-inventory.json
  attach_deny_insecure_transport_policy = var.attach_deny_insecure_transport_policy
  attach_require_latest_tls_policy      = var.attach_require_latest_tls_policy

  tags = { 
    Business-Unit    = "Digital-Exchange",
    Classification   = "internal-use-only",
    Environment      = "Dev",
    Name             = "sme-dx3-dev-use1-s3-inventory",
    Owner            = "Christian seitz",
    Project-Code     = "2000306K",
    Project-Name     = "SME-DX3-Dev",
    Terraform        = "True",
    Purpose          = "CLOUDOPS"
  }
}

module "sme-dx3d-dx3" {
  #checkov:skip=CKV_AWS_19: Ensure all data stored in the S3 bucket is securely encrypted at rest
  #checkov:skip=CKV_AWS_145: Ensure that S3 buckets are encrypted with KMS by default
  #checkov:skip=CKV_AWS_21: Ensure all data stored in the S3 bucket have versioning enabled
  #checkov:skip=CKV_AWS_300: Ensure S3 lifecycle configuration sets period for aborting failed uploads
  source  = "terraform-aws-modules/s3-bucket/aws"
  version = "~> 3.11.0"
  bucket  = "sme-dx3d-dx3"
  versioning = {
    enabled = false
  }
  providers = {
    aws = aws.eu-central-1
  }
  server_side_encryption_configuration = var.server_side_encryption_configuration
  logging = {
    target_bucket = "sme-dx3d-s3-logs-euc1"
    target_prefix = "sme-dx3-dev/"
  }
  object_ownership                      = "BucketOwnerEnforced"
  object_lock_enabled                   = false
  block_public_acls                     = var.block_public_acls
  ignore_public_acls                    = var.ignore_public_acls
  restrict_public_buckets               = var.restrict_public_buckets
  block_public_policy                   = var.block_public_policy
  force_destroy                         = var.force_destroy
  attach_policy                         = var.attach_policy
  policy                                = data.aws_iam_policy_document.sme-dx3d-dx3.json
  attach_deny_insecure_transport_policy = var.attach_deny_insecure_transport_policy
  attach_require_latest_tls_policy      = var.attach_require_latest_tls_policy

  tags = { 
    Business-Unit   = "Digital Exchange",
    Environment     = "Dev",
    Name            = "sme-dx3d-dx3",
    Owner           = "Christian seitz",
    Project-Code    = "2000306K",
    Project-Name    = "SME DX3 - Dev",
    Classification  = "internal-use-only",
    Terraform       = "True",
    Purpose         = "APP-SUPPORT"
  }
}

module "sme-dx3d-elb-leuc1-ogs" {
  #checkov:skip=CKV_AWS_19: Ensure all data stored in the S3 bucket is securely encrypted at rest
  #checkov:skip=CKV_AWS_145: Ensure that S3 buckets are encrypted with KMS by default
  #checkov:skip=CKV_AWS_21: Ensure all data stored in the S3 bucket have versioning enabled
  #checkov:skip=CKV_AWS_300: Ensure S3 lifecycle configuration sets period for aborting failed uploads
  source  = "terraform-aws-modules/s3-bucket/aws"
  version = "~> 3.11.0"
  bucket  = "sme-dx3d-elb-leuc1-ogs"
  versioning = {
    enabled = false
  }
  providers = {
    aws = aws.eu-central-1
  }
  server_side_encryption_configuration = var.server_side_encryption_configuration
  logging = {
    target_bucket = "sme-dx3d-s3-logs-euc1"
    target_prefix = "sme-dx3-dev/"
  }
  object_ownership                      = "BucketOwnerEnforced"
  object_lock_enabled                   = false
  block_public_acls                     = var.block_public_acls
  ignore_public_acls                    = var.ignore_public_acls
  restrict_public_buckets               = var.restrict_public_buckets
  block_public_policy                   = var.block_public_policy
  force_destroy                         = var.force_destroy
  attach_policy                         = var.attach_policy
  policy                                = data.aws_iam_policy_document.sme-dx3d-elb-leuc1-ogs.json
  attach_deny_insecure_transport_policy = var.attach_deny_insecure_transport_policy
  attach_require_latest_tls_policy      = var.attach_require_latest_tls_policy

  tags = { 
    Business-Unit   = "Digital Exchange",
    Environment     = "Dev",
    Name            = "sme-dx3d-elb-leuc1-ogs",
    Owner           = "Christian seitz",
    Project-Code    = "2000306K",
    Project-Name    = "SME DX3 - Dev",
    Classification  = "internal-use-only",
    Terraform       = "True",
    Purpose         = "LOGGING"
  }
}

module "sme-dx3d-s3-logs-euc1" {
  #checkov:skip=CKV_AWS_19: Ensure all data stored in the S3 bucket is securely encrypted at rest
  #checkov:skip=CKV_AWS_145: Ensure that S3 buckets are encrypted with KMS by default
  #checkov:skip=CKV_AWS_21: Ensure all data stored in the S3 bucket have versioning enabled
  #checkov:skip=CKV_AWS_300: Ensure S3 lifecycle configuration sets period for aborting failed uploads
  source  = "terraform-aws-modules/s3-bucket/aws"
  version = "~> 3.11.0"
  bucket  = "sme-dx3d-s3-logs-euc1"
  versioning = {
    enabled = true
  }
  providers = {
    aws = aws.eu-central-1
  }
  server_side_encryption_configuration = var.server_side_encryption_configuration

  object_ownership                      = "BucketOwnerEnforced"
  object_lock_enabled                   = false
  block_public_acls                     = var.block_public_acls
  ignore_public_acls                    = var.ignore_public_acls
  restrict_public_buckets               = var.restrict_public_buckets
  block_public_policy                   = var.block_public_policy
  force_destroy                         = var.force_destroy
  attach_policy                         = var.attach_policy
  policy                                = data.aws_iam_policy_document.sme-dx3d-s3-logs-euc1.json
  attach_deny_insecure_transport_policy = var.attach_deny_insecure_transport_policy
  attach_require_latest_tls_policy      = var.attach_require_latest_tls_policy

  tags = { 
    Business-Unit    = "Digital Exchange",
    Classification   = "internal-use-only",
    Environment      = "Dev",
    Name             = "sme-dx3d-s3-logs-euc1",
    Owner            = "Christian seitz",
    Project-Code     = "2000306K",
    Project-Name     = "SME DX3 - Dev",
    Terraform        = "True",
    Purpose          = "LOGGING"
  }
}

module "sme-mps-dev" {
  #checkov:skip=CKV_AWS_145: Ensure that S3 buckets are encrypted with KMS by default
  #checkov:skip=CKV_AWS_21: Ensure all data stored in the S3 bucket have versioning enabled
  #checkov:skip=CKV_AWS_300: Ensure S3 lifecycle configuration sets period for aborting failed uploads
  #checkov:skip=CKV_AWS_19: Ensure all data stored in the S3 bucket is securely encrypted at rest
  source  = "terraform-aws-modules/s3-bucket/aws"
  version = "~> 3.11.0"
  bucket  = "sme-mps-dev"
  versioning = {
    enabled = false
  }

  server_side_encryption_configuration = {
    rule = {
      apply_server_side_encryption_by_default = {
        kms_master_key_id = "arn:aws:kms:us-east-1:765134955759:key/d4b5e789-5f7e-4621-aeb5-ad233aabc9b5"
        sse_algorithm     = "aws:kms"
      }
    }
  }
  logging = {
    target_bucket = "sme-dadc-mps-prod-us-east-1-logs"
    target_prefix = "sme-dx3-dev/"
  }
  object_ownership                      = "BucketOwnerEnforced"
  object_lock_enabled                   = false
  block_public_acls                     = var.block_public_acls
  ignore_public_acls                    = var.ignore_public_acls
  restrict_public_buckets               = var.restrict_public_buckets
  block_public_policy                   = var.block_public_policy
  force_destroy                         = var.force_destroy
  attach_policy                         = var.attach_policy
  policy                                = data.aws_iam_policy_document.sme-mps-dev.json
  attach_deny_insecure_transport_policy = var.attach_deny_insecure_transport_policy
  attach_require_latest_tls_policy      = var.attach_require_latest_tls_policy

  tags = { 
    Business-Unit   = "Digital Exchange",
    Environment     = "Dev",
    Name            = "sme-mps-dev",
    Owner           = "Christian seitz",
    Project-Code    = "2000306K",
    Project-Name    = "SME DX3 - Dev",
    Classification  = "internal-use-only",
    Terraform       = "True",
    Purpose         = "APP-SUPPORT"
  }
}

module "sme-mps-prod" {
  #checkov:skip=CKV_AWS_145: Ensure that S3 buckets are encrypted with KMS by default
  #checkov:skip=CKV_AWS_21: Ensure all data stored in the S3 bucket have versioning enabled
  #checkov:skip=CKV_AWS_300: Ensure S3 lifecycle configuration sets period for aborting failed uploads
  #checkov:skip=CKV_AWS_19: Ensure all data stored in the S3 bucket is securely encrypted at rest
  source  = "terraform-aws-modules/s3-bucket/aws"
  version = "~> 3.11.0"
  bucket  = "sme-mps-prod"
  versioning = {
    enabled = false
  }

  server_side_encryption_configuration = var.server_side_encryption_configuration
  logging = {
    target_bucket = "sme-dadc-mps-prod-us-east-1-logs"
    target_prefix = "sme-dx3-dev/"
  }
  object_ownership                      = "BucketOwnerEnforced"
  object_lock_enabled                   = false
  block_public_acls                     = var.block_public_acls
  ignore_public_acls                    = var.ignore_public_acls
  restrict_public_buckets               = var.restrict_public_buckets
  block_public_policy                   = var.block_public_policy
  force_destroy                         = var.force_destroy
  attach_policy                         = var.attach_policy
  policy                                = data.aws_iam_policy_document.sme-mps-prod.json
  attach_deny_insecure_transport_policy = var.attach_deny_insecure_transport_policy
  attach_require_latest_tls_policy      = var.attach_require_latest_tls_policy

  tags = { 
    Business-Unit   = "Digital Exchange",
    Environment     = "Dev",
    Name            = "sme-mps-prod",
    Owner           = "Christian seitz",
    Project-Code    = "2000306K",
    Project-Name    = "SME DX3 - Dev",
    Classification  = "internal-use-only",
    Terraform       = "True",
    Purpose         = "APP-SUPPORT"
  }
}

module "sme-mps-stage" {
  #checkov:skip=CKV_AWS_145: Ensure that S3 buckets are encrypted with KMS by default
  #checkov:skip=CKV_AWS_21: Ensure all data stored in the S3 bucket have versioning enabled
  #checkov:skip=CKV_AWS_300: Ensure S3 lifecycle configuration sets period for aborting failed uploads
  #checkov:skip=CKV_AWS_19: Ensure all data stored in the S3 bucket is securely encrypted at rest
  source  = "terraform-aws-modules/s3-bucket/aws"
  version = "~> 3.11.0"
  bucket  = "sme-mps-stage"
  versioning = {
    enabled = false
  }

  server_side_encryption_configuration = {
    rule = {
      apply_server_side_encryption_by_default = {
        kms_master_key_id = "arn:aws:kms:us-east-1:765134955759:key/d4b5e789-5f7e-4621-aeb5-ad233aabc9b5"
        sse_algorithm     = "aws:kms"
      }
    }
  }
  logging = {
    target_bucket = "sme-dadc-mps-prod-us-east-1-logs"
    target_prefix = "sme-dx3-dev/"
  }
  object_ownership                      = "BucketOwnerEnforced"
  object_lock_enabled                   = false
  block_public_acls                     = var.block_public_acls
  ignore_public_acls                    = var.ignore_public_acls
  restrict_public_buckets               = var.restrict_public_buckets
  block_public_policy                   = var.block_public_policy
  force_destroy                         = var.force_destroy
  attach_policy                         = var.attach_policy
  policy                                = data.aws_iam_policy_document.sme-mps-stage.json
  attach_deny_insecure_transport_policy = var.attach_deny_insecure_transport_policy
  attach_require_latest_tls_policy      = var.attach_require_latest_tls_policy

  tags = { 
    Business-Unit   = "Digital Exchange",
    Environment     = "Dev",
    Name            = "sme-mps-stage",
    Owner           = "Christian seitz",
    Project-Code    = "2000306K",
    Project-Name    = "SME DX3 - Dev",
    Classification  = "internal-use-only",
    Terraform       = "True",
    Purpose         = "APP-SUPPORT"
  }
}

module "sme-mps-archives" {
  #checkov:skip=CKV_AWS_19: Ensure all data stored in the S3 bucket is securely encrypted at rest
  #checkov:skip=CKV_AWS_145: Ensure that S3 buckets are encrypted with KMS by default
  #checkov:skip=CKV_AWS_21: Ensure all data stored in the S3 bucket have versioning enabled
  #checkov:skip=CKV_AWS_300: Ensure S3 lifecycle configuration sets period for aborting failed uploads
  source  = "terraform-aws-modules/s3-bucket/aws"
  version = "~> 3.11.0"
  bucket  = "sme.mps.archives"
  object_ownership                      = "BucketOwnerEnforced"
  block_public_acls                     = var.block_public_acls
  ignore_public_acls                    = var.ignore_public_acls
  restrict_public_buckets               = var.restrict_public_buckets
  block_public_policy                   = var.block_public_policy
  attach_policy                         = false
  attach_deny_insecure_transport_policy = false
  attach_require_latest_tls_policy      = false
  attach_public_policy                  = false
  tags = {
    Business-Unit  = "Digital Exchange",
    Classification = "internal-use-only",
    Environment    = "Dev",
    Name           = "sme.mps.archives",
    Owner          = "Christian seitz",
    Project-Code   = "2000306K",
    Project-Name   = "SME DX3 - Dev",
    Terraform      = "True",
    Purpose        = "APP-SUPPORT"
  }
}

module "dx3-dev-terraform-state" {
  #checkov:skip=CKV_AWS_19: Ensure all data stored in the S3 bucket is securely encrypted at rest
  #checkov:skip=CKV_AWS_145: Ensure that S3 buckets are encrypted with KMS by default
  #checkov:skip=CKV_AWS_21: Ensure all data stored in the S3 bucket have versioning enabled
  #checkov:skip=CKV_AWS_300: Ensure S3 lifecycle configuration sets period for aborting failed uploads
  source  = "terraform-aws-modules/s3-bucket/aws"
  version = "~> 3.11.0"
  bucket  = "dev-dx3-terraform-state"
  versioning = {
    enabled = true
  }
  providers = {
    aws = aws.eu-central-1
  }
  server_side_encryption_configuration = var.server_side_encryption_configuration
  logging = {
    target_bucket = "sme-dx3d-s3-logs-euc1"
    target_prefix = "dev-dx3/"
  }
  object_ownership                      = "BucketOwnerEnforced"
  object_lock_enabled                   = false
  block_public_acls                     = var.block_public_acls
  ignore_public_acls                    = var.ignore_public_acls
  restrict_public_buckets               = var.restrict_public_buckets
  block_public_policy                   = var.block_public_policy
  force_destroy                         = var.force_destroy
  attach_policy                         = false
  attach_deny_insecure_transport_policy = var.attach_deny_insecure_transport_policy
  attach_require_latest_tls_policy      = var.attach_require_latest_tls_policy

  tags = {
    Business-Unit  = "Digital Exchange",
    Classification = "internal-use-only",
    Environment    = "Dev",
    Name           = "sme-dx3-dev-terraform-state",
    Owner          = "PDE-DEVOPS",
    Project-Code   = "2000306K",
    Project-Name   = "SME DX3 - Dev",
    Terraform      = "True",
    Purpose        = "CLOUDOPS"
  }
}