1# Copyright The Cloud Custodian Authors.
2# SPDX-License-Identifier: Apache-2.0
3from c7n_gcp.provider import resources
4from c7n_gcp.query import QueryResourceManager, TypeInfo
5
6
7@resources.register("redis")
8class RedisInstance(QueryResourceManager):
9 """GC resource: https://cloud.google.com/memorystore/docs/redis/reference/rest
10
11 :example:
12
13 .. code-block:: yaml
14
15 policies:
16 - name: gcp-memorystore_for_redis_auth
17 description: |
18 GCP Memorystore for Redis has AUTH disabled
19 resource: gcp.redis
20 filters:
21 - type: value
22 key: authEnabled
23 op: ne
24 value: true
25 """
26
27 class resource_type(TypeInfo):
28 service = "redis"
29 version = "v1"
30 component = "projects.locations.instances"
31 enum_spec = ("list", "instances[]", None)
32 scope_key = "parent"
33 name = id = "name"
34 scope_template = "projects/{}/locations/-"
35 permissions = ("bigtable.instances.list",)
36 default_report_fields = ["displayName", "expireTime"]
37 asset_type = "redis.googleapis.com/Instance"
38 urn_component = "instance"
39 urn_id_segments = (-1,)
40
41 @classmethod
42 def _get_location(cls, resource):
43 return resource["name"].split("/")[3]