module "cf-templates-1ghup4y754fo6-eu-central-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-1ghup4y754fo6-eu-central-1"
  versioning = {
    enabled = false
  }
  providers = {
    aws = aws.eu-central-1
  }
  server_side_encryption_configuration = var.server_side_encryption_configuration
  logging = {
    target_bucket = "sme-global-ds-prod-s3-euc1-logs"
    target_prefix = "sme-global-ds-prod/"
  }
  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 = {
    Name           = "cf-templates-1ghup4y754fo6-eu-central-1",
    Classification = "internal-use-only",
    Business-Unit  = "Global-DS",
    Environment    = "Prod",
    Owner          = "Dave Wenger",
    Project-Code   = "SME-GLOBAL-DS",
    Project-Name   = "Global-DS-MSK",
    Terraform      = "True",
    Purpose        = "CLOUDOPS"
  }
}

module "gdsp-audio-salad-assets" {
  #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  = "gdsp-audio-salad-assets"
  versioning = {
    enabled = false
  }
  providers = {
    aws = aws.eu-central-1
  }
  server_side_encryption_configuration = var.server_side_encryption_configuration
  logging = {
    target_bucket = "sme-global-ds-prod-s3-euc1-logs"
    target_prefix = "sme-global-ds-prod/"
  }
  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.gdsp-audio-salad-assets.json
  attach_deny_insecure_transport_policy = var.attach_deny_insecure_transport_policy
  attach_require_latest_tls_policy      = var.attach_require_latest_tls_policy

  tags = {
    Name           = "gdsp-audio-salad-assets",
    Classification = "secret",
    Business-Unit  = "Global-DS",
    Environment    = "Prod",
    Owner          = "Dave Wenger",
    Project-Code   = "SME-GLOBAL-DS",
    Project-Name   = "Global-DS-MSK",
    Terraform      = "True",
    Purpose        = "APP-SUPPORT"
  }
}

module "gdsp-exddex-assets" {
  #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  = "gdsp-exddex-assets"
  versioning = {
    enabled = false
  }
  providers = {
    aws = aws.eu-central-1
  }
  server_side_encryption_configuration = var.server_side_encryption_configuration
  logging = {
    target_bucket = "sme-global-ds-prod-s3-euc1-logs"
    target_prefix = "sme-global-ds-prod/"
  }
  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.gdsp-exddex-assets.json
  attach_deny_insecure_transport_policy = var.attach_deny_insecure_transport_policy
  attach_require_latest_tls_policy      = var.attach_require_latest_tls_policy

  tags = {
    Name           = "gdsp-exddex-assets",
    Classification = "secret",
    Business-Unit  = "Global-DS",
    Environment    = "Prod",
    Owner          = "Dave Wenger",
    Project-Code   = "SME-GLOBAL-DS",
    Project-Name   = "Global-DS-MSK",
    Terraform      = "True",
    Purpose        = "APP-SUPPORT"
  }
}

module "gdsp-fuga-assets" {
  #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  = "gdsp-fuga-assets"
  versioning = {
    enabled = true
  }
  providers = {
    aws = aws.eu-central-1
  }
  server_side_encryption_configuration = var.server_side_encryption_configuration
  logging = {
    target_bucket = "sme-global-ds-prod-s3-euc1-logs"
    target_prefix = "sme-global-ds-prod/"
  }
  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.gdsp-fuga-assets.json
  attach_deny_insecure_transport_policy = var.attach_deny_insecure_transport_policy
  attach_require_latest_tls_policy      = var.attach_require_latest_tls_policy

  tags = {
    Name           = "gdsp-fuga-assets",
    Classification = "secret",
    Business-Unit  = "Global-DS",
    Environment    = "Prod",
    Owner          = "Dave Wenger",
    Project-Code   = "SME-GLOBAL-DS",
    Project-Name   = "Global-DS-MSK",
    Terraform      = "True",
    Purpose        = "APP-SUPPORT"
  }
}

module "sme-global-ds-gds-p1" {
  #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-global-ds-gds-p1"
  versioning = {
    enabled = false
  }
  providers = {
    aws = aws.eu-central-1
  }
  server_side_encryption_configuration = var.server_side_encryption_configuration
  logging = {
    target_bucket = "sme-global-ds-prod-s3-euc1-logs"
    target_prefix = "sme-global-ds-prod/"
  }
  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-global-ds-gds-p1.json
  attach_deny_insecure_transport_policy = var.attach_deny_insecure_transport_policy
  attach_require_latest_tls_policy      = var.attach_require_latest_tls_policy

  tags = {
    Name           = "sme-global-ds-gds-p1",
    Classification = "secret",
    Business-Unit  = "Global-DS",
    Environment    = "Prod",
    Owner          = "Dave Wenger",
    Project-Code   = "SME-GLOBAL-DS",
    Project-Name   = "Global-DS-MSK",
    Terraform      = "True",
    Purpose        = "APP-SUPPORT"
  }
}

module "sme-global-ds-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-global-ds-prod-awsconfig"
  versioning = {
    enabled = false
  }
  providers = {
    aws = aws.eu-central-1
  }
  server_side_encryption_configuration = var.server_side_encryption_configuration
  logging = {
    target_bucket = "sme-global-ds-prod-s3-euc1-logs"
    target_prefix = "sme-global-ds-prod/"
  }
  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-global-ds-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 = {
    Name           = "sme-global-ds-prod-awsconfig",
    Classification = "secret",
    Business-Unit  = "Global-DS",
    Environment    = "Prod",
    Owner          = "Dave Wenger",
    Project-Code   = "SME-GLOBAL-DS",
    Project-Name   = "Global-DS-MSK",
    Terraform      = "True",
    Purpose        = "CLOUDOPS"
  }
}

module "sme-global-ds-prod-cf-euc1-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-global-ds-prod-cf-euc1-logs"
  versioning = {
    enabled = false
  }
  providers = {
    aws = aws.eu-central-1
  }
  server_side_encryption_configuration = var.server_side_encryption_configuration
  logging = {
    target_bucket = "sme-global-ds-prod-s3-euc1-logs"
    target_prefix = "sme-global-ds-prod/"
  }
  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 = {
    Name           = "sme-global-ds-prod-cf-euc1-logs",
    Classification = "internal-use-only",
    Business-Unit  = "Global-DS",
    Environment    = "Prod",
    Owner          = "Dave Wenger",
    Project-Code   = "SME-GLOBAL-DS",
    Project-Name   = "Global-DS-MSK",
    Terraform      = "True",
    Purpose        = "LOGGING"
  }
}


module "sme-global-ds-prod-elb-euc1-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-global-ds-prod-elb-euc1-logs"
  versioning = {
    enabled = false
  }
  providers = {
    aws = aws.eu-central-1
  }
  server_side_encryption_configuration = var.server_side_encryption_configuration
  logging = {
    target_bucket = "sme-global-ds-prod-s3-euc1-logs"
    target_prefix = "sme-global-ds-prod/"
  }
  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-global-ds-prod-elb-euc1-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 = {
    Name           = "sme-global-ds-prod-elb-euc1-logs",
    Classification = "internal-use-only",
    Business-Unit  = "Global-DS",
    Environment    = "Prod",
    Owner          = "Dave Wenger",
    Project-Code   = "SME-GLOBAL-DS",
    Project-Name   = "Global-DS-MSK",
    Terraform      = "True",
    Purpose        = "LOGGING"
  }
}

module "sme-global-ds-prod-s3-euc1-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-global-ds-prod-s3-euc1-logs"
  versioning = {
    enabled = true
  }
  providers = {
    aws = aws.eu-central-1
  }
  server_side_encryption_configuration = var.server_side_encryption_configuration
  logging = {
    target_bucket = "sme-global-ds-prod-s3-euc1-logs"
    target_prefix = "sme-global-ds-prod-s3-euc1-logs/"
  }
  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-global-ds-prod-s3-euc1-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 = {
    Name           = "sme-global-ds-prod-s3-euc1-logs",
    Classification = "internal-use-only",
    Business-Unit  = "Global-DS",
    Environment    = "Prod",
    Owner          = "Dave Wenger",
    Project-Code   = "SME-GLOBAL-DS",
    Project-Name   = "Global-DS-MSK",
    Terraform      = "True",
    Purpose        = "LOGGING"
  }
}

module "gdsp-supraphon-assets" {
  #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  = "gdsp-supraphon-assets"
  versioning = {
    enabled = false
  }
  providers = {
    aws = aws.eu-central-1
  }
  server_side_encryption_configuration = var.server_side_encryption_configuration
  logging = {
    target_bucket = "sme-global-ds-prod-s3-euc1-logs"
    target_prefix = "sme-global-ds-prod/"
  }
  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.gdsp-supraphon-assets.json
  attach_deny_insecure_transport_policy = var.attach_deny_insecure_transport_policy
  attach_require_latest_tls_policy      = var.attach_require_latest_tls_policy

  tags = {
    Name           = "gdsp-supraphon-assets"
    Classification = "secret"
    Environment    = "Prod"
    Business-Unit  = "Global-DS"
    Terraform      = "True"
    Project-Name   = "Global-DS-MSK"
    Project-Code   = "SME-GLOBAL-DS"
    Owner          = "Dave Wenger"
    Purpose        = "CLOUDOPS"
  }
}

module "gdsp-ddex-general-prod" {
  #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  = "gdsp-ddex-general-prod"
  versioning = {
    enabled = false
  }
  providers = {
    aws = aws.eu-central-1
  }
  server_side_encryption_configuration = var.server_side_encryption_configuration
  logging = {
    target_bucket = "sme-global-ds-prod-s3-euc1-logs"
    target_prefix = "sme-global-ds-prod/"
  }
  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.gdsp-ddex-general-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 = {
    Name           = "gdsp-ddex-general-prod"
    Classification = "secret"
    Environment    = "Prod"
    Business-Unit  = "Global-DS"
    Terraform      = "True"
    Project-Name   = "Global-DS-MSK"
    Project-Code   = "SME-GLOBAL-DS"
    Owner          = "Dave Wenger"
    Purpose        = "CLOUDOPS"
  }
}

module "global-msk-prod-trail-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  = "global-msk-prod-trail-logs"

  versioning = {
    enabled = false
  }

  lifecycle_rule = [
    {
      id      = "cloudtrail-retention-7-days"
      enabled = true

      expiration = {
        days = 7
      }
    }
  ]

  providers = {
    aws = aws.eu-central-1
  }

  server_side_encryption_configuration = var.server_side_encryption_configuration

  logging = {
    target_bucket = "sme-global-ds-prod-s3-euc1-logs"
    target_prefix = "sme-global-ds-prod/"
  }

  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.global-msk-prod-trail-logs.json
  attach_deny_insecure_transport_policy = false
  attach_require_latest_tls_policy      = var.attach_require_latest_tls_policy

  tags = {
    Name           = "global-msk-prod-trail-logs",
    Classification = "secret",
    Business-Unit  = "Global-DS",
    Environment    = "Prod",
    Owner          = "Dave Wenger",
    Project-Code   = "SME-GLOBAL-DS",
    Project-Name   = "Global-DS-MSK",
    Terraform      = "True",
    Purpose        = "APP-SUPPORT"
  }
}
