diff --git a/moto/cloudformation/models.py b/moto/cloudformation/models.py index cddb22d0c..b260917b4 100644 --- a/moto/cloudformation/models.py +++ b/moto/cloudformation/models.py @@ -272,6 +272,7 @@ class FakeStackInstance(BaseModel): "Account": self.account_id, "Status": "CURRENT", "ParameterOverrides": self.parameters, + "StackInstanceStatus": {"DetailedStatus": "SUCCEEDED"}, } diff --git a/moto/cloudformation/responses.py b/moto/cloudformation/responses.py index 8c762f6bc..fa192e25d 100644 --- a/moto/cloudformation/responses.py +++ b/moto/cloudformation/responses.py @@ -1122,6 +1122,9 @@ DESCRIBE_STACK_INSTANCE_TEMPLATE = """ {{ instance["Account"] }} {{ instance["Status"] }} + + {{ instance["StackInstanceStatus"]["DetailedStatus"] }} + diff --git a/tests/test_cloudformation/test_cloudformation_stack_crud_boto3.py b/tests/test_cloudformation/test_cloudformation_stack_crud_boto3.py index b2bdb7649..ae7474ae2 100644 --- a/tests/test_cloudformation/test_cloudformation_stack_crud_boto3.py +++ b/tests/test_cloudformation/test_cloudformation_stack_crud_boto3.py @@ -350,17 +350,19 @@ def test_describe_stack_instances(): StackSetName="teststackset", StackInstanceAccount=ACCOUNT_ID, StackInstanceRegion="us-west-2", - ) + )["StackInstance"] use1_instance = cf.describe_stack_instance( StackSetName="teststackset", StackInstanceAccount=ACCOUNT_ID, StackInstanceRegion="us-east-1", - ) + )["StackInstance"] - assert usw2_instance["StackInstance"]["Region"] == "us-west-2" - assert usw2_instance["StackInstance"]["Account"] == ACCOUNT_ID - assert use1_instance["StackInstance"]["Region"] == "us-east-1" - assert use1_instance["StackInstance"]["Account"] == ACCOUNT_ID + assert use1_instance["Region"] == "us-east-1" + assert usw2_instance["Region"] == "us-west-2" + for instance in [use1_instance, usw2_instance]: + assert instance["Account"] == ACCOUNT_ID + assert instance["Status"] == "CURRENT" + assert instance["StackInstanceStatus"] == {"DetailedStatus": "SUCCEEDED"} @mock_cloudformation