Skip to content

Commit 015bbfe

Browse files
authored
Make resource_policy abstract method to trigger typecheck (#2252)
1 parent a008325 commit 015bbfe

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

fixlib/fixlib/baseresources.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import base64
44
import hashlib
55
import weakref
6-
from abc import ABC
6+
from abc import ABC, abstractmethod
77
from copy import deepcopy
88
from datetime import datetime, timezone, timedelta
99
from enum import Enum, StrEnum, unique
@@ -1633,8 +1633,9 @@ class PolicySource:
16331633

16341634
class HasResourcePolicy(ABC):
16351635
# returns a list of all policies that affects the resource (inline, attached, etc.)
1636+
@abstractmethod
16361637
def resource_policy(self, builder: Any) -> List[Tuple[PolicySource, Json]]:
1637-
raise NotImplementedError
1638+
pass
16381639

16391640

16401641
@frozen

plugins/aws/fix_plugin_aws/resource/kinesis.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import ClassVar, Dict, Optional, List, Any
1+
from typing import ClassVar, Dict, Optional, List, Any, Tuple
22
from json import loads as json_loads
33

44
from attrs import define, field
@@ -8,7 +8,7 @@
88
from fix_plugin_aws.resource.kms import AwsKmsKey
99
from fix_plugin_aws.aws_client import AwsClient
1010
from fix_plugin_aws.utils import ToDict
11-
from fixlib.baseresources import HasResourcePolicy, MetricName, ModelReference
11+
from fixlib.baseresources import HasResourcePolicy, MetricName, ModelReference, PolicySource, PolicySourceKind
1212
from fixlib.graph import Graph
1313
from fixlib.json_bender import Bender, S, Bend, bend, ForallBend
1414
from fixlib.types import Json
@@ -133,6 +133,12 @@ class AwsKinesisStream(AwsResource, HasResourcePolicy):
133133
kinesis_key_id: Optional[str] = field(default=None)
134134
kinesis_policy: Optional[Json] = field(default=None)
135135

136+
def resource_policy(self, builder: Any) -> List[Tuple[PolicySource, Dict[str, Any]]]:
137+
if not self.kinesis_policy or not self.arn:
138+
return []
139+
140+
return [(PolicySource(PolicySourceKind.resource, self.arn), self.kinesis_policy)]
141+
136142
@classmethod
137143
def called_collect_apis(cls) -> List[AwsApiSpec]:
138144
return [

0 commit comments

Comments
 (0)