internal sealed class CloudFormationStackResource()

in src/Aspire.Hosting.AWS/CloudFormation/CloudFormationStackResource.cs [9:28]


internal sealed class CloudFormationStackResource(string name, string stackName)
    : CloudFormationResource(name, stackName), ICloudFormationStackResource
{
    internal override void WriteToManifest(ManifestPublishingContext context)
    {
        context.Writer.WriteString("type", "aws.cloudformation.stack.v0");
        context.Writer.TryWriteString("stack-name", StackName);

        context.Writer.WritePropertyName("references");
        context.Writer.WriteStartArray();
        foreach (var cloudFormationResource in Annotations.OfType<CloudFormationReferenceAnnotation>())
        {
            context.Writer.WriteStartObject();
            context.Writer.WriteString("target-resource", cloudFormationResource.TargetResource);
            context.Writer.WriteEndObject();
        }

        context.Writer.WriteEndArray();
    }
}