From c4002bf9a0498abee6af8122c799b4d2eebd0de3 Mon Sep 17 00:00:00 2001 From: maz Date: Wed, 29 May 2024 08:51:42 +0900 Subject: [PATCH] feat: add fromArn method --- .../lib/observability-configuration.ts | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) 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