14
14
import os
15
15
import urllib .parse
16
16
from time import sleep
17
- from typing import TYPE_CHECKING , cast
17
+ from typing import TYPE_CHECKING
18
18
19
19
import boto3
20
20
from botocore .config import Config
23
23
if TYPE_CHECKING :
24
24
from mypy_boto3_cloudformation import CloudFormationClient
25
25
from mypy_boto3_iam .client import IAMClient
26
- from mypy_boto3_iam .type_defs import CreatePolicyResponseTypeDef , CreateRoleResponseTypeDef , EmptyResponseMetadataTypeDef
26
+ from mypy_boto3_iam .type_defs import EmptyResponseMetadataTypeDef
27
27
from mypy_boto3_organizations import OrganizationsClient
28
28
29
29
@@ -92,7 +92,7 @@ class SRAIAM:
92
92
},
93
93
}
94
94
95
- def create_role (self , role_name : str , trust_policy : dict , solution_name : str ) -> CreateRoleResponseTypeDef :
95
+ def create_role (self , role_name : str , trust_policy : dict , solution_name : str ) -> dict :
96
96
"""Create IAM role.
97
97
98
98
Args:
@@ -105,15 +105,15 @@ def create_role(self, role_name: str, trust_policy: dict, solution_name: str) ->
105
105
"""
106
106
self .LOGGER .info ("Creating role %s." , role_name )
107
107
try :
108
- return self .IAM_CLIENT .create_role (
108
+ return dict ( self .IAM_CLIENT .create_role (
109
109
RoleName = role_name , AssumeRolePolicyDocument = json .dumps (trust_policy ), Tags = [{"Key" : "sra-solution" , "Value" : solution_name }]
110
- )
110
+ ))
111
111
except ClientError as error :
112
112
if error .response ["Error" ]["Code" ] == "EntityAlreadyExists" :
113
113
self .LOGGER .info (f"{ role_name } role already exists!" )
114
- return cast ( CreateRoleResponseTypeDef , {"Role" : {"Arn" : "error" }})
114
+ return {"Role" : {"Arn" : "error" }}
115
115
116
- def create_policy (self , policy_name : str , policy_document : dict , solution_name : str ) -> CreatePolicyResponseTypeDef :
116
+ def create_policy (self , policy_name : str , policy_document : dict , solution_name : str ) -> dict :
117
117
"""Create IAM policy.
118
118
119
119
Args:
@@ -126,13 +126,13 @@ def create_policy(self, policy_name: str, policy_document: dict, solution_name:
126
126
"""
127
127
self .LOGGER .info (f"Creating { policy_name } IAM policy" )
128
128
try :
129
- return self .IAM_CLIENT .create_policy (
129
+ return dict ( self .IAM_CLIENT .create_policy (
130
130
PolicyName = policy_name , PolicyDocument = json .dumps (policy_document ), Tags = [{"Key" : "sra-solution" , "Value" : solution_name }]
131
- )
131
+ ))
132
132
except ClientError as error :
133
133
if error .response ["Error" ]["Code" ] == "EntityAlreadyExists" :
134
134
self .LOGGER .info (f"{ policy_name } policy already exists!" )
135
- return cast ( CreatePolicyResponseTypeDef , {"Policy" : {"Arn" : "error" }})
135
+ return {"Policy" : {"Arn" : "error" }}
136
136
137
137
def attach_policy (self , role_name : str , policy_arn : str ) -> EmptyResponseMetadataTypeDef :
138
138
"""Attach policy to IAM role.
0 commit comments