@go-to-k/cdkd 0.257.4 → 0.259.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import { $ as getBootstrapMarkerKey, A as refStateLookupFromResource, At as resolveBucketRegion, B as S3StateBackend, Bt as LocalMigrateError, C as findActionableSilentDrops, Ct as CFN_TEMPLATE_URL_LIMIT, D as isTerminationProtectionPropagationError, Dt as expectedOwnerParam, E as disableInstanceApiTermination, Et as uploadCfnTemplate, F as applyRoleArnIfSet, G as WorkGraph, Gt as PartialFailureError, H as shouldRetainResource, I as DiffCalculator, It as CdkdError, J as loadPublishableAssetManifest, Jt as ResourceUpdateNotSupportedError, K as buildAssetRedirectMap, Kt as ProvisioningError, L as DagBuilder, M as normalizeAwsTagsToCfn, Mt as getAwsClients, N as resolveExplicitPhysicalId, Nt as resetAwsClients, O as IntrinsicFunctionResolver, Ot as AssemblyReader, P as assertRegionMatch, Pt as setAwsClients, Q as ensureAssetStorage, R as TemplateParser, S as ProviderRegistry, St as CFN_TEMPLATE_BODY_LIMIT, T as slowCcOperationTimeoutMs, Tt as findLargeInlineResources, U as AssetPublisher, Ut as MissingCdkCliError, V as rebuildClientForBucketRegion, Vt as LocalStartServiceError, W as stringifyValue, Wt as NestedStackChildDirectDestroyError, X as AssetModeResolver, Xt as StackTerminationProtectionError, Y as rewriteTemplateAssetReferences, Yt as StackHasActiveImportsError, Z as BOOTSTRAP_MARKER_PREFIX, _ as green, _t as resolveSkipPrefix, a as withRetry, at as getDockerCmd, b as IAMRoleProvider, bt as resolveUseCdkBootstrapAssets, c as computeImplicitDeleteEdges, ct as AssetManifestLoader, d as isStatefulRecreateTargetSync, dt as synthesisStatusMessage, et as parseBootstrapMarker, f as renderStatefulReason, ft as getDefaultStateBucketName, g as gray, gt as resolveCaptureObservedState, h as cyan, ht as resolveAutoAssetStorage, i as withResourceDeadline, it as formatDockerLoginError, j as WAFv2WebACLProvider, jt as AwsClients, k as cfnRefValueFromPhysicalId, l as extractDeploymentEventError, lt as getDockerImageBySourceHash, m as bold, mt as resolveApp, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as withErrorHandling, nt as validateContainerRepoName, o as isRetryableTransientError, ot as runDockerForeground, p as formatResourceLine, pt as getLegacyStateBucketName, q as createAssetRedirectResolver, qt as ResourceTimeoutError, r as DeployEngine, rt as buildDockerImage, s as IMPLICIT_DELETE_DEPENDENCIES, st as runDockerStreaming, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as normalizeAwsError, tt as validateAssetBucketName, u as MULTI_REGION_RECREATE_BLOCKED_TYPES, ut as Synthesizer, v as red, vt as resolveStateBucketWithDefault, w as CloudControlProvider, wt as MIGRATE_TMP_PREFIX, x as collectInlinePolicyNamesManagedBySiblings, xt as warnDeprecatedNoPrefixCliFlag, y as yellow, yt as resolveStateBucketWithDefaultAndSource, z as LockManager, zt as LocalInvokeBuildError$1 } from "./deploy-engine-DMpr3qtv.js";
2
+ import { $ as getBootstrapMarkerKey, A as refStateLookupFromResource, At as resolveBucketRegion, B as S3StateBackend, Bt as LocalMigrateError, C as findActionableSilentDrops, Ct as CFN_TEMPLATE_URL_LIMIT, D as isTerminationProtectionPropagationError, Dt as expectedOwnerParam, E as disableInstanceApiTermination, Et as uploadCfnTemplate, F as applyRoleArnIfSet, G as WorkGraph, Gt as PartialFailureError, H as shouldRetainResource, I as DiffCalculator, It as CdkdError, J as loadPublishableAssetManifest, Jt as ResourceUpdateNotSupportedError, K as buildAssetRedirectMap, Kt as ProvisioningError, L as DagBuilder, M as normalizeAwsTagsToCfn, Mt as getAwsClients, N as resolveExplicitPhysicalId, Nt as resetAwsClients, O as IntrinsicFunctionResolver, Ot as AssemblyReader, P as assertRegionMatch, Pt as setAwsClients, Q as ensureAssetStorage, R as TemplateParser, S as ProviderRegistry, St as CFN_TEMPLATE_BODY_LIMIT, T as slowCcOperationTimeoutMs, Tt as findLargeInlineResources, U as AssetPublisher, Ut as MissingCdkCliError, V as rebuildClientForBucketRegion, Vt as LocalStartServiceError, W as stringifyValue, Wt as NestedStackChildDirectDestroyError, X as AssetModeResolver, Xt as StackTerminationProtectionError, Y as rewriteTemplateAssetReferences, Yt as StackHasActiveImportsError, Z as BOOTSTRAP_MARKER_PREFIX, _ as green, _t as resolveSkipPrefix, a as withRetry, at as getDockerCmd, b as IAMRoleProvider, bt as resolveUseCdkBootstrapAssets, c as computeImplicitDeleteEdges, ct as AssetManifestLoader, d as isStatefulRecreateTargetSync, dt as synthesisStatusMessage, et as parseBootstrapMarker, f as renderStatefulReason, ft as getDefaultStateBucketName, g as gray, gt as resolveCaptureObservedState, h as cyan, ht as resolveAutoAssetStorage, i as withResourceDeadline, it as formatDockerLoginError, j as WAFv2WebACLProvider, jt as AwsClients, k as cfnRefValueFromPhysicalId, l as extractDeploymentEventError, lt as getDockerImageBySourceHash, m as bold, mt as resolveApp, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as withErrorHandling, nt as validateContainerRepoName, o as isRetryableTransientError, ot as runDockerForeground, p as formatResourceLine, pt as getLegacyStateBucketName, q as createAssetRedirectResolver, qt as ResourceTimeoutError, r as DeployEngine, rt as buildDockerImage, s as IMPLICIT_DELETE_DEPENDENCIES, st as runDockerStreaming, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as normalizeAwsError, tt as validateAssetBucketName, u as MULTI_REGION_RECREATE_BLOCKED_TYPES, ut as Synthesizer, v as red, vt as resolveStateBucketWithDefault, w as CloudControlProvider, wt as MIGRATE_TMP_PREFIX, x as collectInlinePolicyNamesManagedBySiblings, xt as warnDeprecatedNoPrefixCliFlag, y as yellow, yt as resolveStateBucketWithDefaultAndSource, z as LockManager, zt as LocalInvokeBuildError$1 } from "./deploy-engine-Dg51mHCV.js";
3
3
  import { a as getLiveRenderer, c as PATTERN_B_RESOURCE_TYPES, d as generateResourceNameWithFallback, f as withSkipPrefix, i as runStackBuffered, n as getLogger, o as PATTERN_B_NAME_OPTIONS, p as withStackName, s as PATTERN_B_NAME_PROPERTIES, u as generateResourceName } from "./logger-BYMEE-BS.js";
4
- import { t as ASGProvider } from "./asg-provider-BhmMKcnJ.js";
4
+ import { t as ASGProvider } from "./asg-provider-rcNqhfPS.js";
5
5
  import { AsyncLocalStorage } from "node:async_hooks";
6
6
  import { createHash, randomBytes, randomUUID } from "node:crypto";
7
7
  import { CopyObjectCommand, CreateBucketCommand, DeleteBucketAnalyticsConfigurationCommand, DeleteBucketCommand, DeleteBucketCorsCommand, DeleteBucketIntelligentTieringConfigurationCommand, DeleteBucketInventoryConfigurationCommand, DeleteBucketLifecycleCommand, DeleteBucketMetricsConfigurationCommand, DeleteBucketPolicyCommand, DeleteBucketReplicationCommand, DeleteBucketTaggingCommand, DeleteBucketWebsiteCommand, DeleteObjectsCommand, GetBucketAccelerateConfigurationCommand, GetBucketCorsCommand, GetBucketEncryptionCommand, GetBucketLifecycleConfigurationCommand, GetBucketLocationCommand, GetBucketLoggingCommand, GetBucketNotificationConfigurationCommand, GetBucketPolicyCommand, GetBucketReplicationCommand, GetBucketTaggingCommand, GetBucketVersioningCommand, GetBucketWebsiteCommand, GetObjectCommand, GetObjectLockConfigurationCommand, GetPublicAccessBlockCommand, HeadBucketCommand, ListBucketAnalyticsConfigurationsCommand, ListBucketIntelligentTieringConfigurationsCommand, ListBucketInventoryConfigurationsCommand, ListBucketMetricsConfigurationsCommand, ListObjectVersionsCommand, ListObjectsV2Command, NoSuchBucket, PutBucketAccelerateConfigurationCommand, PutBucketAnalyticsConfigurationCommand, PutBucketCorsCommand, PutBucketEncryptionCommand, PutBucketIntelligentTieringConfigurationCommand, PutBucketInventoryConfigurationCommand, PutBucketLifecycleConfigurationCommand, PutBucketLoggingCommand, PutBucketMetricsConfigurationCommand, PutBucketNotificationConfigurationCommand, PutBucketOwnershipControlsCommand, PutBucketPolicyCommand, PutBucketReplicationCommand, PutBucketTaggingCommand, PutBucketVersioningCommand, PutBucketWebsiteCommand, PutObjectCommand, PutObjectLockConfigurationCommand, PutPublicAccessBlockCommand, S3Client, S3ServiceException } from "@aws-sdk/client-s3";
@@ -22,6 +22,7 @@ import { CloudWatchClient, DeleteAlarmsCommand, DescribeAlarmsCommand, ListTagsF
22
22
  import { AssociateKmsKeyCommand, CloudWatchLogsClient, CreateLogGroupCommand, DeleteDataProtectionPolicyCommand, DeleteIndexPolicyCommand, DeleteLogGroupCommand, DeleteRetentionPolicyCommand, DescribeIndexPoliciesCommand, DescribeLogGroupsCommand, DisassociateKmsKeyCommand, GetDataProtectionPolicyCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$5, PutBearerTokenAuthenticationCommand, PutDataProtectionPolicyCommand, PutIndexPolicyCommand, PutLogGroupDeletionProtectionCommand, PutRetentionPolicyCommand, ResourceAlreadyExistsException, ResourceNotFoundException as ResourceNotFoundException$4, TagResourceCommand as TagResourceCommand$8, UntagResourceCommand as UntagResourceCommand$8 } from "@aws-sdk/client-cloudwatch-logs";
23
23
  import { BedrockAgentCoreControlClient, CreateAgentRuntimeCommand, CreateEvaluatorCommand, DeleteAgentRuntimeCommand, DeleteEvaluatorCommand, GetAgentRuntimeCommand, GetBrowserCommand, GetCodeInterpreterCommand, GetEvaluatorCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$6, ResourceNotFoundException as ResourceNotFoundException$5, TagResourceCommand as TagResourceCommand$9, UntagResourceCommand as UntagResourceCommand$9, UpdateAgentRuntimeCommand, UpdateEvaluatorCommand } from "@aws-sdk/client-bedrock-agentcore-control";
24
24
  import { ACMClient, AddTagsToCertificateCommand, DeleteCertificateCommand, DescribeCertificateCommand, ListTagsForCertificateCommand, RemoveTagsFromCertificateCommand, RequestCertificateCommand, ResourceNotFoundException as ResourceNotFoundException$6, UpdateCertificateOptionsCommand } from "@aws-sdk/client-acm";
25
+ import { CreateMicrovmImageCommand, DeleteMicrovmImageCommand, GetMicrovmImageCommand, LambdaMicrovmsClient, ResourceNotFoundException as ResourceNotFoundException$7, TagResourceCommand as TagResourceCommand$10, UntagResourceCommand as UntagResourceCommand$10, UpdateMicrovmImageCommand } from "@aws-sdk/client-lambda-microvms";
25
26
  import * as fs from "node:fs";
26
27
  import { cpSync, existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, rmSync, statSync, writeFileSync } from "node:fs";
27
28
  import * as path from "node:path";
@@ -30,9 +31,9 @@ import { execFile, spawn } from "node:child_process";
30
31
  import { tmpdir } from "node:os";
31
32
  import { AssociateVPCWithHostedZoneCommand, ChangeResourceRecordSetsCommand, ChangeTagsForResourceCommand, CreateHostedZoneCommand, CreateQueryLoggingConfigCommand, DeleteHostedZoneCommand, DeleteQueryLoggingConfigCommand, DisassociateVPCFromHostedZoneCommand, GetHostedZoneCommand, ListHostedZonesByNameCommand, ListQueryLoggingConfigsCommand, ListResourceRecordSetsCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$7, Route53Client, UpdateHostedZoneCommentCommand, UpdateHostedZoneFeaturesCommand } from "@aws-sdk/client-route-53";
32
33
  import { AddTagsCommand, CreateListenerCommand, CreateLoadBalancerCommand, CreateTargetGroupCommand, DeleteListenerCommand, DeleteLoadBalancerCommand, DeleteTargetGroupCommand, DescribeListenerAttributesCommand, DescribeListenersCommand, DescribeLoadBalancerAttributesCommand, DescribeLoadBalancersCommand, DescribeTagsCommand, DescribeTargetGroupsCommand, ElasticLoadBalancingV2Client, ModifyListenerAttributesCommand, ModifyListenerCommand, ModifyLoadBalancerAttributesCommand, ModifyTargetGroupCommand, RemoveTagsCommand, SetIpAddressTypeCommand, SetSecurityGroupsCommand, SetSubnetsCommand } from "@aws-sdk/client-elastic-load-balancing-v2";
33
- import { CreateAliasCommand, CreateKeyCommand, DeleteAliasCommand, DescribeKeyCommand, DisableKeyCommand, DisableKeyRotationCommand, EnableKeyCommand, EnableKeyRotationCommand, GetKeyPolicyCommand, GetKeyRotationStatusCommand, KMSClient, ListAliasesCommand, ListResourceTagsCommand, NotFoundException as NotFoundException$2, PutKeyPolicyCommand, ScheduleKeyDeletionCommand, TagResourceCommand as TagResourceCommand$10, UntagResourceCommand as UntagResourceCommand$10, UpdateAliasCommand, UpdateKeyDescriptionCommand } from "@aws-sdk/client-kms";
34
+ import { CreateAliasCommand, CreateKeyCommand, DeleteAliasCommand, DescribeKeyCommand, DisableKeyCommand, DisableKeyRotationCommand, EnableKeyCommand, EnableKeyRotationCommand, GetKeyPolicyCommand, GetKeyRotationStatusCommand, KMSClient, ListAliasesCommand, ListResourceTagsCommand, NotFoundException as NotFoundException$2, PutKeyPolicyCommand, ScheduleKeyDeletionCommand, TagResourceCommand as TagResourceCommand$11, UntagResourceCommand as UntagResourceCommand$11, UpdateAliasCommand, UpdateKeyDescriptionCommand } from "@aws-sdk/client-kms";
34
35
  import { join as join$1 } from "path";
35
- import { BatchDeleteImageCommand, CreateRepositoryCommand, DeleteLifecyclePolicyCommand, DeleteRepositoryCommand, DeleteRepositoryPolicyCommand, DescribeImagesCommand as DescribeImagesCommand$1, DescribeRepositoriesCommand, ECRClient, GetAuthorizationTokenCommand, GetLifecyclePolicyCommand, LifecyclePolicyNotFoundException, ListTagsForResourceCommand as ListTagsForResourceCommand$8, PutImageScanningConfigurationCommand, PutImageTagMutabilityCommand, PutLifecyclePolicyCommand, RepositoryNotFoundException, SetRepositoryPolicyCommand, TagResourceCommand as TagResourceCommand$11, UntagResourceCommand as UntagResourceCommand$11 } from "@aws-sdk/client-ecr";
36
+ import { BatchDeleteImageCommand, CreateRepositoryCommand, DeleteLifecyclePolicyCommand, DeleteRepositoryCommand, DeleteRepositoryPolicyCommand, DescribeImagesCommand as DescribeImagesCommand$1, DescribeRepositoriesCommand, ECRClient, GetAuthorizationTokenCommand, GetLifecyclePolicyCommand, LifecyclePolicyNotFoundException, ListTagsForResourceCommand as ListTagsForResourceCommand$8, PutImageScanningConfigurationCommand, PutImageTagMutabilityCommand, PutLifecyclePolicyCommand, RepositoryNotFoundException, SetRepositoryPolicyCommand, TagResourceCommand as TagResourceCommand$12, UntagResourceCommand as UntagResourceCommand$12 } from "@aws-sdk/client-ecr";
36
37
  import graphlib from "graphlib";
37
38
  import { AddTagsToResourceCommand as AddTagsToResourceCommand$1, CreateDBClusterCommand, CreateDBInstanceCommand, CreateDBProxyCommand, CreateDBProxyEndpointCommand, CreateDBSubnetGroupCommand, DBProxyEndpointNotFoundFault, DBProxyNotFoundFault, DBProxyTargetGroupNotFoundFault, DBProxyTargetNotFoundFault, DeleteDBClusterCommand, DeleteDBInstanceCommand, DeleteDBProxyCommand, DeleteDBProxyEndpointCommand, DeleteDBSubnetGroupCommand, DeregisterDBProxyTargetsCommand, DescribeDBClustersCommand, DescribeDBInstancesCommand, DescribeDBProxiesCommand, DescribeDBProxyEndpointsCommand, DescribeDBProxyTargetGroupsCommand, DescribeDBProxyTargetsCommand, DescribeDBSubnetGroupsCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$9, ModifyDBClusterCommand, ModifyDBInstanceCommand, ModifyDBProxyCommand, ModifyDBProxyEndpointCommand, ModifyDBProxyTargetGroupCommand, ModifyDBSubnetGroupCommand, RDSClient, RegisterDBProxyTargetsCommand, RemoveTagsFromResourceCommand as RemoveTagsFromResourceCommand$1 } from "@aws-sdk/client-rds";
38
39
  import { AddTagsToResourceCommand as AddTagsToResourceCommand$2, CreateCacheClusterCommand, CreateCacheSubnetGroupCommand, DeleteCacheClusterCommand, DeleteCacheSubnetGroupCommand, DescribeCacheClustersCommand, DescribeCacheSubnetGroupsCommand, ElastiCacheClient, ListTagsForResourceCommand as ListTagsForResourceCommand$10, ModifyCacheClusterCommand, ModifyCacheSubnetGroupCommand, RemoveTagsFromResourceCommand as RemoveTagsFromResourceCommand$2 } from "@aws-sdk/client-elasticache";
@@ -43,29 +44,29 @@ import { writeFileSync as writeFileSync$1 } from "fs";
43
44
  import * as zlib from "node:zlib";
44
45
  import { ApplicationAutoScalingClient, DeleteScalingPolicyCommand, DeregisterScalableTargetCommand, DescribeScalableTargetsCommand, DescribeScalingPoliciesCommand, PutScalingPolicyCommand, RegisterScalableTargetCommand } from "@aws-sdk/client-application-auto-scaling";
45
46
  import { ApiGatewayV2Client, CreateApiCommand, CreateAuthorizerCommand as CreateAuthorizerCommand$1, CreateIntegrationCommand, CreateRouteCommand as CreateRouteCommand$1, CreateStageCommand as CreateStageCommand$1, DeleteApiCommand, DeleteAuthorizerCommand as DeleteAuthorizerCommand$1, DeleteIntegrationCommand, DeleteRouteCommand as DeleteRouteCommand$1, DeleteStageCommand as DeleteStageCommand$1, GetApiCommand, GetAuthorizerCommand as GetAuthorizerCommand$1, GetIntegrationCommand, GetRouteCommand, GetStageCommand as GetStageCommand$1, NotFoundException as NotFoundException$3, UpdateApiCommand, UpdateAuthorizerCommand as UpdateAuthorizerCommand$1, UpdateIntegrationCommand, UpdateRouteCommand, UpdateStageCommand as UpdateStageCommand$1 } from "@aws-sdk/client-apigatewayv2";
46
- import { CreateStateMachineCommand, DeleteStateMachineCommand, DescribeStateMachineCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$11, SFNClient, StateMachineDoesNotExist, TagResourceCommand as TagResourceCommand$12, UntagResourceCommand as UntagResourceCommand$12, UpdateStateMachineCommand } from "@aws-sdk/client-sfn";
47
- import { CreateClusterCommand, CreateServiceCommand, DeleteClusterCommand, DeleteServiceCommand, DeregisterTaskDefinitionCommand, DescribeClustersCommand, DescribeServicesCommand, DescribeTaskDefinitionCommand, ECSClient, PutClusterCapacityProvidersCommand, RegisterTaskDefinitionCommand, TagResourceCommand as TagResourceCommand$13, UntagResourceCommand as UntagResourceCommand$13, UpdateClusterCommand, UpdateServiceCommand } from "@aws-sdk/client-ecs";
47
+ import { CreateStateMachineCommand, DeleteStateMachineCommand, DescribeStateMachineCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$11, SFNClient, StateMachineDoesNotExist, TagResourceCommand as TagResourceCommand$13, UntagResourceCommand as UntagResourceCommand$13, UpdateStateMachineCommand } from "@aws-sdk/client-sfn";
48
+ import { CreateClusterCommand, CreateServiceCommand, DeleteClusterCommand, DeleteServiceCommand, DeregisterTaskDefinitionCommand, DescribeClustersCommand, DescribeServicesCommand, DescribeTaskDefinitionCommand, ECSClient, PutClusterCapacityProvidersCommand, RegisterTaskDefinitionCommand, TagResourceCommand as TagResourceCommand$14, UntagResourceCommand as UntagResourceCommand$14, UpdateClusterCommand, UpdateServiceCommand } from "@aws-sdk/client-ecs";
48
49
  import { AddTagsToResourceCommand as AddTagsToResourceCommand$3, CreateDBClusterCommand as CreateDBClusterCommand$1, CreateDBInstanceCommand as CreateDBInstanceCommand$1, CreateDBSubnetGroupCommand as CreateDBSubnetGroupCommand$1, DeleteDBClusterCommand as DeleteDBClusterCommand$1, DeleteDBInstanceCommand as DeleteDBInstanceCommand$1, DeleteDBSubnetGroupCommand as DeleteDBSubnetGroupCommand$1, DescribeDBClustersCommand as DescribeDBClustersCommand$1, DescribeDBInstancesCommand as DescribeDBInstancesCommand$1, DescribeDBSubnetGroupsCommand as DescribeDBSubnetGroupsCommand$1, DocDBClient, ListTagsForResourceCommand as ListTagsForResourceCommand$12, ModifyDBClusterCommand as ModifyDBClusterCommand$1, ModifyDBInstanceCommand as ModifyDBInstanceCommand$1, ModifyDBSubnetGroupCommand as ModifyDBSubnetGroupCommand$1, RemoveTagsFromResourceCommand as RemoveTagsFromResourceCommand$3 } from "@aws-sdk/client-docdb";
49
50
  import { AddTagsToResourceCommand as AddTagsToResourceCommand$4, CreateDBClusterCommand as CreateDBClusterCommand$2, CreateDBInstanceCommand as CreateDBInstanceCommand$2, CreateDBSubnetGroupCommand as CreateDBSubnetGroupCommand$2, DeleteDBClusterCommand as DeleteDBClusterCommand$2, DeleteDBInstanceCommand as DeleteDBInstanceCommand$2, DeleteDBSubnetGroupCommand as DeleteDBSubnetGroupCommand$2, DescribeDBClustersCommand as DescribeDBClustersCommand$2, DescribeDBInstancesCommand as DescribeDBInstancesCommand$2, DescribeDBSubnetGroupsCommand as DescribeDBSubnetGroupsCommand$2, ListTagsForResourceCommand as ListTagsForResourceCommand$13, ModifyDBClusterCommand as ModifyDBClusterCommand$2, ModifyDBInstanceCommand as ModifyDBInstanceCommand$2, ModifyDBSubnetGroupCommand as ModifyDBSubnetGroupCommand$2, NeptuneClient, RemoveTagsFromResourceCommand as RemoveTagsFromResourceCommand$4 } from "@aws-sdk/client-neptune";
50
- import { AddCustomAttributesCommand, CognitoIdentityProviderClient, CreateUserPoolCommand, DeleteUserPoolCommand, DescribeUserPoolCommand, GetUserPoolMfaConfigCommand, ListUserPoolsCommand, ResourceNotFoundException as ResourceNotFoundException$7, SetUserPoolMfaConfigCommand, UpdateUserPoolCommand } from "@aws-sdk/client-cognito-identity-provider";
51
- import { CreateHttpNamespaceCommand, CreatePrivateDnsNamespaceCommand, CreatePublicDnsNamespaceCommand, CreateServiceCommand as CreateServiceCommand$1, DeleteNamespaceCommand, DeleteServiceAttributesCommand, DeleteServiceCommand as DeleteServiceCommand$1, GetNamespaceCommand, GetOperationCommand, GetServiceAttributesCommand, GetServiceCommand, ListNamespacesCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$14, NamespaceNotFound, ServiceDiscoveryClient, ServiceNotFound, TagResourceCommand as TagResourceCommand$14, UntagResourceCommand as UntagResourceCommand$14, UpdateHttpNamespaceCommand, UpdatePrivateDnsNamespaceCommand, UpdatePublicDnsNamespaceCommand, UpdateServiceAttributesCommand, UpdateServiceCommand as UpdateServiceCommand$1 } from "@aws-sdk/client-servicediscovery";
52
- import { AppSyncClient, CreateApiKeyCommand, CreateDataSourceCommand, CreateGraphqlApiCommand, CreateResolverCommand, DeleteApiKeyCommand, DeleteDataSourceCommand, DeleteGraphqlApiCommand, DeleteResolverCommand, GetDataSourceCommand, GetGraphqlApiCommand, GetIntrospectionSchemaCommand, GetResolverCommand, ListApiKeysCommand, NotFoundException as NotFoundException$4, StartSchemaCreationCommand, TagResourceCommand as TagResourceCommand$15, UntagResourceCommand as UntagResourceCommand$15, UpdateApiKeyCommand, UpdateDataSourceCommand, UpdateGraphqlApiCommand, UpdateResolverCommand } from "@aws-sdk/client-appsync";
51
+ import { AddCustomAttributesCommand, CognitoIdentityProviderClient, CreateUserPoolCommand, DeleteUserPoolCommand, DescribeUserPoolCommand, GetUserPoolMfaConfigCommand, ListUserPoolsCommand, ResourceNotFoundException as ResourceNotFoundException$8, SetUserPoolMfaConfigCommand, UpdateUserPoolCommand } from "@aws-sdk/client-cognito-identity-provider";
52
+ import { CreateHttpNamespaceCommand, CreatePrivateDnsNamespaceCommand, CreatePublicDnsNamespaceCommand, CreateServiceCommand as CreateServiceCommand$1, DeleteNamespaceCommand, DeleteServiceAttributesCommand, DeleteServiceCommand as DeleteServiceCommand$1, GetNamespaceCommand, GetOperationCommand, GetServiceAttributesCommand, GetServiceCommand, ListNamespacesCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$14, NamespaceNotFound, ServiceDiscoveryClient, ServiceNotFound, TagResourceCommand as TagResourceCommand$15, UntagResourceCommand as UntagResourceCommand$15, UpdateHttpNamespaceCommand, UpdatePrivateDnsNamespaceCommand, UpdatePublicDnsNamespaceCommand, UpdateServiceAttributesCommand, UpdateServiceCommand as UpdateServiceCommand$1 } from "@aws-sdk/client-servicediscovery";
53
+ import { AppSyncClient, CreateApiKeyCommand, CreateDataSourceCommand, CreateGraphqlApiCommand, CreateResolverCommand, DeleteApiKeyCommand, DeleteDataSourceCommand, DeleteGraphqlApiCommand, DeleteResolverCommand, GetDataSourceCommand, GetGraphqlApiCommand, GetIntrospectionSchemaCommand, GetResolverCommand, ListApiKeysCommand, NotFoundException as NotFoundException$4, StartSchemaCreationCommand, TagResourceCommand as TagResourceCommand$16, UntagResourceCommand as UntagResourceCommand$16, UpdateApiKeyCommand, UpdateDataSourceCommand, UpdateGraphqlApiCommand, UpdateResolverCommand } from "@aws-sdk/client-appsync";
53
54
  import { parse, print } from "graphql";
54
55
  import { CrawlerRunningException, CreateConnectionCommand, CreateCrawlerCommand, CreateDatabaseCommand, CreateJobCommand, CreateSecurityConfigurationCommand, CreateTableCommand as CreateTableCommand$1, CreateTriggerCommand, CreateWorkflowCommand, DeleteConnectionCommand, DeleteCrawlerCommand, DeleteDatabaseCommand, DeleteJobCommand, DeleteSecurityConfigurationCommand, DeleteTableCommand as DeleteTableCommand$1, DeleteTriggerCommand, DeleteWorkflowCommand, EntityNotFoundException, GetConnectionCommand, GetCrawlerCommand, GetDatabaseCommand, GetJobCommand, GetSecurityConfigurationCommand, GetTableCommand, GetTagsCommand, GetTriggerCommand, GetWorkflowCommand, GlueClient, StartCrawlerScheduleCommand, StartTriggerCommand, StopCrawlerCommand, StopCrawlerScheduleCommand, StopTriggerCommand, UpdateConnectionCommand, UpdateCrawlerCommand, UpdateDatabaseCommand, UpdateJobCommand, UpdateTableCommand as UpdateTableCommand$1, UpdateTriggerCommand, UpdateWorkflowCommand } from "@aws-sdk/client-glue";
55
- import { BudgetsClient, CreateBudgetCommand, CreateNotificationCommand, CreateSubscriberCommand, DeleteBudgetCommand, DeleteNotificationCommand, DeleteSubscriberCommand, DescribeBudgetCommand, DuplicateRecordException, NotFoundException as NotFoundException$5, TagResourceCommand as TagResourceCommand$16, UntagResourceCommand as UntagResourceCommand$16, UpdateBudgetCommand } from "@aws-sdk/client-budgets";
56
- import { AddTagsToStreamCommand, CreateStreamCommand, DecreaseStreamRetentionPeriodCommand, DeleteStreamCommand, DeregisterStreamConsumerCommand, DescribeStreamCommand, DescribeStreamConsumerCommand, DescribeStreamSummaryCommand, IncreaseStreamRetentionPeriodCommand, KinesisClient, ListTagsForResourceCommand as ListTagsForResourceCommand$15, ListTagsForStreamCommand, RegisterStreamConsumerCommand, RemoveTagsFromStreamCommand, ResourceNotFoundException as ResourceNotFoundException$8, StartStreamEncryptionCommand, StopStreamEncryptionCommand, TagResourceCommand as TagResourceCommand$17, UntagResourceCommand as UntagResourceCommand$17, UpdateShardCountCommand, UpdateStreamModeCommand } from "@aws-sdk/client-kinesis";
57
- import { CreateScheduleCommand, DeleteScheduleCommand, GetScheduleCommand, ResourceNotFoundException as ResourceNotFoundException$9, SchedulerClient, UpdateScheduleCommand } from "@aws-sdk/client-scheduler";
56
+ import { BudgetsClient, CreateBudgetCommand, CreateNotificationCommand, CreateSubscriberCommand, DeleteBudgetCommand, DeleteNotificationCommand, DeleteSubscriberCommand, DescribeBudgetCommand, DuplicateRecordException, NotFoundException as NotFoundException$5, TagResourceCommand as TagResourceCommand$17, UntagResourceCommand as UntagResourceCommand$17, UpdateBudgetCommand } from "@aws-sdk/client-budgets";
57
+ import { AddTagsToStreamCommand, CreateStreamCommand, DecreaseStreamRetentionPeriodCommand, DeleteStreamCommand, DeregisterStreamConsumerCommand, DescribeStreamCommand, DescribeStreamConsumerCommand, DescribeStreamSummaryCommand, IncreaseStreamRetentionPeriodCommand, KinesisClient, ListTagsForResourceCommand as ListTagsForResourceCommand$15, ListTagsForStreamCommand, RegisterStreamConsumerCommand, RemoveTagsFromStreamCommand, ResourceNotFoundException as ResourceNotFoundException$9, StartStreamEncryptionCommand, StopStreamEncryptionCommand, TagResourceCommand as TagResourceCommand$18, UntagResourceCommand as UntagResourceCommand$18, UpdateShardCountCommand, UpdateStreamModeCommand } from "@aws-sdk/client-kinesis";
58
+ import { CreateScheduleCommand, DeleteScheduleCommand, GetScheduleCommand, ResourceNotFoundException as ResourceNotFoundException$10, SchedulerClient, UpdateScheduleCommand } from "@aws-sdk/client-scheduler";
58
59
  import { AccessPointNotFound, CreateAccessPointCommand, CreateFileSystemCommand, CreateMountTargetCommand, DeleteAccessPointCommand, DeleteFileSystemCommand, DeleteMountTargetCommand, DescribeAccessPointsCommand, DescribeBackupPolicyCommand, DescribeFileSystemPolicyCommand, DescribeFileSystemsCommand, DescribeLifecycleConfigurationCommand, DescribeMountTargetSecurityGroupsCommand, DescribeMountTargetsCommand, EFSClient, FileSystemNotFound, ModifyMountTargetSecurityGroupsCommand, MountTargetNotFound, PutBackupPolicyCommand, PutFileSystemPolicyCommand, PutLifecycleConfigurationCommand, UpdateFileSystemCommand, UpdateFileSystemProtectionCommand } from "@aws-sdk/client-efs";
59
- import { CreateFileSystemCommand as CreateFileSystemCommand$1, CreateFileSystemFromBackupCommand, DeleteFileSystemCommand as DeleteFileSystemCommand$1, DescribeFileSystemsCommand as DescribeFileSystemsCommand$1, FSxClient, FileSystemNotFound as FileSystemNotFound$1, TagResourceCommand as TagResourceCommand$18, UntagResourceCommand as UntagResourceCommand$18, UpdateFileSystemCommand as UpdateFileSystemCommand$1 } from "@aws-sdk/client-fsx";
60
+ import { CreateFileSystemCommand as CreateFileSystemCommand$1, CreateFileSystemFromBackupCommand, DeleteFileSystemCommand as DeleteFileSystemCommand$1, DescribeFileSystemsCommand as DescribeFileSystemsCommand$1, FSxClient, FileSystemNotFound as FileSystemNotFound$1, TagResourceCommand as TagResourceCommand$19, UntagResourceCommand as UntagResourceCommand$19, UpdateFileSystemCommand as UpdateFileSystemCommand$1 } from "@aws-sdk/client-fsx";
60
61
  import { AddInstanceFleetCommand, AddInstanceGroupsCommand, AddTagsCommand as AddTagsCommand$1, DescribeClusterCommand, EMRClient, InvalidRequestException, ListInstanceFleetsCommand, ListInstanceGroupsCommand, ModifyClusterCommand, ModifyInstanceFleetCommand, ModifyInstanceGroupsCommand, PutAutoScalingPolicyCommand, PutAutoTerminationPolicyCommand, PutManagedScalingPolicyCommand, RemoveAutoScalingPolicyCommand, RemoveAutoTerminationPolicyCommand, RemoveManagedScalingPolicyCommand, RemoveTagsCommand as RemoveTagsCommand$1, RunJobFlowCommand, SetTerminationProtectionCommand, SetVisibleToAllUsersCommand, TerminateJobFlowsCommand } from "@aws-sdk/client-emr";
61
- import { CreateDeliveryStreamCommand, DeleteDeliveryStreamCommand, DescribeDeliveryStreamCommand, FirehoseClient, ListTagsForDeliveryStreamCommand, ResourceNotFoundException as ResourceNotFoundException$10, TagDeliveryStreamCommand, UntagDeliveryStreamCommand, UpdateDestinationCommand } from "@aws-sdk/client-firehose";
62
+ import { CreateDeliveryStreamCommand, DeleteDeliveryStreamCommand, DescribeDeliveryStreamCommand, FirehoseClient, ListTagsForDeliveryStreamCommand, ResourceNotFoundException as ResourceNotFoundException$11, TagDeliveryStreamCommand, UntagDeliveryStreamCommand, UpdateDestinationCommand } from "@aws-sdk/client-firehose";
62
63
  import { AddTagsCommand as AddTagsCommand$2, CloudTrailClient, CreateTrailCommand, DeleteTrailCommand, GetEventSelectorsCommand, GetInsightSelectorsCommand, GetTrailCommand, GetTrailStatusCommand, ListTagsCommand as ListTagsCommand$1, PutEventSelectorsCommand, PutInsightSelectorsCommand, RemoveTagsCommand as RemoveTagsCommand$2, StartLoggingCommand, StopLoggingCommand, TrailNotFoundException, UpdateTrailCommand } from "@aws-sdk/client-cloudtrail";
63
- import { BatchGetProjectsCommand, CodeBuildClient, CreateProjectCommand, DeleteProjectCommand, ResourceNotFoundException as ResourceNotFoundException$11, UpdateProjectCommand } from "@aws-sdk/client-codebuild";
64
- import { CodeCommitClient, CreateCommitCommand, CreateRepositoryCommand as CreateRepositoryCommand$1, DeleteRepositoryCommand as DeleteRepositoryCommand$1, GetRepositoryCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$16, PutRepositoryTriggersCommand, RepositoryDoesNotExistException, TagResourceCommand as TagResourceCommand$19, UntagResourceCommand as UntagResourceCommand$19, UpdateRepositoryDescriptionCommand, UpdateRepositoryEncryptionKeyCommand, UpdateRepositoryNameCommand } from "@aws-sdk/client-codecommit";
64
+ import { BatchGetProjectsCommand, CodeBuildClient, CreateProjectCommand, DeleteProjectCommand, ResourceNotFoundException as ResourceNotFoundException$12, UpdateProjectCommand } from "@aws-sdk/client-codebuild";
65
+ import { CodeCommitClient, CreateCommitCommand, CreateRepositoryCommand as CreateRepositoryCommand$1, DeleteRepositoryCommand as DeleteRepositoryCommand$1, GetRepositoryCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$16, PutRepositoryTriggersCommand, RepositoryDoesNotExistException, TagResourceCommand as TagResourceCommand$20, UntagResourceCommand as UntagResourceCommand$20, UpdateRepositoryDescriptionCommand, UpdateRepositoryEncryptionKeyCommand, UpdateRepositoryNameCommand } from "@aws-sdk/client-codecommit";
65
66
  import AdmZip from "adm-zip";
66
- import { CreateLifecyclePolicyCommand, DLMClient, DeleteLifecyclePolicyCommand as DeleteLifecyclePolicyCommand$1, GetLifecyclePolicyCommand as GetLifecyclePolicyCommand$1, ResourceNotFoundException as ResourceNotFoundException$12, TagResourceCommand as TagResourceCommand$20, UntagResourceCommand as UntagResourceCommand$20, UpdateLifecyclePolicyCommand } from "@aws-sdk/client-dlm";
67
- import { CreateVectorBucketCommand, DeleteIndexCommand, DeleteVectorBucketCommand, GetVectorBucketCommand, ListIndexesCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$17, S3VectorsClient, TagResourceCommand as TagResourceCommand$21, UntagResourceCommand as UntagResourceCommand$21 } from "@aws-sdk/client-s3vectors";
68
- import { CreateNamespaceCommand, CreateTableBucketCommand, CreateTableCommand as CreateTableCommand$2, DeleteNamespaceCommand as DeleteNamespaceCommand$1, DeleteTableBucketCommand, DeleteTableCommand as DeleteTableCommand$2, GetTableBucketCommand, GetTableCommand as GetTableCommand$1, ListNamespacesCommand as ListNamespacesCommand$1, ListTableBucketsCommand, ListTablesCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$18, NotFoundException as NotFoundException$6, S3TablesClient, TagResourceCommand as TagResourceCommand$22, UntagResourceCommand as UntagResourceCommand$22 } from "@aws-sdk/client-s3tables";
67
+ import { CreateLifecyclePolicyCommand, DLMClient, DeleteLifecyclePolicyCommand as DeleteLifecyclePolicyCommand$1, GetLifecyclePolicyCommand as GetLifecyclePolicyCommand$1, ResourceNotFoundException as ResourceNotFoundException$13, TagResourceCommand as TagResourceCommand$21, UntagResourceCommand as UntagResourceCommand$21, UpdateLifecyclePolicyCommand } from "@aws-sdk/client-dlm";
68
+ import { CreateVectorBucketCommand, DeleteIndexCommand, DeleteVectorBucketCommand, GetVectorBucketCommand, ListIndexesCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$17, S3VectorsClient, TagResourceCommand as TagResourceCommand$22, UntagResourceCommand as UntagResourceCommand$22 } from "@aws-sdk/client-s3vectors";
69
+ import { CreateNamespaceCommand, CreateTableBucketCommand, CreateTableCommand as CreateTableCommand$2, DeleteNamespaceCommand as DeleteNamespaceCommand$1, DeleteTableBucketCommand, DeleteTableCommand as DeleteTableCommand$2, GetTableBucketCommand, GetTableCommand as GetTableCommand$1, ListNamespacesCommand as ListNamespacesCommand$1, ListTableBucketsCommand, ListTablesCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$18, NotFoundException as NotFoundException$6, S3TablesClient, TagResourceCommand as TagResourceCommand$23, UntagResourceCommand as UntagResourceCommand$23 } from "@aws-sdk/client-s3tables";
69
70
  import { Document, Pair, Scalar, YAMLMap, YAMLSeq, parse as parse$1, stringify } from "yaml";
70
71
  import { createLocalStartAgentCoreCommand, createLocalStartCloudFrontCommand, createLocalStateProvider, getEmbedConfig, isCfnFlagPresent, listTargets, rejectExplicitCfnStackWithMultipleStacks, resolveCfnFallbackRegion, setEmbedConfig, substituteAgainstState, substituteAgainstStateAsync, substituteEnvVarsFromState, substituteEnvVarsFromStateAsync } from "cdk-local";
71
72
  import { A2A_CONTAINER_PORT, A2A_PATH, AGENTCORE_A2A_PROTOCOL, AGENTCORE_AGUI_PROTOCOL, AGENTCORE_MCP_PROTOCOL, ConnectionRegistry, EcsTaskResolutionError, HOST_GATEWAY_MIN_VERSION, LocalInvokeBuildError, MCP_CONTAINER_PORT, MCP_PATH, a2aInvokeOnce, addAlbSpecificOptions, addCommonEcsServiceOptions, addStartServiceSpecificOptions, albStrategy, architectureToPlatform, attachAuthorizers, attachStageContext, availableApiIdentifiers, bufferToBody, buildAgentCoreCodeImage, buildCognitoJwksUrl, buildConnectEvent, buildContainerImage, buildCorsConfigByApiId, buildCorsConfigFromCloudFrontChain, buildDisconnectEvent, buildJwksUrlFromIssuer, buildMessageEvent, buildMgmtEndpointEnvUrl, buildStageMap, classifySourceChange, createAuthorizerCache, createFileWatcher, createFileWatcher as createFileWatcher$1, createJwksCache, createWatchPredicates, defaultCredentialsLoader, derivePseudoParametersFromRegion, discoverRoutes, discoverWebSocketApis, downloadAndExtractS3Bundle, filterRoutesByApiIdentifier, groupRoutesByServer, handleConnectionsRequest, invokeAgentCore, invokeAgentCoreWs, materializeLayerFromArn, mcpInvokeOnce, parseConnectionsPath, parseSelectionExpressionPath, pickAgentCoreCandidateStack, pickAgentCoreCandidateStack as pickAgentCoreCandidateStack$1, probeHostGatewaySupport, readMtlsMaterialsFromDisk, resolveAgentCoreTarget, resolveEnvVars, resolveHostGatewayExtraHosts, resolveRuntimeCodeMountPath, resolveRuntimeFileExtension, resolveRuntimeImage, resolveSingleTarget, resolveWatchConfig, runEcsServiceEmulator, signAgentCoreInvocation, startApiServer, substituteImagePlaceholders, tryResolveImageFnJoin, verifyJwtViaDiscovery, waitForAgentCorePing } from "cdk-local/internal";
@@ -1900,7 +1901,7 @@ const FLUSH_INTERVAL_MS = 2e3;
1900
1901
  const FLUSH_EVENT_THRESHOLD = 50;
1901
1902
  /** Build-time cdkd version, with a dev fallback for non-built contexts. */
1902
1903
  function getCdkdVersion() {
1903
- return "0.257.4";
1904
+ return "0.259.0";
1904
1905
  }
1905
1906
  /**
1906
1907
  * Generate a time-sortable unique run id, e.g.
@@ -10392,6 +10393,418 @@ var LambdaEventInvokeConfigProvider = class {
10392
10393
  }
10393
10394
  };
10394
10395
 
10396
+ //#endregion
10397
+ //#region src/provisioning/providers/lambda-microvm-image-provider.ts
10398
+ /**
10399
+ * AWS Lambda MicroVM Image Provider
10400
+ *
10401
+ * Implements `AWS::Lambda::MicrovmImage` using the dedicated `lambda-microvms`
10402
+ * service SDK (`@aws-sdk/client-lambda-microvms`) — NOT `@aws-sdk/client-lambda`.
10403
+ * The MicroVM image APIs (`CreateMicrovmImage` / `GetMicrovmImage` /
10404
+ * `UpdateMicrovmImage` / `DeleteMicrovmImage`) live in their own service model.
10405
+ *
10406
+ * **The build is asynchronous.** `CreateMicrovmImage` returns immediately with
10407
+ * the image in `CREATING` state; Lambda then downloads the code artifact zip
10408
+ * from S3, runs the Dockerfile, starts the application, and captures a
10409
+ * Firecracker snapshot. The image reaches `CREATED` on success or
10410
+ * `CREATE_FAILED` on failure (build logs land in CloudWatch under
10411
+ * `/aws/lambda/microvms/<name>`). `create()` polls `GetMicrovmImage` until the
10412
+ * image reaches `CREATED`. `UpdateMicrovmImage` triggers the same async rebuild
10413
+ * (`UPDATING` -> `UPDATED` / `UPDATE_FAILED`).
10414
+ *
10415
+ * `CDKD_NO_WAIT=true` (or `cdkd deploy --no-wait`) short-circuits the create /
10416
+ * update poll and returns immediately with the image ARN. The build continues
10417
+ * asynchronously on the AWS side — cdkd will NOT observe a later
10418
+ * `CREATE_FAILED`, and an immediate `destroy` may race the in-flight build.
10419
+ * The Cloud Control fallback path does NOT honor `--no-wait` (it always polls
10420
+ * its request token to a terminal state), so this SDK provider is what makes
10421
+ * `--no-wait` effective for this resource type.
10422
+ *
10423
+ * **Physical id is the image ARN** (`primaryIdentifier` = `/properties/ImageArn`,
10424
+ * an AWS-assigned read-only attribute). CFn `Ref` returns the ARN. `Name` is a
10425
+ * create-only property, so a `Name` change is routed to REPLACEMENT by cdkd's
10426
+ * create-only detection (`getCreateOnlyPropertyPaths`) and never reaches
10427
+ * `update()`.
10428
+ *
10429
+ * **CFn <-> SDK shape translation.** The template carries CloudFormation-schema
10430
+ * PascalCase properties (e.g. `CodeArtifact: { Uri }`, `Tags: [{Key, Value}]`,
10431
+ * `Logging: { Disabled: true }`); the SDK expects camelCase with different
10432
+ * container shapes (`codeArtifact: { uri }`, `tags: Record<string,string>`,
10433
+ * `logging: { disabled: {} }`). The mapping helpers below translate each field
10434
+ * explicitly so this provider accepts the exact same template the Cloud Control
10435
+ * fallback would.
10436
+ *
10437
+ * **Tags update out-of-band.** `Tags` is `tagUpdatable` but is NOT a field on
10438
+ * `UpdateMicrovmImage`, so `update()` reconciles tag changes via `TagResource`
10439
+ * / `UntagResource` (no rebuild). A change limited to `Tags` skips the
10440
+ * `UpdateMicrovmImage` rebuild entirely; only a build-affecting property change
10441
+ * ({@link BUILD_AFFECTING_CFN_KEYS}) issues the async rebuild.
10442
+ */
10443
+ var LambdaMicrovmImageProvider = class {
10444
+ client;
10445
+ logger = getLogger().child("LambdaMicrovmImageProvider");
10446
+ maxPollAttempts = Number(process.env["CDKD_MICROVM_IMAGE_POLL_ATTEMPTS"] ?? 180);
10447
+ pollIntervalMs = Number(process.env["CDKD_MICROVM_IMAGE_POLL_INTERVAL_MS"] ?? 1e4);
10448
+ constructor() {
10449
+ this.client = getAwsClients().lambdaMicrovms;
10450
+ }
10451
+ handledProperties = /* @__PURE__ */ new Map([["AWS::Lambda::MicrovmImage", /* @__PURE__ */ new Set([
10452
+ "Name",
10453
+ "BaseImageArn",
10454
+ "BaseImageVersion",
10455
+ "BuildRoleArn",
10456
+ "Description",
10457
+ "CodeArtifact",
10458
+ "Logging",
10459
+ "EgressNetworkConnectors",
10460
+ "CpuConfigurations",
10461
+ "Resources",
10462
+ "AdditionalOsCapabilities",
10463
+ "Hooks",
10464
+ "EnvironmentVariables",
10465
+ "Tags"
10466
+ ])]]);
10467
+ unhandledByDesign = /* @__PURE__ */ new Map([["AWS::Lambda::MicrovmImage", /* @__PURE__ */ new Map([
10468
+ ["ImageArn", "AWS-managed read-only attribute (primaryIdentifier / physical id)"],
10469
+ ["State", "AWS-managed read-only attribute"],
10470
+ ["LatestActiveImageVersion", "AWS-managed read-only attribute"],
10471
+ ["LatestFailedImageVersion", "AWS-managed read-only attribute"],
10472
+ ["CreatedAt", "AWS-managed read-only attribute"],
10473
+ ["UpdatedAt", "AWS-managed read-only attribute"]
10474
+ ])]]);
10475
+ getMinResourceTimeoutMs() {
10476
+ return this.maxPollAttempts * this.pollIntervalMs;
10477
+ }
10478
+ async create(logicalId, resourceType, properties) {
10479
+ this.logger.debug(`Creating MicroVM image ${logicalId}`);
10480
+ const name = properties["Name"];
10481
+ const baseImageArn = properties["BaseImageArn"];
10482
+ const buildRoleArn = properties["BuildRoleArn"];
10483
+ const codeArtifact = mapCodeArtifact(properties["CodeArtifact"]);
10484
+ const missing = [
10485
+ !name && "Name",
10486
+ !baseImageArn && "BaseImageArn",
10487
+ !buildRoleArn && "BuildRoleArn",
10488
+ !codeArtifact && "CodeArtifact.Uri"
10489
+ ].filter(Boolean);
10490
+ if (missing.length > 0) throw new ProvisioningError(`${missing.join(", ")} ${missing.length === 1 ? "is" : "are"} required for MicroVM image ${logicalId}`, resourceType, logicalId);
10491
+ const input = {
10492
+ name,
10493
+ baseImageArn,
10494
+ buildRoleArn,
10495
+ codeArtifact,
10496
+ ...buildCommonImageInput(properties)
10497
+ };
10498
+ const tags = mapKeyValueListToRecord(properties["Tags"]);
10499
+ if (tags) input.tags = tags;
10500
+ try {
10501
+ const response = await this.client.send(new CreateMicrovmImageCommand(input));
10502
+ const imageArn = response.imageArn;
10503
+ if (!imageArn) throw new ProvisioningError(`CreateMicrovmImage succeeded but no imageArn returned for ${logicalId}`, resourceType, logicalId);
10504
+ this.logger.debug(`Created MicroVM image ${logicalId}: ${imageArn} (state=${response.state})`);
10505
+ const noWait = process.env["CDKD_NO_WAIT"] === "true";
10506
+ let latest = {
10507
+ state: response.state,
10508
+ latestActiveImageVersion: response.latestActiveImageVersion,
10509
+ latestFailedImageVersion: response.latestFailedImageVersion,
10510
+ createdAt: response.createdAt,
10511
+ updatedAt: response.updatedAt
10512
+ };
10513
+ if (!noWait) latest = await this.waitForTerminalState(imageArn, logicalId, "create");
10514
+ else this.logger.warn(`Skipping wait for MicroVM image ${logicalId} (CDKD_NO_WAIT=true). The build continues asynchronously; a CREATE_FAILED will not be observed here.`);
10515
+ return {
10516
+ physicalId: imageArn,
10517
+ attributes: this.buildAttributes(imageArn, latest.state, {
10518
+ latestActiveImageVersion: latest.latestActiveImageVersion,
10519
+ latestFailedImageVersion: latest.latestFailedImageVersion,
10520
+ createdAt: latest.createdAt,
10521
+ updatedAt: latest.updatedAt
10522
+ })
10523
+ };
10524
+ } catch (error) {
10525
+ throw this.wrapError("create", logicalId, resourceType, void 0, error);
10526
+ }
10527
+ }
10528
+ async update(logicalId, physicalId, resourceType, properties, previousProperties) {
10529
+ this.logger.debug(`Updating MicroVM image ${logicalId}: ${physicalId}`);
10530
+ if (properties["Name"] !== previousProperties["Name"]) throw new ProvisioningError(`MicroVM image ${logicalId} Name is create-only and cannot be changed in place (${String(previousProperties["Name"])} -> ${String(properties["Name"])}); this requires replacement.`, resourceType, logicalId, physicalId);
10531
+ try {
10532
+ await this.reconcileTags(physicalId, properties["Tags"], previousProperties["Tags"]);
10533
+ if (!BUILD_AFFECTING_CFN_KEYS.some((key) => JSON.stringify(properties[key]) !== JSON.stringify(previousProperties[key]))) {
10534
+ this.logger.debug(`MicroVM image ${logicalId}: only tags changed, skipping UpdateMicrovmImage rebuild`);
10535
+ const current = await this.client.send(new GetMicrovmImageCommand({ imageIdentifier: physicalId }));
10536
+ return {
10537
+ physicalId,
10538
+ wasReplaced: false,
10539
+ attributes: this.buildAttributes(physicalId, current.state, current)
10540
+ };
10541
+ }
10542
+ const baseImageArn = properties["BaseImageArn"];
10543
+ const buildRoleArn = properties["BuildRoleArn"];
10544
+ const codeArtifact = mapCodeArtifact(properties["CodeArtifact"]);
10545
+ if (!baseImageArn || !buildRoleArn || !codeArtifact) throw new ProvisioningError(`BaseImageArn, BuildRoleArn, and CodeArtifact.Uri are required to update MicroVM image ${logicalId}`, resourceType, logicalId, physicalId);
10546
+ const input = {
10547
+ imageIdentifier: physicalId,
10548
+ baseImageArn,
10549
+ buildRoleArn,
10550
+ codeArtifact,
10551
+ ...buildCommonImageInput(properties),
10552
+ environmentVariables: mapKeyValueListToRecord(properties["EnvironmentVariables"]) ?? {}
10553
+ };
10554
+ await this.client.send(new UpdateMicrovmImageCommand(input));
10555
+ const noWait = process.env["CDKD_NO_WAIT"] === "true";
10556
+ let latest;
10557
+ if (!noWait) latest = await this.waitForTerminalState(physicalId, logicalId, "update");
10558
+ else this.logger.warn(`Skipping wait for MicroVM image ${logicalId} update (CDKD_NO_WAIT=true). The rebuild continues asynchronously.`);
10559
+ return {
10560
+ physicalId,
10561
+ wasReplaced: false,
10562
+ attributes: this.buildAttributes(physicalId, latest?.state, {
10563
+ latestActiveImageVersion: latest?.latestActiveImageVersion,
10564
+ latestFailedImageVersion: latest?.latestFailedImageVersion,
10565
+ createdAt: latest?.createdAt,
10566
+ updatedAt: latest?.updatedAt
10567
+ })
10568
+ };
10569
+ } catch (error) {
10570
+ throw this.wrapError("update", logicalId, resourceType, physicalId, error);
10571
+ }
10572
+ }
10573
+ async delete(logicalId, physicalId, resourceType, _properties, context) {
10574
+ this.logger.debug(`Deleting MicroVM image ${logicalId}: ${physicalId}`);
10575
+ try {
10576
+ try {
10577
+ await this.client.send(new DeleteMicrovmImageCommand({ imageIdentifier: physicalId }));
10578
+ } catch (error) {
10579
+ if (error instanceof ResourceNotFoundException$7) {
10580
+ assertRegionMatch(await this.client.config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
10581
+ this.logger.debug(`MicroVM image ${physicalId} does not exist, skipping deletion`);
10582
+ return;
10583
+ }
10584
+ throw error;
10585
+ }
10586
+ await this.waitForDeleted(physicalId, logicalId);
10587
+ this.logger.debug(`Successfully deleted MicroVM image ${logicalId}`);
10588
+ } catch (error) {
10589
+ throw this.wrapError("delete", logicalId, resourceType, physicalId, error);
10590
+ }
10591
+ }
10592
+ async getAttribute(physicalId, _resourceType, attributeName) {
10593
+ if (attributeName === "ImageArn") return physicalId;
10594
+ const resp = await this.client.send(new GetMicrovmImageCommand({ imageIdentifier: physicalId }));
10595
+ switch (attributeName) {
10596
+ case "State": return resp.state;
10597
+ case "LatestActiveImageVersion": return resp.latestActiveImageVersion;
10598
+ case "LatestFailedImageVersion": return resp.latestFailedImageVersion;
10599
+ case "CreatedAt": return resp.createdAt?.toISOString();
10600
+ case "UpdatedAt": return resp.updatedAt?.toISOString();
10601
+ default: return;
10602
+ }
10603
+ }
10604
+ /**
10605
+ * Adopt an existing MicroVM image into cdkd state.
10606
+ *
10607
+ * Override-only: the image ARN must be supplied via `--resource
10608
+ * <logicalId>=<arn>`. There is no auto-lookup — MicroVM images have no
10609
+ * `aws:cdk:path` tag (AWS reserves the `aws:` tag prefix) and a bare `Name`
10610
+ * is rejected by `GetMicrovmImage` ("Invalid ARN format"), so the physical id
10611
+ * must be the image ARN. Returns `null` when the image does not exist.
10612
+ */
10613
+ async import(input) {
10614
+ const arn = input.knownPhysicalId;
10615
+ if (!arn) return null;
10616
+ if (!arn.startsWith("arn:")) throw new Error(`--resource override for ${input.logicalId} must be a MicroVM image ARN (got '${arn}'). A bare image name is not accepted; use the arn:...:microvm-image:... ARN.`);
10617
+ try {
10618
+ await this.client.send(new GetMicrovmImageCommand({ imageIdentifier: arn }));
10619
+ return {
10620
+ physicalId: arn,
10621
+ attributes: { ImageArn: arn }
10622
+ };
10623
+ } catch (error) {
10624
+ if (error instanceof ResourceNotFoundException$7) return null;
10625
+ throw error;
10626
+ }
10627
+ }
10628
+ buildAttributes(imageArn, state, extra) {
10629
+ const attributes = { ImageArn: imageArn };
10630
+ if (state !== void 0) attributes["State"] = state;
10631
+ if (extra.latestActiveImageVersion !== void 0) attributes["LatestActiveImageVersion"] = extra.latestActiveImageVersion;
10632
+ if (extra.latestFailedImageVersion !== void 0) attributes["LatestFailedImageVersion"] = extra.latestFailedImageVersion;
10633
+ if (extra.createdAt !== void 0) attributes["CreatedAt"] = extra.createdAt.toISOString();
10634
+ if (extra.updatedAt !== void 0) attributes["UpdatedAt"] = extra.updatedAt.toISOString();
10635
+ return attributes;
10636
+ }
10637
+ /**
10638
+ * Poll `GetMicrovmImage` until the image reaches a terminal success state
10639
+ * (`CREATED` after create, `CREATED` / `UPDATED` after update). Throws on the
10640
+ * matching failure state (`CREATE_FAILED` / `UPDATE_FAILED`) or on
10641
+ * poll-cap exhaustion.
10642
+ */
10643
+ async waitForTerminalState(imageArn, logicalId, operation) {
10644
+ this.logger.debug(`Waiting for MicroVM image ${imageArn} to finish ${operation}...`);
10645
+ for (let attempt = 1; attempt <= this.maxPollAttempts; attempt++) {
10646
+ const resp = await this.client.send(new GetMicrovmImageCommand({ imageIdentifier: imageArn }));
10647
+ const state = resp.state;
10648
+ if (state === "CREATED" || state === "UPDATED") {
10649
+ this.logger.debug(`MicroVM image ${imageArn} reached ${state}`);
10650
+ return resp;
10651
+ }
10652
+ if (state === "CREATE_FAILED" || state === "UPDATE_FAILED") throw new Error(`MicroVM image ${logicalId} (${imageArn}) entered ${state} during ${operation}. Check the build logs in CloudWatch under /aws/lambda/microvms/ to diagnose.`);
10653
+ this.logger.debug(`MicroVM image ${imageArn} state: ${state} (attempt ${attempt}/${this.maxPollAttempts})`);
10654
+ await sleep$2(this.pollIntervalMs);
10655
+ }
10656
+ throw new Error(`MicroVM image ${logicalId} (${imageArn}) did not finish ${operation} within ${this.maxPollAttempts * this.pollIntervalMs / 1e3}s. Increase --resource-timeout AWS::Lambda::MicrovmImage=<duration> or set CDKD_NO_WAIT=true.`);
10657
+ }
10658
+ /**
10659
+ * Poll `GetMicrovmImage` until it 404s (image fully deleted). Throws on
10660
+ * `DELETE_FAILED` or poll-cap exhaustion.
10661
+ */
10662
+ async waitForDeleted(imageArn, logicalId) {
10663
+ for (let attempt = 1; attempt <= this.maxPollAttempts; attempt++) {
10664
+ let resp;
10665
+ try {
10666
+ resp = await this.client.send(new GetMicrovmImageCommand({ imageIdentifier: imageArn }));
10667
+ } catch (error) {
10668
+ if (error instanceof ResourceNotFoundException$7) return;
10669
+ throw error;
10670
+ }
10671
+ if (resp.state === "DELETE_FAILED") throw new Error(`MicroVM image ${logicalId} (${imageArn}) entered DELETE_FAILED. Check the CloudWatch build logs under /aws/lambda/microvms/ to diagnose.`);
10672
+ this.logger.debug(`MicroVM image ${imageArn} state: ${resp.state} (delete attempt ${attempt}/${this.maxPollAttempts})`);
10673
+ await sleep$2(this.pollIntervalMs);
10674
+ }
10675
+ throw new Error(`MicroVM image ${logicalId} (${imageArn}) was not fully deleted within ${this.maxPollAttempts * this.pollIntervalMs / 1e3}s.`);
10676
+ }
10677
+ /**
10678
+ * Reconcile the resource's tags to the desired set via TagResource /
10679
+ * UntagResource (diff of the CFn `Tags` list, old vs new). Tags are NOT a
10680
+ * field on UpdateMicrovmImage, so this is the only way a tag change reaches
10681
+ * AWS on update — and it applies without an image rebuild.
10682
+ */
10683
+ async reconcileTags(physicalId, newTags, oldTags) {
10684
+ const newMap = mapKeyValueListToRecord(newTags) ?? {};
10685
+ const oldMap = mapKeyValueListToRecord(oldTags) ?? {};
10686
+ const keysToRemove = Object.keys(oldMap).filter((k) => !(k in newMap));
10687
+ const tagsToAdd = {};
10688
+ for (const [k, v] of Object.entries(newMap)) if (oldMap[k] !== v) tagsToAdd[k] = v;
10689
+ if (keysToRemove.length > 0) await this.client.send(new UntagResourceCommand$10({
10690
+ Resource: physicalId,
10691
+ TagKeys: keysToRemove
10692
+ }));
10693
+ if (Object.keys(tagsToAdd).length > 0) await this.client.send(new TagResourceCommand$10({
10694
+ Resource: physicalId,
10695
+ Tags: tagsToAdd
10696
+ }));
10697
+ }
10698
+ wrapError(operation, logicalId, resourceType, physicalId, error) {
10699
+ if (error instanceof ProvisioningError) return error;
10700
+ const cause = error instanceof Error ? error : void 0;
10701
+ return new ProvisioningError(`Failed to ${operation} MicroVM image ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
10702
+ }
10703
+ };
10704
+ /**
10705
+ * CFn property names whose change requires an UpdateMicrovmImage call (an async
10706
+ * image rebuild). Everything the SDK's UpdateMicrovmImage accepts EXCEPT tags
10707
+ * (which reconcile out-of-band via TagResource / UntagResource) and Name
10708
+ * (create-only). A change limited to `Tags` skips the rebuild.
10709
+ */
10710
+ const BUILD_AFFECTING_CFN_KEYS = [
10711
+ "BaseImageArn",
10712
+ "BaseImageVersion",
10713
+ "BuildRoleArn",
10714
+ "Description",
10715
+ "CodeArtifact",
10716
+ "Logging",
10717
+ "EgressNetworkConnectors",
10718
+ "CpuConfigurations",
10719
+ "Resources",
10720
+ "AdditionalOsCapabilities",
10721
+ "Hooks",
10722
+ "EnvironmentVariables"
10723
+ ];
10724
+ function sleep$2(ms) {
10725
+ return new Promise((resolve) => setTimeout(resolve, ms));
10726
+ }
10727
+ /**
10728
+ * Build the optional create/update input fields shared by both operations,
10729
+ * translating each from its CloudFormation-schema shape to the SDK shape.
10730
+ * Only defined fields are included so the request never carries `undefined`.
10731
+ */
10732
+ function buildCommonImageInput(properties) {
10733
+ const input = {};
10734
+ if (typeof properties["BaseImageVersion"] === "string") input.baseImageVersion = properties["BaseImageVersion"];
10735
+ if (typeof properties["Description"] === "string") input.description = properties["Description"];
10736
+ const logging = mapLogging(properties["Logging"]);
10737
+ if (logging) input.logging = logging;
10738
+ if (Array.isArray(properties["EgressNetworkConnectors"])) input.egressNetworkConnectors = properties["EgressNetworkConnectors"];
10739
+ const cpuConfigurations = mapCpuConfigurations(properties["CpuConfigurations"]);
10740
+ if (cpuConfigurations) input.cpuConfigurations = cpuConfigurations;
10741
+ const resources = mapResources(properties["Resources"]);
10742
+ if (resources) input.resources = resources;
10743
+ if (Array.isArray(properties["AdditionalOsCapabilities"])) input.additionalOsCapabilities = properties["AdditionalOsCapabilities"];
10744
+ const hooks = mapHooks(properties["Hooks"]);
10745
+ if (hooks) input.hooks = hooks;
10746
+ const environmentVariables = mapKeyValueListToRecord(properties["EnvironmentVariables"]);
10747
+ if (environmentVariables) input.environmentVariables = environmentVariables;
10748
+ return input;
10749
+ }
10750
+ function mapCodeArtifact(value) {
10751
+ if (!isRecord(value)) return void 0;
10752
+ const uri = value["Uri"];
10753
+ return typeof uri === "string" ? { uri } : void 0;
10754
+ }
10755
+ function mapLogging(value) {
10756
+ if (!isRecord(value)) return void 0;
10757
+ if (value["Disabled"] === true) return { disabled: {} };
10758
+ const cloudWatch = value["CloudWatch"];
10759
+ if (isRecord(cloudWatch)) {
10760
+ const cw = {};
10761
+ if (typeof cloudWatch["LogGroup"] === "string") cw.logGroup = cloudWatch["LogGroup"];
10762
+ if (typeof cloudWatch["LogStream"] === "string") cw.logStream = cloudWatch["LogStream"];
10763
+ return { cloudWatch: cw };
10764
+ }
10765
+ }
10766
+ function mapCpuConfigurations(value) {
10767
+ if (!Array.isArray(value)) return void 0;
10768
+ return value.filter(isRecord).map((c) => ({ architecture: c["Architecture"] }));
10769
+ }
10770
+ function mapResources(value) {
10771
+ if (!Array.isArray(value)) return void 0;
10772
+ return value.filter(isRecord).map((r) => Number(r["MinimumMemoryInMiB"])).filter((n) => Number.isFinite(n)).map((minimumMemoryInMiB) => ({ minimumMemoryInMiB }));
10773
+ }
10774
+ /**
10775
+ * Translate the CFn `Hooks` structure (PascalCase keys throughout, all leaf
10776
+ * values are strings/numbers) to the SDK `hooks` shape (camelCase keys). Safe
10777
+ * to lower-case the first character of every key recursively because Hooks
10778
+ * carries no tagged unions and no array-of-record members.
10779
+ */
10780
+ function mapHooks(value) {
10781
+ if (!isRecord(value)) return void 0;
10782
+ return lowerFirstKeysDeep(value);
10783
+ }
10784
+ /**
10785
+ * Convert a CFn `[{Key, Value}]` list (used by both `Tags` and
10786
+ * `EnvironmentVariables`) to the SDK `Record<string, string>` shape. Returns
10787
+ * `undefined` for an empty / absent list so the request omits the field.
10788
+ */
10789
+ function mapKeyValueListToRecord(value) {
10790
+ if (!Array.isArray(value)) return void 0;
10791
+ const out = {};
10792
+ for (const entry of value) if (isRecord(entry) && typeof entry["Key"] === "string") out[entry["Key"]] = typeof entry["Value"] === "string" ? entry["Value"] : "";
10793
+ return Object.keys(out).length > 0 ? out : void 0;
10794
+ }
10795
+ function lowerFirstKeysDeep(value) {
10796
+ if (Array.isArray(value)) return value.map(lowerFirstKeysDeep);
10797
+ if (isRecord(value)) {
10798
+ const out = {};
10799
+ for (const [k, v] of Object.entries(value)) out[k.charAt(0).toLowerCase() + k.slice(1)] = lowerFirstKeysDeep(v);
10800
+ return out;
10801
+ }
10802
+ return value;
10803
+ }
10804
+ function isRecord(value) {
10805
+ return typeof value === "object" && value !== null && !Array.isArray(value);
10806
+ }
10807
+
10395
10808
  //#endregion
10396
10809
  //#region src/provisioning/providers/dynamodb-table-provider.ts
10397
10810
  /**
@@ -21037,14 +21450,14 @@ var StepFunctionsProvider = class {
21037
21450
  const tagsToRemove = [];
21038
21451
  for (const k of oldMap.keys()) if (!newMap.has(k)) tagsToRemove.push(k);
21039
21452
  if (tagsToRemove.length > 0) {
21040
- await this.getClient().send(new UntagResourceCommand$12({
21453
+ await this.getClient().send(new UntagResourceCommand$13({
21041
21454
  resourceArn: stateMachineArn,
21042
21455
  tagKeys: tagsToRemove
21043
21456
  }));
21044
21457
  this.logger.debug(`Removed ${tagsToRemove.length} tag(s) from SFN state machine ${stateMachineArn}`);
21045
21458
  }
21046
21459
  if (tagsToAdd.length > 0) {
21047
- await this.getClient().send(new TagResourceCommand$12({
21460
+ await this.getClient().send(new TagResourceCommand$13({
21048
21461
  resourceArn: stateMachineArn,
21049
21462
  tags: tagsToAdd
21050
21463
  }));
@@ -21656,14 +22069,14 @@ var ECSProvider = class {
21656
22069
  const tagsToRemove = [];
21657
22070
  for (const k of oldMap.keys()) if (!newMap.has(k)) tagsToRemove.push(k);
21658
22071
  if (tagsToRemove.length > 0) {
21659
- await this.getClient().send(new UntagResourceCommand$13({
22072
+ await this.getClient().send(new UntagResourceCommand$14({
21660
22073
  resourceArn,
21661
22074
  tagKeys: tagsToRemove
21662
22075
  }));
21663
22076
  this.logger.debug(`Removed ${tagsToRemove.length} tag(s) from ECS resource ${resourceArn}`);
21664
22077
  }
21665
22078
  if (tagsToAdd.length > 0) {
21666
- await this.getClient().send(new TagResourceCommand$13({
22079
+ await this.getClient().send(new TagResourceCommand$14({
21667
22080
  resourceArn,
21668
22081
  tags: tagsToAdd
21669
22082
  }));
@@ -27075,7 +27488,7 @@ var CognitoUserPoolProvider = class {
27075
27488
  if (!templatedActive) try {
27076
27489
  needsFlip = (await this.getClient().send(new DescribeUserPoolCommand({ UserPoolId: physicalId }))).UserPool?.DeletionProtection === "ACTIVE";
27077
27490
  } catch (descError) {
27078
- if (descError instanceof ResourceNotFoundException$7) {
27491
+ if (descError instanceof ResourceNotFoundException$8) {
27079
27492
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
27080
27493
  this.logger.debug(`Cognito User Pool ${physicalId} does not exist, skipping deletion`);
27081
27494
  return;
@@ -27098,7 +27511,7 @@ var CognitoUserPoolProvider = class {
27098
27511
  await this.getClient().send(new DeleteUserPoolCommand({ UserPoolId: physicalId }));
27099
27512
  this.logger.debug(`Successfully deleted Cognito User Pool ${logicalId}`);
27100
27513
  } catch (error) {
27101
- if (error instanceof ResourceNotFoundException$7) {
27514
+ if (error instanceof ResourceNotFoundException$8) {
27102
27515
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
27103
27516
  this.logger.debug(`Cognito User Pool ${physicalId} does not exist, skipping deletion`);
27104
27517
  return;
@@ -27131,7 +27544,7 @@ var CognitoUserPoolProvider = class {
27131
27544
  try {
27132
27545
  resp = await this.getClient().send(new DescribeUserPoolCommand({ UserPoolId: physicalId }));
27133
27546
  } catch (err) {
27134
- if (err instanceof ResourceNotFoundException$7) return void 0;
27547
+ if (err instanceof ResourceNotFoundException$8) return void 0;
27135
27548
  throw err;
27136
27549
  }
27137
27550
  const pool = resp.UserPool;
@@ -27205,7 +27618,7 @@ var CognitoUserPoolProvider = class {
27205
27618
  attributes: {}
27206
27619
  };
27207
27620
  } catch (err) {
27208
- if (err instanceof ResourceNotFoundException$7) return null;
27621
+ if (err instanceof ResourceNotFoundException$8) return null;
27209
27622
  throw err;
27210
27623
  }
27211
27624
  const desiredName = typeof input.properties?.["UserPoolName"] === "string" ? input.properties["UserPoolName"] : void 0;
@@ -28223,11 +28636,11 @@ var ServiceDiscoveryProvider = class ServiceDiscoveryProvider {
28223
28636
  const hasAdds = !!newTags && newTags.length > 0;
28224
28637
  if (removedKeys.length === 0 && !hasAdds) return;
28225
28638
  const arn = await this.resolveNamespaceArn(physicalId);
28226
- if (removedKeys.length > 0) await this.getClient().send(new UntagResourceCommand$14({
28639
+ if (removedKeys.length > 0) await this.getClient().send(new UntagResourceCommand$15({
28227
28640
  ResourceARN: arn,
28228
28641
  TagKeys: removedKeys
28229
28642
  }));
28230
- if (hasAdds) await this.getClient().send(new TagResourceCommand$14({
28643
+ if (hasAdds) await this.getClient().send(new TagResourceCommand$15({
28231
28644
  ResourceARN: arn,
28232
28645
  Tags: newTags
28233
28646
  }));
@@ -28863,7 +29276,7 @@ var AppSyncProvider = class {
28863
29276
  const tagsToAdd = {};
28864
29277
  for (const [k, v] of Object.entries(newMap)) if (oldMap[k] !== v) tagsToAdd[k] = v;
28865
29278
  if (tagKeysToRemove.length > 0) try {
28866
- await this.getClient().send(new UntagResourceCommand$15({
29279
+ await this.getClient().send(new UntagResourceCommand$16({
28867
29280
  resourceArn: arn,
28868
29281
  tagKeys: tagKeysToRemove
28869
29282
  }));
@@ -28871,7 +29284,7 @@ var AppSyncProvider = class {
28871
29284
  throw this.wrapUpdateError(error, resourceType, logicalId, apiId, "GraphqlApi (untag)");
28872
29285
  }
28873
29286
  if (Object.keys(tagsToAdd).length > 0) try {
28874
- await this.getClient().send(new TagResourceCommand$15({
29287
+ await this.getClient().send(new TagResourceCommand$16({
28875
29288
  resourceArn: arn,
28876
29289
  tags: tagsToAdd
28877
29290
  }));
@@ -31316,14 +31729,14 @@ var KMSProvider = class {
31316
31729
  const tagsToRemove = [];
31317
31730
  for (const k of oldMap.keys()) if (!newMap.has(k)) tagsToRemove.push(k);
31318
31731
  if (tagsToRemove.length > 0) {
31319
- await this.getClient().send(new UntagResourceCommand$10({
31732
+ await this.getClient().send(new UntagResourceCommand$11({
31320
31733
  KeyId: keyId,
31321
31734
  TagKeys: tagsToRemove
31322
31735
  }));
31323
31736
  this.logger.debug(`Removed ${tagsToRemove.length} tag(s) from KMS Key ${keyId}`);
31324
31737
  }
31325
31738
  if (tagsToAdd.length > 0) {
31326
- await this.getClient().send(new TagResourceCommand$10({
31739
+ await this.getClient().send(new TagResourceCommand$11({
31327
31740
  KeyId: keyId,
31328
31741
  Tags: tagsToAdd
31329
31742
  }));
@@ -31919,11 +32332,11 @@ var BudgetsBudgetProvider = class {
31919
32332
  const removedKeys = oldTags.map((t) => t.Key).filter((k) => {
31920
32333
  return typeof k === "string" && !newKeys.has(k);
31921
32334
  });
31922
- if (removedKeys.length > 0) await this.getClient().send(new UntagResourceCommand$16({
32335
+ if (removedKeys.length > 0) await this.getClient().send(new UntagResourceCommand$17({
31923
32336
  ResourceARN: arn,
31924
32337
  ResourceTagKeys: removedKeys
31925
32338
  }));
31926
- if (newTags.length > 0) await this.getClient().send(new TagResourceCommand$16({
32339
+ if (newTags.length > 0) await this.getClient().send(new TagResourceCommand$17({
31927
32340
  ResourceARN: arn,
31928
32341
  ResourceTags: newTags
31929
32342
  }));
@@ -32206,7 +32619,7 @@ var KinesisStreamProvider = class {
32206
32619
  }));
32207
32620
  this.logger.debug(`Successfully deleted Kinesis stream ${logicalId}`);
32208
32621
  } catch (error) {
32209
- if (error instanceof ResourceNotFoundException$8) {
32622
+ if (error instanceof ResourceNotFoundException$9) {
32210
32623
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
32211
32624
  this.logger.debug(`Kinesis stream ${physicalId} does not exist, skipping deletion`);
32212
32625
  return;
@@ -32281,7 +32694,7 @@ var KinesisStreamProvider = class {
32281
32694
  try {
32282
32695
  stream = (await this.getClient().send(new DescribeStreamCommand({ StreamName: physicalId }))).StreamDescription;
32283
32696
  } catch (err) {
32284
- if (err instanceof ResourceNotFoundException$8) return void 0;
32697
+ if (err instanceof ResourceNotFoundException$9) return void 0;
32285
32698
  throw err;
32286
32699
  }
32287
32700
  if (!stream) return void 0;
@@ -32299,7 +32712,7 @@ var KinesisStreamProvider = class {
32299
32712
  try {
32300
32713
  result["Tags"] = normalizeAwsTagsToCfn((await this.getClient().send(new ListTagsForStreamCommand({ StreamName: physicalId }))).Tags);
32301
32714
  } catch (err) {
32302
- if (err instanceof ResourceNotFoundException$8) return void 0;
32715
+ if (err instanceof ResourceNotFoundException$9) return void 0;
32303
32716
  this.logger.debug(`Kinesis ListTagsForStream(${physicalId}) failed: ${err instanceof Error ? err.message : String(err)}`);
32304
32717
  }
32305
32718
  return result;
@@ -32313,7 +32726,7 @@ var KinesisStreamProvider = class {
32313
32726
  attributes: {}
32314
32727
  };
32315
32728
  } catch (err) {
32316
- if (err instanceof ResourceNotFoundException$8) return null;
32729
+ if (err instanceof ResourceNotFoundException$9) return null;
32317
32730
  throw err;
32318
32731
  }
32319
32732
  return null;
@@ -32492,7 +32905,7 @@ var KinesisStreamConsumerProvider = class {
32492
32905
  await this.getClient().send(new DeregisterStreamConsumerCommand({ ConsumerARN: physicalId }));
32493
32906
  this.logger.debug(`Successfully deregistered Kinesis stream consumer ${logicalId}`);
32494
32907
  } catch (error) {
32495
- if (error instanceof ResourceNotFoundException$8) {
32908
+ if (error instanceof ResourceNotFoundException$9) {
32496
32909
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
32497
32910
  this.logger.debug(`Kinesis stream consumer ${physicalId} not found, skipping`);
32498
32911
  return;
@@ -32538,7 +32951,7 @@ var KinesisStreamConsumerProvider = class {
32538
32951
  try {
32539
32952
  desc = (await this.getClient().send(new DescribeStreamConsumerCommand({ ConsumerARN: physicalId }))).ConsumerDescription;
32540
32953
  } catch (err) {
32541
- if (err instanceof ResourceNotFoundException$8) return void 0;
32954
+ if (err instanceof ResourceNotFoundException$9) return void 0;
32542
32955
  throw err;
32543
32956
  }
32544
32957
  if (!desc) return void 0;
@@ -32548,7 +32961,7 @@ var KinesisStreamConsumerProvider = class {
32548
32961
  try {
32549
32962
  result["Tags"] = normalizeAwsTagsToCfn((await this.getClient().send(new ListTagsForResourceCommand$15({ ResourceARN: physicalId }))).Tags);
32550
32963
  } catch (err) {
32551
- if (err instanceof ResourceNotFoundException$8) return void 0;
32964
+ if (err instanceof ResourceNotFoundException$9) return void 0;
32552
32965
  this.logger.debug(`ListTagsForResource(${physicalId}) failed: ${err instanceof Error ? err.message : String(err)}`);
32553
32966
  result["Tags"] = [];
32554
32967
  }
@@ -32570,14 +32983,14 @@ var KinesisStreamConsumerProvider = class {
32570
32983
  const tagsToRemove = [];
32571
32984
  for (const k of Object.keys(oldMap)) if (!(k in newMap)) tagsToRemove.push(k);
32572
32985
  if (tagsToRemove.length > 0) {
32573
- await this.getClient().send(new UntagResourceCommand$17({
32986
+ await this.getClient().send(new UntagResourceCommand$18({
32574
32987
  ResourceARN: consumerArn,
32575
32988
  TagKeys: tagsToRemove
32576
32989
  }));
32577
32990
  this.logger.debug(`Removed ${tagsToRemove.length} tag(s) from Kinesis stream consumer ${consumerArn}`);
32578
32991
  }
32579
32992
  if (Object.keys(tagsToAdd).length > 0) {
32580
- await this.getClient().send(new TagResourceCommand$17({
32993
+ await this.getClient().send(new TagResourceCommand$18({
32581
32994
  ResourceARN: consumerArn,
32582
32995
  Tags: tagsToAdd
32583
32996
  }));
@@ -32754,7 +33167,7 @@ var SchedulerScheduleProvider = class {
32754
33167
  }));
32755
33168
  this.logger.debug(`Deleted Schedule ${logicalId}`);
32756
33169
  } catch (error) {
32757
- if (error instanceof ResourceNotFoundException$9) {
33170
+ if (error instanceof ResourceNotFoundException$10) {
32758
33171
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
32759
33172
  this.logger.debug(`Schedule ${logicalId} already deleted (not found), treating as success`);
32760
33173
  return;
@@ -32776,7 +33189,7 @@ var SchedulerScheduleProvider = class {
32776
33189
  return (await this.getClient().send(new GetScheduleCommand({ Name: physicalId }))).Arn;
32777
33190
  } catch (error) {
32778
33191
  const cause = error instanceof Error ? error : void 0;
32779
- const customGroupHint = error instanceof ResourceNotFoundException$9 ? " Schedules in a custom group cannot be looked up by bare name; the Arn is normally served from cdkd state attributes." : "";
33192
+ const customGroupHint = error instanceof ResourceNotFoundException$10 ? " Schedules in a custom group cannot be looked up by bare name; the Arn is normally served from cdkd state attributes." : "";
32780
33193
  throw new ProvisioningError(`Failed to resolve Arn for Schedule ${physicalId}: ${cause?.message ?? String(error)}.${customGroupHint}`, resourceType, physicalId, physicalId, cause);
32781
33194
  }
32782
33195
  }
@@ -32806,7 +33219,7 @@ var SchedulerScheduleProvider = class {
32806
33219
  ...response.Target !== void 0 && { Target: response.Target }
32807
33220
  };
32808
33221
  } catch (error) {
32809
- if (error instanceof ResourceNotFoundException$9) return;
33222
+ if (error instanceof ResourceNotFoundException$10) return;
32810
33223
  throw error;
32811
33224
  }
32812
33225
  }
@@ -32832,7 +33245,7 @@ var SchedulerScheduleProvider = class {
32832
33245
  attributes: response.Arn ? { Arn: response.Arn } : {}
32833
33246
  };
32834
33247
  } catch (error) {
32835
- if (error instanceof ResourceNotFoundException$9) return null;
33248
+ if (error instanceof ResourceNotFoundException$10) return null;
32836
33249
  throw error;
32837
33250
  }
32838
33251
  }
@@ -34194,11 +34607,11 @@ var FSxFileSystemProvider = class {
34194
34607
  }
34195
34608
  const toRemove = [];
34196
34609
  for (const key of prev.keys()) if (key !== void 0 && !next.has(key)) toRemove.push(key);
34197
- if (toSet.length > 0) await this.getClient().send(new TagResourceCommand$18({
34610
+ if (toSet.length > 0) await this.getClient().send(new TagResourceCommand$19({
34198
34611
  ResourceARN: arn,
34199
34612
  Tags: toSet
34200
34613
  }));
34201
- if (toRemove.length > 0) await this.getClient().send(new UntagResourceCommand$18({
34614
+ if (toRemove.length > 0) await this.getClient().send(new UntagResourceCommand$19({
34202
34615
  ResourceARN: arn,
34203
34616
  TagKeys: toRemove
34204
34617
  }));
@@ -36482,7 +36895,7 @@ var FirehoseProvider = class {
36482
36895
  await this.getClient().send(new DeleteDeliveryStreamCommand({ DeliveryStreamName: physicalId }));
36483
36896
  this.logger.debug(`Successfully deleted Firehose delivery stream ${logicalId}`);
36484
36897
  } catch (error) {
36485
- if (error instanceof ResourceNotFoundException$10) {
36898
+ if (error instanceof ResourceNotFoundException$11) {
36486
36899
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
36487
36900
  this.logger.debug(`Firehose delivery stream ${physicalId} does not exist, skipping deletion`);
36488
36901
  return;
@@ -37019,7 +37432,7 @@ var FirehoseProvider = class {
37019
37432
  try {
37020
37433
  desc = (await this.getClient().send(new DescribeDeliveryStreamCommand({ DeliveryStreamName: physicalId }))).DeliveryStreamDescription;
37021
37434
  } catch (err) {
37022
- if (err instanceof ResourceNotFoundException$10) return void 0;
37435
+ if (err instanceof ResourceNotFoundException$11) return void 0;
37023
37436
  throw err;
37024
37437
  }
37025
37438
  if (!desc) return void 0;
@@ -37050,7 +37463,7 @@ var FirehoseProvider = class {
37050
37463
  try {
37051
37464
  result["Tags"] = normalizeAwsTagsToCfn((await this.getClient().send(new ListTagsForDeliveryStreamCommand({ DeliveryStreamName: physicalId }))).Tags);
37052
37465
  } catch (err) {
37053
- if (err instanceof ResourceNotFoundException$10) return void 0;
37466
+ if (err instanceof ResourceNotFoundException$11) return void 0;
37054
37467
  this.logger.debug(`Firehose ListTagsForDeliveryStream(${physicalId}) failed: ${err instanceof Error ? err.message : String(err)}`);
37055
37468
  result["Tags"] = [];
37056
37469
  }
@@ -37087,7 +37500,7 @@ var FirehoseProvider = class {
37087
37500
  attributes: {}
37088
37501
  };
37089
37502
  } catch (err) {
37090
- if (err instanceof ResourceNotFoundException$10) return null;
37503
+ if (err instanceof ResourceNotFoundException$11) return null;
37091
37504
  throw err;
37092
37505
  }
37093
37506
  return null;
@@ -37829,7 +38242,7 @@ var CodeBuildProvider = class {
37829
38242
  await this.getClient().send(new DeleteProjectCommand({ name: physicalId }));
37830
38243
  this.logger.debug(`Successfully deleted CodeBuild Project ${logicalId}`);
37831
38244
  } catch (error) {
37832
- if (error instanceof ResourceNotFoundException$11) {
38245
+ if (error instanceof ResourceNotFoundException$12) {
37833
38246
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
37834
38247
  this.logger.debug(`CodeBuild Project ${physicalId} does not exist, skipping deletion`);
37835
38248
  return;
@@ -37884,7 +38297,7 @@ var CodeBuildProvider = class {
37884
38297
  try {
37885
38298
  project = (await this.getClient().send(new BatchGetProjectsCommand({ names: [physicalId] }))).projects?.[0];
37886
38299
  } catch (err) {
37887
- if (err instanceof ResourceNotFoundException$11) return void 0;
38300
+ if (err instanceof ResourceNotFoundException$12) return void 0;
37888
38301
  throw err;
37889
38302
  }
37890
38303
  if (!project) return void 0;
@@ -38029,7 +38442,7 @@ var CodeBuildProvider = class {
38029
38442
  attributes: {}
38030
38443
  } : null;
38031
38444
  } catch (err) {
38032
- if (err instanceof ResourceNotFoundException$11) return null;
38445
+ if (err instanceof ResourceNotFoundException$12) return null;
38033
38446
  throw err;
38034
38447
  }
38035
38448
  return null;
@@ -38269,11 +38682,11 @@ var CodeCommitRepositoryProvider = class {
38269
38682
  const repoArn = metadata?.Arn;
38270
38683
  if (repoArn) {
38271
38684
  const removedKeys = Object.keys(oldTagMap).filter((k) => !(k in newTagMap));
38272
- if (removedKeys.length > 0) await this.getClient().send(new UntagResourceCommand$19({
38685
+ if (removedKeys.length > 0) await this.getClient().send(new UntagResourceCommand$20({
38273
38686
  resourceArn: repoArn,
38274
38687
  tagKeys: removedKeys
38275
38688
  }));
38276
- if (Object.keys(newTagMap).length > 0) await this.getClient().send(new TagResourceCommand$19({
38689
+ if (Object.keys(newTagMap).length > 0) await this.getClient().send(new TagResourceCommand$20({
38277
38690
  resourceArn: repoArn,
38278
38691
  tags: newTagMap
38279
38692
  }));
@@ -38653,7 +39066,7 @@ var DLMLifecyclePolicyProvider = class {
38653
39066
  if (tagsChanged && arn) {
38654
39067
  const removedKeys = Object.keys(oldTags).filter((k) => !(k in newTags));
38655
39068
  if (removedKeys.length > 0) {
38656
- await this.getClient().send(new UntagResourceCommand$20({
39069
+ await this.getClient().send(new UntagResourceCommand$21({
38657
39070
  ResourceArn: arn,
38658
39071
  TagKeys: removedKeys
38659
39072
  }));
@@ -38662,7 +39075,7 @@ var DLMLifecyclePolicyProvider = class {
38662
39075
  const tagsToAdd = {};
38663
39076
  for (const [k, v] of Object.entries(newTags)) if (oldTags[k] !== v) tagsToAdd[k] = v;
38664
39077
  if (Object.keys(tagsToAdd).length > 0) {
38665
- await this.getClient().send(new TagResourceCommand$20({
39078
+ await this.getClient().send(new TagResourceCommand$21({
38666
39079
  ResourceArn: arn,
38667
39080
  Tags: tagsToAdd
38668
39081
  }));
@@ -38686,7 +39099,7 @@ var DLMLifecyclePolicyProvider = class {
38686
39099
  await this.getClient().send(new DeleteLifecyclePolicyCommand$1({ PolicyId: physicalId }));
38687
39100
  this.logger.debug(`Successfully deleted DLM Lifecycle Policy ${logicalId}`);
38688
39101
  } catch (error) {
38689
- if (error instanceof ResourceNotFoundException$12) {
39102
+ if (error instanceof ResourceNotFoundException$13) {
38690
39103
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
38691
39104
  this.logger.debug(`DLM Lifecycle Policy ${physicalId} does not exist, skipping deletion`);
38692
39105
  return;
@@ -38737,7 +39150,7 @@ var DLMLifecyclePolicyProvider = class {
38737
39150
  Tags: normalizeAwsTagsToCfn(policy.Tags)
38738
39151
  };
38739
39152
  } catch (error) {
38740
- if (error instanceof ResourceNotFoundException$12) return;
39153
+ if (error instanceof ResourceNotFoundException$13) return;
38741
39154
  throw error;
38742
39155
  }
38743
39156
  }
@@ -38773,7 +39186,7 @@ var DLMLifecyclePolicyProvider = class {
38773
39186
  attributes: response.Policy.PolicyArn ? { Arn: response.Policy.PolicyArn } : {}
38774
39187
  } : null;
38775
39188
  } catch (err) {
38776
- if (err instanceof ResourceNotFoundException$12) return null;
39189
+ if (err instanceof ResourceNotFoundException$13) return null;
38777
39190
  throw err;
38778
39191
  }
38779
39192
  return null;
@@ -38853,11 +39266,11 @@ var S3VectorsProvider = class {
38853
39266
  }
38854
39267
  if (!resourceArn) throw new ProvisioningError(`Could not resolve ARN for S3 VectorBucket ${logicalId} (${physicalId}); cannot apply tag update.`, resourceType, logicalId, physicalId);
38855
39268
  try {
38856
- if (Object.keys(toSet).length > 0) await this.getClient().send(new TagResourceCommand$21({
39269
+ if (Object.keys(toSet).length > 0) await this.getClient().send(new TagResourceCommand$22({
38857
39270
  resourceArn,
38858
39271
  tags: toSet
38859
39272
  }));
38860
- if (toRemove.length > 0) await this.getClient().send(new UntagResourceCommand$21({
39273
+ if (toRemove.length > 0) await this.getClient().send(new UntagResourceCommand$22({
38861
39274
  resourceArn,
38862
39275
  tagKeys: toRemove
38863
39276
  }));
@@ -39749,7 +40162,7 @@ var S3TablesProvider = class {
39749
40162
  const resourceArn = await this.lookupTableArn(tableBucketARN, namespace, name);
39750
40163
  if (!resourceArn) throw new ProvisioningError(`applyTableTagsDiff: GetTable returned no tableARN for ${physicalId} — table is gone or state is out-of-sync. Refusing to silently drop the tag update (run 'cdkd state orphan ${logicalId}' to clean up if the table was deleted out-of-band).`, resourceType, logicalId, physicalId);
39751
40164
  if (removedKeys.length > 0) try {
39752
- await this.getClient().send(new UntagResourceCommand$22({
40165
+ await this.getClient().send(new UntagResourceCommand$23({
39753
40166
  resourceArn,
39754
40167
  tagKeys: removedKeys
39755
40168
  }));
@@ -39758,7 +40171,7 @@ var S3TablesProvider = class {
39758
40171
  throw new ProvisioningError(`applyTableTagsDiff: UntagResource failed for ${resourceArn} (keys: ${removedKeys.join(", ")}): ${err instanceof Error ? err.message : String(err)}. State has NOT been updated so the next deploy will retry the tag-diff.`, resourceType, logicalId, physicalId, cause);
39759
40172
  }
39760
40173
  if (Object.keys(upserts).length > 0) try {
39761
- await this.getClient().send(new TagResourceCommand$22({
40174
+ await this.getClient().send(new TagResourceCommand$23({
39762
40175
  resourceArn,
39763
40176
  tags: upserts
39764
40177
  }));
@@ -39790,7 +40203,7 @@ var S3TablesProvider = class {
39790
40203
  if (removedKeys.length === 0 && Object.keys(upserts).length === 0) return;
39791
40204
  const resourceArn = physicalId;
39792
40205
  if (removedKeys.length > 0) try {
39793
- await this.getClient().send(new UntagResourceCommand$22({
40206
+ await this.getClient().send(new UntagResourceCommand$23({
39794
40207
  resourceArn,
39795
40208
  tagKeys: removedKeys
39796
40209
  }));
@@ -39799,7 +40212,7 @@ var S3TablesProvider = class {
39799
40212
  throw new ProvisioningError(`applyTableBucketTagsDiff: UntagResource failed for ${resourceArn} (keys: ${removedKeys.join(", ")}): ${err instanceof Error ? err.message : String(err)}. State has NOT been updated so the next deploy will retry the tag-diff.`, resourceType, logicalId, physicalId, cause);
39800
40213
  }
39801
40214
  if (Object.keys(upserts).length > 0) try {
39802
- await this.getClient().send(new TagResourceCommand$22({
40215
+ await this.getClient().send(new TagResourceCommand$23({
39803
40216
  resourceArn,
39804
40217
  tags: upserts
39805
40218
  }));
@@ -39982,11 +40395,11 @@ var ECRProvider = class {
39982
40395
  if (repoArn) {
39983
40396
  const newKeys = new Set((newTags ?? []).map((t) => t.Key).filter((k) => !!k));
39984
40397
  const removedKeys = (oldTags ?? []).map((t) => t.Key).filter((k) => !!k && !newKeys.has(k));
39985
- if (removedKeys.length > 0) await this.getClient().send(new UntagResourceCommand$11({
40398
+ if (removedKeys.length > 0) await this.getClient().send(new UntagResourceCommand$12({
39986
40399
  resourceArn: repoArn,
39987
40400
  tagKeys: removedKeys
39988
40401
  }));
39989
- if (newTags && newTags.length > 0) await this.getClient().send(new TagResourceCommand$11({
40402
+ if (newTags && newTags.length > 0) await this.getClient().send(new TagResourceCommand$12({
39990
40403
  resourceArn: repoArn,
39991
40404
  tags: newTags
39992
40405
  }));
@@ -41299,6 +41712,7 @@ function registerAllProviders(registry) {
41299
41712
  registry.register("AWS::Lambda::EventSourceMapping", new LambdaEventSourceMappingProvider());
41300
41713
  registry.register("AWS::Lambda::LayerVersion", new LambdaLayerVersionProvider());
41301
41714
  registry.register("AWS::Lambda::EventInvokeConfig", new LambdaEventInvokeConfigProvider());
41715
+ registry.register("AWS::Lambda::MicrovmImage", new LambdaMicrovmImageProvider());
41302
41716
  registry.register("AWS::DynamoDB::Table", new DynamoDBTableProvider());
41303
41717
  registry.register("AWS::DynamoDB::GlobalTable", new DynamoDBGlobalTableProvider());
41304
41718
  registry.register("AWS::Logs::LogGroup", new LogsLogGroupProvider());
@@ -60870,7 +61284,7 @@ function createMigrateCommand() {
60870
61284
  */
60871
61285
  function buildProgram() {
60872
61286
  const program = new Command();
60873
- program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.257.4");
61287
+ program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.259.0");
60874
61288
  program.addCommand(createBootstrapCommand());
60875
61289
  program.addCommand(createSynthCommand());
60876
61290
  program.addCommand(createListCommand());