data "aws_iam_role" "config_role" {
  provider = aws.eu_central_1
  name     = "mconp-aws-config-role"
}

resource "aws_config_configuration_recorder" "eu_central_1" {
  provider = aws.eu_central_1
  name     = "null"
  role_arn = data.aws_iam_role.config_role.arn

  recording_group {
    all_supported = false

    recording_strategy {
      use_only = "EXCLUSION_BY_RESOURCE_TYPES"
    }

    exclusion_by_resource_types {
      resource_types = [
        "AWS::Config::ResourceCompliance",
        "AWS::EC2::VPC",
        "AWS::EC2::NetworkInterface",
      ]
    }
  }

  recording_mode {
    recording_frequency = "CONTINUOUS"

    recording_mode_override {
      recording_frequency = "DAILY"
      resource_types = [
        "AWS::ElasticLoadBalancingV2::TargetGroup",
        "AWS::EC2::SecurityGroup",
        "AWS::EC2::Subnet",
      ]
    }
  }
}

resource "aws_config_configuration_recorder_status" "eu_central_1" {
  provider   = aws.eu_central_1
  name       = aws_config_configuration_recorder.eu_central_1.name
  is_enabled = true

  depends_on = [aws_config_delivery_channel.eu_central_1]
}

resource "aws_config_delivery_channel" "eu_central_1" {
  provider       = aws.eu_central_1
  name           = "default"
  s3_bucket_name = "config-bmc-smcdp-de-aws-awsconfig"

  snapshot_delivery_properties {
    delivery_frequency = "TwentyFour_Hours"
  }
}

resource "aws_config_configuration_recorder" "us_east_1" {
  provider = aws.us_east_1
  name     = "null"
  role_arn = data.aws_iam_role.config_role.arn

  recording_group {
    all_supported = false

    recording_strategy {
      use_only = "EXCLUSION_BY_RESOURCE_TYPES"
    }

    exclusion_by_resource_types {
      resource_types = [
        "AWS::Config::ResourceCompliance",
        "AWS::EC2::VPC",
        "AWS::EC2::NetworkInterface",
      ]
    }
  }

  recording_mode {
    recording_frequency = "CONTINUOUS"

    recording_mode_override {
      recording_frequency = "DAILY"
      resource_types = [
        "AWS::ElasticLoadBalancingV2::TargetGroup",
        "AWS::EC2::SecurityGroup",
        "AWS::EC2::Subnet",
      ]
    }
  }
}

resource "aws_config_configuration_recorder_status" "us_east_1" {
  provider   = aws.us_east_1
  name       = aws_config_configuration_recorder.us_east_1.name
  is_enabled = true

  depends_on = [aws_config_delivery_channel.us_east_1]
}

resource "aws_config_delivery_channel" "us_east_1" {
  provider       = aws.us_east_1
  name           = "aws_config_delivery_channel"
  s3_bucket_name = "config-bmc-smcdp-de-aws-awsconfig"

  snapshot_delivery_properties {
    delivery_frequency = "Twelve_Hours"
  }
}
