prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  CKV_AWS_134: Skip Memcache engine
  **Describe the bug**
  "snapshot_retention_limit" - parameter only for "Redis" engine and in my TF module for Memcache it doesn't exist. But when I run "checkov" I got the following:
  
  ```
  Check: CKV_AWS_134: "Ensure that Amazon ElastiCache Redis clusters have automatic backup turned on"
  	FAILED for resource: aws_elasticache_cluster.memcached
  	File: /tf.json:0-0
  	Guide: https://docs.bridgecrew.io/docs/ensure-that-amazon-elasticache-redis-clusters-have-automatic-backup-turned-on
  ```
  
  **Terraform module**
  ```
  ### ElastiCache Memcached CLuster
  resource "aws_elasticache_cluster" "memcached" {
    cluster_id = lower("${var.basename}-Memcached-Cluster")
  
    engine               = var.engine
    engine_version       = var.engine_version
    port                 = var.port
    parameter_group_name = module.common.parameter_group_name
  
    node_type       = var.node_type
    num_cache_nodes = var.num_cache_nodes
    az_mode         = var.az_mode
  
    subnet_group_name  = module.common.subnet_group_name
    security_group_ids = [module.common.sg_id]
  
    apply_immediately = true
  
    tags = var.tags
  }
  ```
  
  **memcache.tf**
  ```
  ### ElastiCache: Memcashed Cluster
  module "elasticache-memcached" {
    source = "../../modules/elasticache/memcached"
  
    basename = local.basename
    vpc_id   = module.vpc.id
    subnets  = module.private-subnets.ids
  
    engine_version         = "1.6.6"
    parameter_group_family = "memcached1.6"
    node_type              = "cache.t3.small"
    num_cache_nodes        = 2
  
    # Enable az_mode, when num_cache_nodes > 1
    az_mode = "cross-az"
  
    cidr_groups = { ALL = "0.0.0.0/0" }
  
    tags = local.base_tags
  }
  ```
  
  **Expected behavior**
  If engine is "memcache" then check must be skipped.
  
  **Desktop:**
   - OS: macOS Big Sur - 11.2.1
   - Checkov Version: 2.0.77
  
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `checkov/terraform/checks/resource/aws/ElasticCacheAutomaticBackup.py`
  Content:
  ```
  1 from checkov.common.models.enums import CheckCategories, CheckResult
  2 from checkov.terraform.checks.resource.base_resource_negative_value_check import BaseResourceNegativeValueCheck
  3 
  4 
  5 class ElasticCacheAutomaticBackup(BaseResourceNegativeValueCheck):
  6     def __init__(self):
  7         name = "Ensure that Amazon ElastiCache Redis clusters have automatic backup turned on"
  8         id = "CKV_AWS_134"
  9         supported_resources = ['aws_elasticache_cluster']
  10         categories = [CheckCategories.BACKUP_AND_RECOVERY]
  11         super().__init__(name=name, id=id, categories=categories, supported_resources=supported_resources,
  12                          missing_attribute_result=CheckResult.FAILED)
  13 
  14     def get_inspected_key(self):
  15         return 'snapshot_retention_limit'
  16 
  17     def get_forbidden_values(self):
  18         return [0]
  19 
  20 
  21 check = ElasticCacheAutomaticBackup()
  22
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/checkov/terraform/checks/resource/aws/ElasticCacheAutomaticBackup.py b/checkov/terraform/checks/resource/aws/ElasticCacheAutomaticBackup.py
  --- a/checkov/terraform/checks/resource/aws/ElasticCacheAutomaticBackup.py
  +++ b/checkov/terraform/checks/resource/aws/ElasticCacheAutomaticBackup.py
  @@ -6,13 +6,24 @@
       def __init__(self):
           name = "Ensure that Amazon ElastiCache Redis clusters have automatic backup turned on"
           id = "CKV_AWS_134"
  -        supported_resources = ['aws_elasticache_cluster']
  +        supported_resources = ["aws_elasticache_cluster"]
           categories = [CheckCategories.BACKUP_AND_RECOVERY]
  -        super().__init__(name=name, id=id, categories=categories, supported_resources=supported_resources,
  -                         missing_attribute_result=CheckResult.FAILED)
  +        super().__init__(
  +            name=name,
  +            id=id,
  +            categories=categories,
  +            supported_resources=supported_resources,
  +            missing_attribute_result=CheckResult.FAILED,
  +        )
  +
  +    def scan_resource_conf(self, conf):
  +        if conf.get("engine") == ["memcached"]:
  +            return CheckResult.UNKNOWN
  +
  +        return super().scan_resource_conf(conf)
   
       def get_inspected_key(self):
  -        return 'snapshot_retention_limit'
  +        return "snapshot_retention_limit"
   
       def get_forbidden_values(self):
           return [0]
  
verification_info: {"golden_diff": "diff --git a/checkov/terraform/checks/resource/aws/ElasticCacheAutomaticBackup.py b/checkov/terraform/checks/resource/aws/ElasticCacheAutomaticBackup.py\n--- a/checkov/terraform/checks/resource/aws/ElasticCacheAutomaticBackup.py\n+++ b/checkov/terraform/checks/resource/aws/ElasticCacheAutomaticBackup.py\n@@ -6,13 +6,24 @@\n     def __init__(self):\n         name = \"Ensure that Amazon ElastiCache Redis clusters have automatic backup turned on\"\n         id = \"CKV_AWS_134\"\n-        supported_resources = ['aws_elasticache_cluster']\n+        supported_resources = [\"aws_elasticache_cluster\"]\n         categories = [CheckCategories.BACKUP_AND_RECOVERY]\n-        super().__init__(name=name, id=id, categories=categories, supported_resources=supported_resources,\n-                         missing_attribute_result=CheckResult.FAILED)\n+        super().__init__(\n+            name=name,\n+            id=id,\n+            categories=categories,\n+            supported_resources=supported_resources,\n+            missing_attribute_result=CheckResult.FAILED,\n+        )\n+\n+    def scan_resource_conf(self, conf):\n+        if conf.get(\"engine\") == [\"memcached\"]:\n+            return CheckResult.UNKNOWN\n+\n+        return super().scan_resource_conf(conf)\n \n     def get_inspected_key(self):\n-        return 'snapshot_retention_limit'\n+        return \"snapshot_retention_limit\"\n \n     def get_forbidden_values(self):\n         return [0]\n", "issue": "CKV_AWS_134: Skip Memcache engine\n**Describe the bug**\r\n\"snapshot_retention_limit\" - parameter only for \"Redis\" engine and in my TF module for Memcache it doesn't exist. But when I run \"checkov\" I got the following:\r\n\r\n```\r\nCheck: CKV_AWS_134: \"Ensure that Amazon ElastiCache Redis clusters have automatic backup turned on\"\r\n\tFAILED for resource: aws_elasticache_cluster.memcached\r\n\tFile: /tf.json:0-0\r\n\tGuide: https://docs.bridgecrew.io/docs/ensure-that-amazon-elasticache-redis-clusters-have-automatic-backup-turned-on\r\n```\r\n\r\n**Terraform module**\r\n```\r\n### ElastiCache Memcached CLuster\r\nresource \"aws_elasticache_cluster\" \"memcached\" {\r\n  cluster_id = lower(\"${var.basename}-Memcached-Cluster\")\r\n\r\n  engine               = var.engine\r\n  engine_version       = var.engine_version\r\n  port                 = var.port\r\n  parameter_group_name = module.common.parameter_group_name\r\n\r\n  node_type       = var.node_type\r\n  num_cache_nodes = var.num_cache_nodes\r\n  az_mode         = var.az_mode\r\n\r\n  subnet_group_name  = module.common.subnet_group_name\r\n  security_group_ids = [module.common.sg_id]\r\n\r\n  apply_immediately = true\r\n\r\n  tags = var.tags\r\n}\r\n```\r\n\r\n**memcache.tf**\r\n```\r\n### ElastiCache: Memcashed Cluster\r\nmodule \"elasticache-memcached\" {\r\n  source = \"../../modules/elasticache/memcached\"\r\n\r\n  basename = local.basename\r\n  vpc_id   = module.vpc.id\r\n  subnets  = module.private-subnets.ids\r\n\r\n  engine_version         = \"1.6.6\"\r\n  parameter_group_family = \"memcached1.6\"\r\n  node_type              = \"cache.t3.small\"\r\n  num_cache_nodes        = 2\r\n\r\n  # Enable az_mode, when num_cache_nodes > 1\r\n  az_mode = \"cross-az\"\r\n\r\n  cidr_groups = { ALL = \"0.0.0.0/0\" }\r\n\r\n  tags = local.base_tags\r\n}\r\n```\r\n\r\n**Expected behavior**\r\nIf engine is \"memcache\" then check must be skipped.\r\n\r\n**Desktop:**\r\n - OS: macOS Big Sur - 11.2.1\r\n - Checkov Version: 2.0.77\r\n\n", "before_files": [{"content": "from checkov.common.models.enums import CheckCategories, CheckResult\nfrom checkov.terraform.checks.resource.base_resource_negative_value_check import BaseResourceNegativeValueCheck\n\n\nclass ElasticCacheAutomaticBackup(BaseResourceNegativeValueCheck):\n    def __init__(self):\n        name = \"Ensure that Amazon ElastiCache Redis clusters have automatic backup turned on\"\n        id = \"CKV_AWS_134\"\n        supported_resources = ['aws_elasticache_cluster']\n        categories = [CheckCategories.BACKUP_AND_RECOVERY]\n        super().__init__(name=name, id=id, categories=categories, supported_resources=supported_resources,\n                         missing_attribute_result=CheckResult.FAILED)\n\n    def get_inspected_key(self):\n        return 'snapshot_retention_limit'\n\n    def get_forbidden_values(self):\n        return [0]\n\n\ncheck = ElasticCacheAutomaticBackup()\n", "path": "checkov/terraform/checks/resource/aws/ElasticCacheAutomaticBackup.py"}], "after_files": [{"content": "from checkov.common.models.enums import CheckCategories, CheckResult\nfrom checkov.terraform.checks.resource.base_resource_negative_value_check import BaseResourceNegativeValueCheck\n\n\nclass ElasticCacheAutomaticBackup(BaseResourceNegativeValueCheck):\n    def __init__(self):\n        name = \"Ensure that Amazon ElastiCache Redis clusters have automatic backup turned on\"\n        id = \"CKV_AWS_134\"\n        supported_resources = [\"aws_elasticache_cluster\"]\n        categories = [CheckCategories.BACKUP_AND_RECOVERY]\n        super().__init__(\n            name=name,\n            id=id,\n            categories=categories,\n            supported_resources=supported_resources,\n            missing_attribute_result=CheckResult.FAILED,\n        )\n\n    def scan_resource_conf(self, conf):\n        if conf.get(\"engine\") == [\"memcached\"]:\n            return CheckResult.UNKNOWN\n\n        return super().scan_resource_conf(conf)\n\n    def get_inspected_key(self):\n        return \"snapshot_retention_limit\"\n\n    def get_forbidden_values(self):\n        return [0]\n\n\ncheck = ElasticCacheAutomaticBackup()\n", "path": "checkov/terraform/checks/resource/aws/ElasticCacheAutomaticBackup.py"}]}