Skip to content

Commit 2cfabd9

Browse files
authored
chore: replace generated properties by GeneratedProperty() (#2934)
1 parent c69d021 commit 2cfabd9

File tree

15 files changed

+227
-226
lines changed

15 files changed

+227
-226
lines changed

samtranslator/model/apigateway.py

Lines changed: 61 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
from re import match
33
from typing import Any, Dict, List, Optional, Union
44

5-
from samtranslator.model import PropertyType, Resource
5+
from samtranslator.model import GeneratedProperty, Resource
66
from samtranslator.model.exceptions import InvalidResourceException
77
from samtranslator.model.intrinsics import fnSub, ref
8-
from samtranslator.model.types import IS_DICT, IS_STR, PassThrough, is_type, list_of, one_of
8+
from samtranslator.model.types import PassThrough
99
from samtranslator.translator import logical_id_generator
1010
from samtranslator.translator.arn_generator import ArnGenerator
1111
from samtranslator.utils.py27hash_fix import Py27Dict, Py27UniStr
@@ -15,18 +15,18 @@
1515
class ApiGatewayRestApi(Resource):
1616
resource_type = "AWS::ApiGateway::RestApi"
1717
property_types = {
18-
"Body": PropertyType(False, IS_DICT),
19-
"BodyS3Location": PropertyType(False, IS_DICT),
20-
"CloneFrom": PropertyType(False, IS_STR),
21-
"Description": PropertyType(False, IS_STR),
22-
"FailOnWarnings": PropertyType(False, is_type(bool)),
23-
"Name": PropertyType(False, IS_STR),
24-
"Parameters": PropertyType(False, IS_DICT),
25-
"EndpointConfiguration": PropertyType(False, IS_DICT),
26-
"BinaryMediaTypes": PropertyType(False, is_type(list)),
27-
"MinimumCompressionSize": PropertyType(False, is_type(int)),
28-
"Mode": PropertyType(False, IS_STR),
29-
"ApiKeySourceType": PropertyType(False, IS_STR),
18+
"Body": GeneratedProperty(),
19+
"BodyS3Location": GeneratedProperty(),
20+
"CloneFrom": GeneratedProperty(),
21+
"Description": GeneratedProperty(),
22+
"FailOnWarnings": GeneratedProperty(),
23+
"Name": GeneratedProperty(),
24+
"Parameters": GeneratedProperty(),
25+
"EndpointConfiguration": GeneratedProperty(),
26+
"BinaryMediaTypes": GeneratedProperty(),
27+
"MinimumCompressionSize": GeneratedProperty(),
28+
"Mode": GeneratedProperty(),
29+
"ApiKeySourceType": GeneratedProperty(),
3030
}
3131

3232
Body: Optional[Dict[str, Any]]
@@ -48,19 +48,19 @@ class ApiGatewayRestApi(Resource):
4848
class ApiGatewayStage(Resource):
4949
resource_type = "AWS::ApiGateway::Stage"
5050
property_types = {
51-
"AccessLogSetting": PropertyType(False, IS_DICT),
52-
"CacheClusterEnabled": PropertyType(False, is_type(bool)),
53-
"CacheClusterSize": PropertyType(False, IS_STR),
54-
"CanarySetting": PropertyType(False, IS_DICT),
55-
"ClientCertificateId": PropertyType(False, IS_STR),
56-
"DeploymentId": PropertyType(True, IS_STR),
57-
"Description": PropertyType(False, IS_STR),
58-
"RestApiId": PropertyType(True, IS_STR),
59-
"StageName": PropertyType(True, one_of(IS_STR, IS_DICT)),
60-
"Tags": PropertyType(False, list_of(IS_DICT)),
61-
"TracingEnabled": PropertyType(False, is_type(bool)),
62-
"Variables": PropertyType(False, IS_DICT),
63-
"MethodSettings": PropertyType(False, is_type(list)),
51+
"AccessLogSetting": GeneratedProperty(),
52+
"CacheClusterEnabled": GeneratedProperty(),
53+
"CacheClusterSize": GeneratedProperty(),
54+
"CanarySetting": GeneratedProperty(),
55+
"ClientCertificateId": GeneratedProperty(),
56+
"DeploymentId": GeneratedProperty(),
57+
"Description": GeneratedProperty(),
58+
"RestApiId": GeneratedProperty(),
59+
"StageName": GeneratedProperty(),
60+
"Tags": GeneratedProperty(),
61+
"TracingEnabled": GeneratedProperty(),
62+
"Variables": GeneratedProperty(),
63+
"MethodSettings": GeneratedProperty(),
6464
}
6565

6666
runtime_attrs = {"stage_name": lambda self: ref(self.logical_id)}
@@ -71,18 +71,20 @@ def update_deployment_ref(self, deployment_logical_id: str) -> None:
7171

7272
class ApiGatewayAccount(Resource):
7373
resource_type = "AWS::ApiGateway::Account"
74-
property_types = {"CloudWatchRoleArn": PropertyType(False, one_of(IS_STR, IS_DICT))}
74+
property_types = {
75+
"CloudWatchRoleArn": GeneratedProperty(),
76+
}
7577

7678

7779
class ApiGatewayDeployment(Resource):
7880
_X_HASH_DELIMITER = "||"
7981

8082
resource_type = "AWS::ApiGateway::Deployment"
8183
property_types = {
82-
"Description": PropertyType(False, IS_STR),
83-
"RestApiId": PropertyType(True, IS_STR),
84-
"StageDescription": PropertyType(False, IS_DICT),
85-
"StageName": PropertyType(False, IS_STR),
84+
"Description": GeneratedProperty(),
85+
"RestApiId": GeneratedProperty(),
86+
"StageDescription": GeneratedProperty(),
87+
"StageName": GeneratedProperty(),
8688
}
8789

8890
runtime_attrs = {"deployment_id": lambda self: ref(self.logical_id)}
@@ -200,13 +202,13 @@ def _status_code_string(self, status_code): # type: ignore[no-untyped-def]
200202
class ApiGatewayDomainName(Resource):
201203
resource_type = "AWS::ApiGateway::DomainName"
202204
property_types = {
203-
"RegionalCertificateArn": PropertyType(False, IS_STR),
204-
"DomainName": PropertyType(True, IS_STR),
205-
"EndpointConfiguration": PropertyType(False, IS_DICT),
206-
"MutualTlsAuthentication": PropertyType(False, IS_DICT),
207-
"SecurityPolicy": PropertyType(False, IS_STR),
208-
"CertificateArn": PropertyType(False, IS_STR),
209-
"OwnershipVerificationCertificateArn": PropertyType(False, IS_STR),
205+
"RegionalCertificateArn": GeneratedProperty(),
206+
"DomainName": GeneratedProperty(),
207+
"EndpointConfiguration": GeneratedProperty(),
208+
"MutualTlsAuthentication": GeneratedProperty(),
209+
"SecurityPolicy": GeneratedProperty(),
210+
"CertificateArn": GeneratedProperty(),
211+
"OwnershipVerificationCertificateArn": GeneratedProperty(),
210212
}
211213

212214
RegionalCertificateArn: Optional[PassThrough]
@@ -221,45 +223,45 @@ class ApiGatewayDomainName(Resource):
221223
class ApiGatewayBasePathMapping(Resource):
222224
resource_type = "AWS::ApiGateway::BasePathMapping"
223225
property_types = {
224-
"BasePath": PropertyType(False, IS_STR),
225-
"DomainName": PropertyType(True, IS_STR),
226-
"RestApiId": PropertyType(False, IS_STR),
227-
"Stage": PropertyType(False, IS_STR),
226+
"BasePath": GeneratedProperty(),
227+
"DomainName": GeneratedProperty(),
228+
"RestApiId": GeneratedProperty(),
229+
"Stage": GeneratedProperty(),
228230
}
229231

230232

231233
class ApiGatewayUsagePlan(Resource):
232234
resource_type = "AWS::ApiGateway::UsagePlan"
233235
property_types = {
234-
"ApiStages": PropertyType(False, is_type(list)),
235-
"Description": PropertyType(False, IS_STR),
236-
"Quota": PropertyType(False, IS_DICT),
237-
"Tags": PropertyType(False, list_of(dict)),
238-
"Throttle": PropertyType(False, IS_DICT),
239-
"UsagePlanName": PropertyType(False, IS_STR),
236+
"ApiStages": GeneratedProperty(),
237+
"Description": GeneratedProperty(),
238+
"Quota": GeneratedProperty(),
239+
"Tags": GeneratedProperty(),
240+
"Throttle": GeneratedProperty(),
241+
"UsagePlanName": GeneratedProperty(),
240242
}
241243
runtime_attrs = {"usage_plan_id": lambda self: ref(self.logical_id)}
242244

243245

244246
class ApiGatewayUsagePlanKey(Resource):
245247
resource_type = "AWS::ApiGateway::UsagePlanKey"
246248
property_types = {
247-
"KeyId": PropertyType(True, IS_STR),
248-
"KeyType": PropertyType(True, IS_STR),
249-
"UsagePlanId": PropertyType(True, IS_STR),
249+
"KeyId": GeneratedProperty(),
250+
"KeyType": GeneratedProperty(),
251+
"UsagePlanId": GeneratedProperty(),
250252
}
251253

252254

253255
class ApiGatewayApiKey(Resource):
254256
resource_type = "AWS::ApiGateway::ApiKey"
255257
property_types = {
256-
"CustomerId": PropertyType(False, IS_STR),
257-
"Description": PropertyType(False, IS_STR),
258-
"Enabled": PropertyType(False, is_type(bool)),
259-
"GenerateDistinctId": PropertyType(False, is_type(bool)),
260-
"Name": PropertyType(False, IS_STR),
261-
"StageKeys": PropertyType(False, is_type(list)),
262-
"Value": PropertyType(False, IS_STR),
258+
"CustomerId": GeneratedProperty(),
259+
"Description": GeneratedProperty(),
260+
"Enabled": GeneratedProperty(),
261+
"GenerateDistinctId": GeneratedProperty(),
262+
"Name": GeneratedProperty(),
263+
"StageKeys": GeneratedProperty(),
264+
"Value": GeneratedProperty(),
263265
}
264266

265267
runtime_attrs = {"api_key_id": lambda self: ref(self.logical_id)}

samtranslator/model/apigatewayv2.py

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
from typing import Any, Dict, List, Optional, Union
22

3-
from samtranslator.model import PropertyType, Resource
3+
from samtranslator.model import GeneratedProperty, Resource
44
from samtranslator.model.exceptions import ExpectedType, InvalidResourceException
55
from samtranslator.model.intrinsics import fnSub, ref
6-
from samtranslator.model.types import IS_DICT, IS_STR, PassThrough, is_type, list_of, one_of
6+
from samtranslator.model.types import PassThrough
77
from samtranslator.translator.arn_generator import ArnGenerator
88
from samtranslator.utils.types import Intrinsicable
99
from samtranslator.validator.value_validator import sam_expect
@@ -14,13 +14,13 @@
1414
class ApiGatewayV2HttpApi(Resource):
1515
resource_type = "AWS::ApiGatewayV2::Api"
1616
property_types = {
17-
"Body": PropertyType(False, IS_DICT),
18-
"BodyS3Location": PropertyType(False, IS_DICT),
19-
"Description": PropertyType(False, IS_STR),
20-
"FailOnWarnings": PropertyType(False, is_type(bool)),
21-
"DisableExecuteApiEndpoint": PropertyType(False, is_type(bool)),
22-
"BasePath": PropertyType(False, IS_STR),
23-
"CorsConfiguration": PropertyType(False, IS_DICT),
17+
"Body": GeneratedProperty(),
18+
"BodyS3Location": GeneratedProperty(),
19+
"Description": GeneratedProperty(),
20+
"FailOnWarnings": GeneratedProperty(),
21+
"DisableExecuteApiEndpoint": GeneratedProperty(),
22+
"BasePath": GeneratedProperty(),
23+
"CorsConfiguration": GeneratedProperty(),
2424
}
2525

2626
runtime_attrs = {"http_api_id": lambda self: ref(self.logical_id)}
@@ -29,16 +29,16 @@ class ApiGatewayV2HttpApi(Resource):
2929
class ApiGatewayV2Stage(Resource):
3030
resource_type = "AWS::ApiGatewayV2::Stage"
3131
property_types = {
32-
"AccessLogSettings": PropertyType(False, IS_DICT),
33-
"DefaultRouteSettings": PropertyType(False, IS_DICT),
34-
"RouteSettings": PropertyType(False, IS_DICT),
35-
"ClientCertificateId": PropertyType(False, IS_STR),
36-
"Description": PropertyType(False, IS_STR),
37-
"ApiId": PropertyType(True, IS_STR),
38-
"StageName": PropertyType(False, one_of(IS_STR, IS_DICT)),
39-
"Tags": PropertyType(False, IS_DICT),
40-
"StageVariables": PropertyType(False, IS_DICT),
41-
"AutoDeploy": PropertyType(False, is_type(bool)),
32+
"AccessLogSettings": GeneratedProperty(),
33+
"DefaultRouteSettings": GeneratedProperty(),
34+
"RouteSettings": GeneratedProperty(),
35+
"ClientCertificateId": GeneratedProperty(),
36+
"Description": GeneratedProperty(),
37+
"ApiId": GeneratedProperty(),
38+
"StageName": GeneratedProperty(),
39+
"Tags": GeneratedProperty(),
40+
"StageVariables": GeneratedProperty(),
41+
"AutoDeploy": GeneratedProperty(),
4242
}
4343

4444
runtime_attrs = {"stage_name": lambda self: ref(self.logical_id)}
@@ -47,10 +47,10 @@ class ApiGatewayV2Stage(Resource):
4747
class ApiGatewayV2DomainName(Resource):
4848
resource_type = "AWS::ApiGatewayV2::DomainName"
4949
property_types = {
50-
"DomainName": PropertyType(True, IS_STR),
51-
"DomainNameConfigurations": PropertyType(False, list_of(IS_DICT)),
52-
"MutualTlsAuthentication": PropertyType(False, IS_DICT),
53-
"Tags": PropertyType(False, IS_DICT),
50+
"DomainName": GeneratedProperty(),
51+
"DomainNameConfigurations": GeneratedProperty(),
52+
"MutualTlsAuthentication": GeneratedProperty(),
53+
"Tags": GeneratedProperty(),
5454
}
5555

5656
DomainName: Intrinsicable[str]
@@ -62,10 +62,10 @@ class ApiGatewayV2DomainName(Resource):
6262
class ApiGatewayV2ApiMapping(Resource):
6363
resource_type = "AWS::ApiGatewayV2::ApiMapping"
6464
property_types = {
65-
"ApiId": PropertyType(True, IS_STR),
66-
"ApiMappingKey": PropertyType(False, IS_STR),
67-
"DomainName": PropertyType(True, IS_STR),
68-
"Stage": PropertyType(True, IS_STR),
65+
"ApiId": GeneratedProperty(),
66+
"ApiMappingKey": GeneratedProperty(),
67+
"DomainName": GeneratedProperty(),
68+
"Stage": GeneratedProperty(),
6969
}
7070

7171

samtranslator/model/cloudformation.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
1-
from samtranslator.model import PropertyType, Resource
1+
from samtranslator.model import GeneratedProperty, Resource
22
from samtranslator.model.intrinsics import ref
3-
from samtranslator.model.types import IS_DICT, IS_STR, is_type, list_of, one_of
43

54

65
class NestedStack(Resource):
76
resource_type = "AWS::CloudFormation::Stack"
87
# TODO: support passthrough parameters for stacks (Conditions, etc)
98
property_types = {
10-
"TemplateURL": PropertyType(True, IS_STR),
11-
"Parameters": PropertyType(False, IS_DICT),
12-
"NotificationARNs": PropertyType(False, list_of(one_of(IS_STR, IS_DICT))),
13-
"Tags": PropertyType(False, list_of(IS_DICT)),
14-
"TimeoutInMinutes": PropertyType(False, is_type(int)),
9+
"TemplateURL": GeneratedProperty(),
10+
"Parameters": GeneratedProperty(),
11+
"NotificationARNs": GeneratedProperty(),
12+
"Tags": GeneratedProperty(),
13+
"TimeoutInMinutes": GeneratedProperty(),
1514
}
1615

1716
runtime_attrs = {"stack_id": lambda self: ref(self.logical_id)}

samtranslator/model/codedeploy.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,26 @@
1-
from samtranslator.model import PropertyType, Resource
1+
from samtranslator.model import GeneratedProperty, Resource
22
from samtranslator.model.intrinsics import ref
3-
from samtranslator.model.types import IS_DICT, IS_STR, is_type, one_of
43

54

65
class CodeDeployApplication(Resource):
76
resource_type = "AWS::CodeDeploy::Application"
8-
property_types = {"ComputePlatform": PropertyType(False, one_of(IS_STR, IS_DICT))}
7+
property_types = {
8+
"ComputePlatform": GeneratedProperty(),
9+
}
910

1011
runtime_attrs = {"name": lambda self: ref(self.logical_id)}
1112

1213

1314
class CodeDeployDeploymentGroup(Resource):
1415
resource_type = "AWS::CodeDeploy::DeploymentGroup"
1516
property_types = {
16-
"AlarmConfiguration": PropertyType(False, IS_DICT),
17-
"ApplicationName": PropertyType(True, one_of(IS_STR, IS_DICT)),
18-
"AutoRollbackConfiguration": PropertyType(False, IS_DICT),
19-
"DeploymentConfigName": PropertyType(False, one_of(IS_STR, IS_DICT)),
20-
"DeploymentStyle": PropertyType(False, IS_DICT),
21-
"ServiceRoleArn": PropertyType(True, one_of(IS_STR, IS_DICT)),
22-
"TriggerConfigurations": PropertyType(False, is_type(list)),
17+
"AlarmConfiguration": GeneratedProperty(),
18+
"ApplicationName": GeneratedProperty(),
19+
"AutoRollbackConfiguration": GeneratedProperty(),
20+
"DeploymentConfigName": GeneratedProperty(),
21+
"DeploymentStyle": GeneratedProperty(),
22+
"ServiceRoleArn": GeneratedProperty(),
23+
"TriggerConfigurations": GeneratedProperty(),
2324
}
2425

2526
runtime_attrs = {"name": lambda self: ref(self.logical_id)}

samtranslator/model/cognito.py

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,33 @@
1-
from samtranslator.model import PropertyType, Resource
1+
from samtranslator.model import GeneratedProperty, Resource
22
from samtranslator.model.intrinsics import fnGetAtt, ref
3-
from samtranslator.model.types import IS_DICT, IS_STR, list_of
43

54

65
class CognitoUserPool(Resource):
76
resource_type = "AWS::Cognito::UserPool"
87
property_types = {
9-
"AccountRecoverySetting": PropertyType(False, IS_DICT),
10-
"AdminCreateUserConfig": PropertyType(False, IS_DICT),
11-
"AliasAttributes": PropertyType(False, list_of(IS_STR)),
12-
"AutoVerifiedAttributes": PropertyType(False, list_of(IS_STR)),
13-
"DeviceConfiguration": PropertyType(False, IS_DICT),
14-
"EmailConfiguration": PropertyType(False, IS_DICT),
15-
"EmailVerificationMessage": PropertyType(False, IS_STR),
16-
"EmailVerificationSubject": PropertyType(False, IS_STR),
17-
"EnabledMfas": PropertyType(False, list_of(IS_STR)),
18-
"LambdaConfig": PropertyType(False, IS_DICT),
19-
"MfaConfiguration": PropertyType(False, IS_STR),
20-
"Policies": PropertyType(False, IS_DICT),
21-
"Schema": PropertyType(False, list_of(dict)),
22-
"SmsAuthenticationMessage": PropertyType(False, IS_STR),
23-
"SmsConfiguration": PropertyType(False, IS_DICT),
24-
"SmsVerificationMessage": PropertyType(False, IS_STR),
25-
"UserAttributeUpdateSettings": PropertyType(False, IS_DICT),
26-
"UsernameAttributes": PropertyType(False, list_of(IS_STR)),
27-
"UsernameConfiguration": PropertyType(False, IS_DICT),
28-
"UserPoolAddOns": PropertyType(False, list_of(dict)),
29-
"UserPoolName": PropertyType(False, IS_STR),
30-
"UserPoolTags": PropertyType(False, IS_DICT),
31-
"VerificationMessageTemplate": PropertyType(False, IS_DICT),
8+
"AccountRecoverySetting": GeneratedProperty(),
9+
"AdminCreateUserConfig": GeneratedProperty(),
10+
"AliasAttributes": GeneratedProperty(),
11+
"AutoVerifiedAttributes": GeneratedProperty(),
12+
"DeviceConfiguration": GeneratedProperty(),
13+
"EmailConfiguration": GeneratedProperty(),
14+
"EmailVerificationMessage": GeneratedProperty(),
15+
"EmailVerificationSubject": GeneratedProperty(),
16+
"EnabledMfas": GeneratedProperty(),
17+
"LambdaConfig": GeneratedProperty(),
18+
"MfaConfiguration": GeneratedProperty(),
19+
"Policies": GeneratedProperty(),
20+
"Schema": GeneratedProperty(),
21+
"SmsAuthenticationMessage": GeneratedProperty(),
22+
"SmsConfiguration": GeneratedProperty(),
23+
"SmsVerificationMessage": GeneratedProperty(),
24+
"UserAttributeUpdateSettings": GeneratedProperty(),
25+
"UsernameAttributes": GeneratedProperty(),
26+
"UsernameConfiguration": GeneratedProperty(),
27+
"UserPoolAddOns": GeneratedProperty(),
28+
"UserPoolName": GeneratedProperty(),
29+
"UserPoolTags": GeneratedProperty(),
30+
"VerificationMessageTemplate": GeneratedProperty(),
3231
}
3332

3433
runtime_attrs = {

0 commit comments

Comments
 (0)