diff --git a/packages/@aws-cdk/aws-apprunner-alpha/lib/observability-configuration.ts b/packages/@aws-cdk/aws-apprunner-alpha/lib/observability-configuration.ts index d8bcc299234db..39548e366f546 100644 --- a/packages/@aws-cdk/aws-apprunner-alpha/lib/observability-configuration.ts +++ b/packages/@aws-cdk/aws-apprunner-alpha/lib/observability-configuration.ts @@ -98,6 +98,28 @@ export class ObservabilityConfiguration extends cdk.Resource implements IObserva return new Import(scope, id); } + /** + * Imports an App Runner Observability Configuration from its ARN + */ + public static fromArn(scope: Construct, id: string, observabilityConfigurationArn: string): IObservabilityConfiguration { + const arn = cdk.Stack.of(scope).splitArn(observabilityConfigurationArn, cdk.ArnFormat.SLASH_RESOURCE_NAME); + + const resourceParts = arn.resourceName?.split('/'); + + if (!resourceParts || resourceParts.length < 3) { + throw new Error(`Unexpected ARN format: ${observabilityConfigurationArn}`); + } + + const observabilityConfigurationName = resourceParts[0]; + const observabilityConfigurationRevision = parseInt(resourceParts[1]); + + return ObservabilityConfiguration.fromObservabilityConfigurationAttributes(scope, id, { + observabilityConfigurationArn, + observabilityConfigurationName, + observabilityConfigurationRevision, + }); + } + /** * The ARN of the Observability configuration. * @attribute