Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/c7n_gcp/resources/memstore.py: 95%

20 statements  

« prev     ^ index     » next       coverage.py v7.3.2, created at 2023-12-08 06:51 +0000

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]