diff --git a/src/cfnlint/rules/functions/GetAttFormat.py b/src/cfnlint/rules/functions/GetAttFormat.py index a7fd660855..7495b2eb0c 100644 --- a/src/cfnlint/rules/functions/GetAttFormat.py +++ b/src/cfnlint/rules/functions/GetAttFormat.py @@ -30,6 +30,7 @@ def __init__(self): self._resource_type_exceptions = [ "AWS::CloudFormation::CustomResource", "AWS::CloudFormation::Stack", + "AWS::ServiceCatalog::CloudFormationProvisionedProduct", ] def validate( diff --git a/test/unit/rules/functions/test_getatt_format.py b/test/unit/rules/functions/test_getatt_format.py index 33e6f7c931..24cc0cf540 100644 --- a/test/unit/rules/functions/test_getatt_format.py +++ b/test/unit/rules/functions/test_getatt_format.py @@ -24,6 +24,9 @@ def template(): "MySecurityGroup": {"Type": "AWS::EC2::SecurityGroup"}, "MyCustomResource": {"Type": "Custom::CustomResource"}, "MySubTemplate": {"Type": "AWS::CloudFormation::Stack"}, + "MyProvisionedProduct": { + "Type": "AWS::ServiceCatalog::CloudFormationProvisionedProduct" + }, }, } @@ -49,6 +52,12 @@ def template(): {"format": "AWS::EC2::VPC.Id"}, [], ), + ( + "Valid GetAtt to a provisioned product ", + ["MyProvisionedProduct", "Outputs.VpcId"], + {"format": "AWS::EC2::VPC.Id"}, + [], + ), ( "Valid GetAtt because of exception", ["MyBucket", "Arn"],