@go-to-k/cdkd 0.257.4 → 0.258.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.258.0";
1904
1905
  }
1905
1906
  /**
1906
1907
  * Generate a time-sortable unique run id, e.g.
@@ -10392,6 +10393,394 @@ 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
+ buildAttributes(imageArn, state, extra) {
10605
+ const attributes = { ImageArn: imageArn };
10606
+ if (state !== void 0) attributes["State"] = state;
10607
+ if (extra.latestActiveImageVersion !== void 0) attributes["LatestActiveImageVersion"] = extra.latestActiveImageVersion;
10608
+ if (extra.latestFailedImageVersion !== void 0) attributes["LatestFailedImageVersion"] = extra.latestFailedImageVersion;
10609
+ if (extra.createdAt !== void 0) attributes["CreatedAt"] = extra.createdAt.toISOString();
10610
+ if (extra.updatedAt !== void 0) attributes["UpdatedAt"] = extra.updatedAt.toISOString();
10611
+ return attributes;
10612
+ }
10613
+ /**
10614
+ * Poll `GetMicrovmImage` until the image reaches a terminal success state
10615
+ * (`CREATED` after create, `CREATED` / `UPDATED` after update). Throws on the
10616
+ * matching failure state (`CREATE_FAILED` / `UPDATE_FAILED`) or on
10617
+ * poll-cap exhaustion.
10618
+ */
10619
+ async waitForTerminalState(imageArn, logicalId, operation) {
10620
+ this.logger.debug(`Waiting for MicroVM image ${imageArn} to finish ${operation}...`);
10621
+ for (let attempt = 1; attempt <= this.maxPollAttempts; attempt++) {
10622
+ const resp = await this.client.send(new GetMicrovmImageCommand({ imageIdentifier: imageArn }));
10623
+ const state = resp.state;
10624
+ if (state === "CREATED" || state === "UPDATED") {
10625
+ this.logger.debug(`MicroVM image ${imageArn} reached ${state}`);
10626
+ return resp;
10627
+ }
10628
+ 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.`);
10629
+ this.logger.debug(`MicroVM image ${imageArn} state: ${state} (attempt ${attempt}/${this.maxPollAttempts})`);
10630
+ await sleep$2(this.pollIntervalMs);
10631
+ }
10632
+ 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.`);
10633
+ }
10634
+ /**
10635
+ * Poll `GetMicrovmImage` until it 404s (image fully deleted). Throws on
10636
+ * `DELETE_FAILED` or poll-cap exhaustion.
10637
+ */
10638
+ async waitForDeleted(imageArn, logicalId) {
10639
+ for (let attempt = 1; attempt <= this.maxPollAttempts; attempt++) {
10640
+ let resp;
10641
+ try {
10642
+ resp = await this.client.send(new GetMicrovmImageCommand({ imageIdentifier: imageArn }));
10643
+ } catch (error) {
10644
+ if (error instanceof ResourceNotFoundException$7) return;
10645
+ throw error;
10646
+ }
10647
+ 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.`);
10648
+ this.logger.debug(`MicroVM image ${imageArn} state: ${resp.state} (delete attempt ${attempt}/${this.maxPollAttempts})`);
10649
+ await sleep$2(this.pollIntervalMs);
10650
+ }
10651
+ throw new Error(`MicroVM image ${logicalId} (${imageArn}) was not fully deleted within ${this.maxPollAttempts * this.pollIntervalMs / 1e3}s.`);
10652
+ }
10653
+ /**
10654
+ * Reconcile the resource's tags to the desired set via TagResource /
10655
+ * UntagResource (diff of the CFn `Tags` list, old vs new). Tags are NOT a
10656
+ * field on UpdateMicrovmImage, so this is the only way a tag change reaches
10657
+ * AWS on update — and it applies without an image rebuild.
10658
+ */
10659
+ async reconcileTags(physicalId, newTags, oldTags) {
10660
+ const newMap = mapKeyValueListToRecord(newTags) ?? {};
10661
+ const oldMap = mapKeyValueListToRecord(oldTags) ?? {};
10662
+ const keysToRemove = Object.keys(oldMap).filter((k) => !(k in newMap));
10663
+ const tagsToAdd = {};
10664
+ for (const [k, v] of Object.entries(newMap)) if (oldMap[k] !== v) tagsToAdd[k] = v;
10665
+ if (keysToRemove.length > 0) await this.client.send(new UntagResourceCommand$10({
10666
+ Resource: physicalId,
10667
+ TagKeys: keysToRemove
10668
+ }));
10669
+ if (Object.keys(tagsToAdd).length > 0) await this.client.send(new TagResourceCommand$10({
10670
+ Resource: physicalId,
10671
+ Tags: tagsToAdd
10672
+ }));
10673
+ }
10674
+ wrapError(operation, logicalId, resourceType, physicalId, error) {
10675
+ if (error instanceof ProvisioningError) return error;
10676
+ const cause = error instanceof Error ? error : void 0;
10677
+ return new ProvisioningError(`Failed to ${operation} MicroVM image ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
10678
+ }
10679
+ };
10680
+ /**
10681
+ * CFn property names whose change requires an UpdateMicrovmImage call (an async
10682
+ * image rebuild). Everything the SDK's UpdateMicrovmImage accepts EXCEPT tags
10683
+ * (which reconcile out-of-band via TagResource / UntagResource) and Name
10684
+ * (create-only). A change limited to `Tags` skips the rebuild.
10685
+ */
10686
+ const BUILD_AFFECTING_CFN_KEYS = [
10687
+ "BaseImageArn",
10688
+ "BaseImageVersion",
10689
+ "BuildRoleArn",
10690
+ "Description",
10691
+ "CodeArtifact",
10692
+ "Logging",
10693
+ "EgressNetworkConnectors",
10694
+ "CpuConfigurations",
10695
+ "Resources",
10696
+ "AdditionalOsCapabilities",
10697
+ "Hooks",
10698
+ "EnvironmentVariables"
10699
+ ];
10700
+ function sleep$2(ms) {
10701
+ return new Promise((resolve) => setTimeout(resolve, ms));
10702
+ }
10703
+ /**
10704
+ * Build the optional create/update input fields shared by both operations,
10705
+ * translating each from its CloudFormation-schema shape to the SDK shape.
10706
+ * Only defined fields are included so the request never carries `undefined`.
10707
+ */
10708
+ function buildCommonImageInput(properties) {
10709
+ const input = {};
10710
+ if (typeof properties["BaseImageVersion"] === "string") input.baseImageVersion = properties["BaseImageVersion"];
10711
+ if (typeof properties["Description"] === "string") input.description = properties["Description"];
10712
+ const logging = mapLogging(properties["Logging"]);
10713
+ if (logging) input.logging = logging;
10714
+ if (Array.isArray(properties["EgressNetworkConnectors"])) input.egressNetworkConnectors = properties["EgressNetworkConnectors"];
10715
+ const cpuConfigurations = mapCpuConfigurations(properties["CpuConfigurations"]);
10716
+ if (cpuConfigurations) input.cpuConfigurations = cpuConfigurations;
10717
+ const resources = mapResources(properties["Resources"]);
10718
+ if (resources) input.resources = resources;
10719
+ if (Array.isArray(properties["AdditionalOsCapabilities"])) input.additionalOsCapabilities = properties["AdditionalOsCapabilities"];
10720
+ const hooks = mapHooks(properties["Hooks"]);
10721
+ if (hooks) input.hooks = hooks;
10722
+ const environmentVariables = mapKeyValueListToRecord(properties["EnvironmentVariables"]);
10723
+ if (environmentVariables) input.environmentVariables = environmentVariables;
10724
+ return input;
10725
+ }
10726
+ function mapCodeArtifact(value) {
10727
+ if (!isRecord(value)) return void 0;
10728
+ const uri = value["Uri"];
10729
+ return typeof uri === "string" ? { uri } : void 0;
10730
+ }
10731
+ function mapLogging(value) {
10732
+ if (!isRecord(value)) return void 0;
10733
+ if (value["Disabled"] === true) return { disabled: {} };
10734
+ const cloudWatch = value["CloudWatch"];
10735
+ if (isRecord(cloudWatch)) {
10736
+ const cw = {};
10737
+ if (typeof cloudWatch["LogGroup"] === "string") cw.logGroup = cloudWatch["LogGroup"];
10738
+ if (typeof cloudWatch["LogStream"] === "string") cw.logStream = cloudWatch["LogStream"];
10739
+ return { cloudWatch: cw };
10740
+ }
10741
+ }
10742
+ function mapCpuConfigurations(value) {
10743
+ if (!Array.isArray(value)) return void 0;
10744
+ return value.filter(isRecord).map((c) => ({ architecture: c["Architecture"] }));
10745
+ }
10746
+ function mapResources(value) {
10747
+ if (!Array.isArray(value)) return void 0;
10748
+ return value.filter(isRecord).map((r) => Number(r["MinimumMemoryInMiB"])).filter((n) => Number.isFinite(n)).map((minimumMemoryInMiB) => ({ minimumMemoryInMiB }));
10749
+ }
10750
+ /**
10751
+ * Translate the CFn `Hooks` structure (PascalCase keys throughout, all leaf
10752
+ * values are strings/numbers) to the SDK `hooks` shape (camelCase keys). Safe
10753
+ * to lower-case the first character of every key recursively because Hooks
10754
+ * carries no tagged unions and no array-of-record members.
10755
+ */
10756
+ function mapHooks(value) {
10757
+ if (!isRecord(value)) return void 0;
10758
+ return lowerFirstKeysDeep(value);
10759
+ }
10760
+ /**
10761
+ * Convert a CFn `[{Key, Value}]` list (used by both `Tags` and
10762
+ * `EnvironmentVariables`) to the SDK `Record<string, string>` shape. Returns
10763
+ * `undefined` for an empty / absent list so the request omits the field.
10764
+ */
10765
+ function mapKeyValueListToRecord(value) {
10766
+ if (!Array.isArray(value)) return void 0;
10767
+ const out = {};
10768
+ for (const entry of value) if (isRecord(entry) && typeof entry["Key"] === "string") out[entry["Key"]] = typeof entry["Value"] === "string" ? entry["Value"] : "";
10769
+ return Object.keys(out).length > 0 ? out : void 0;
10770
+ }
10771
+ function lowerFirstKeysDeep(value) {
10772
+ if (Array.isArray(value)) return value.map(lowerFirstKeysDeep);
10773
+ if (isRecord(value)) {
10774
+ const out = {};
10775
+ for (const [k, v] of Object.entries(value)) out[k.charAt(0).toLowerCase() + k.slice(1)] = lowerFirstKeysDeep(v);
10776
+ return out;
10777
+ }
10778
+ return value;
10779
+ }
10780
+ function isRecord(value) {
10781
+ return typeof value === "object" && value !== null && !Array.isArray(value);
10782
+ }
10783
+
10395
10784
  //#endregion
10396
10785
  //#region src/provisioning/providers/dynamodb-table-provider.ts
10397
10786
  /**
@@ -21037,14 +21426,14 @@ var StepFunctionsProvider = class {
21037
21426
  const tagsToRemove = [];
21038
21427
  for (const k of oldMap.keys()) if (!newMap.has(k)) tagsToRemove.push(k);
21039
21428
  if (tagsToRemove.length > 0) {
21040
- await this.getClient().send(new UntagResourceCommand$12({
21429
+ await this.getClient().send(new UntagResourceCommand$13({
21041
21430
  resourceArn: stateMachineArn,
21042
21431
  tagKeys: tagsToRemove
21043
21432
  }));
21044
21433
  this.logger.debug(`Removed ${tagsToRemove.length} tag(s) from SFN state machine ${stateMachineArn}`);
21045
21434
  }
21046
21435
  if (tagsToAdd.length > 0) {
21047
- await this.getClient().send(new TagResourceCommand$12({
21436
+ await this.getClient().send(new TagResourceCommand$13({
21048
21437
  resourceArn: stateMachineArn,
21049
21438
  tags: tagsToAdd
21050
21439
  }));
@@ -21656,14 +22045,14 @@ var ECSProvider = class {
21656
22045
  const tagsToRemove = [];
21657
22046
  for (const k of oldMap.keys()) if (!newMap.has(k)) tagsToRemove.push(k);
21658
22047
  if (tagsToRemove.length > 0) {
21659
- await this.getClient().send(new UntagResourceCommand$13({
22048
+ await this.getClient().send(new UntagResourceCommand$14({
21660
22049
  resourceArn,
21661
22050
  tagKeys: tagsToRemove
21662
22051
  }));
21663
22052
  this.logger.debug(`Removed ${tagsToRemove.length} tag(s) from ECS resource ${resourceArn}`);
21664
22053
  }
21665
22054
  if (tagsToAdd.length > 0) {
21666
- await this.getClient().send(new TagResourceCommand$13({
22055
+ await this.getClient().send(new TagResourceCommand$14({
21667
22056
  resourceArn,
21668
22057
  tags: tagsToAdd
21669
22058
  }));
@@ -27075,7 +27464,7 @@ var CognitoUserPoolProvider = class {
27075
27464
  if (!templatedActive) try {
27076
27465
  needsFlip = (await this.getClient().send(new DescribeUserPoolCommand({ UserPoolId: physicalId }))).UserPool?.DeletionProtection === "ACTIVE";
27077
27466
  } catch (descError) {
27078
- if (descError instanceof ResourceNotFoundException$7) {
27467
+ if (descError instanceof ResourceNotFoundException$8) {
27079
27468
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
27080
27469
  this.logger.debug(`Cognito User Pool ${physicalId} does not exist, skipping deletion`);
27081
27470
  return;
@@ -27098,7 +27487,7 @@ var CognitoUserPoolProvider = class {
27098
27487
  await this.getClient().send(new DeleteUserPoolCommand({ UserPoolId: physicalId }));
27099
27488
  this.logger.debug(`Successfully deleted Cognito User Pool ${logicalId}`);
27100
27489
  } catch (error) {
27101
- if (error instanceof ResourceNotFoundException$7) {
27490
+ if (error instanceof ResourceNotFoundException$8) {
27102
27491
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
27103
27492
  this.logger.debug(`Cognito User Pool ${physicalId} does not exist, skipping deletion`);
27104
27493
  return;
@@ -27131,7 +27520,7 @@ var CognitoUserPoolProvider = class {
27131
27520
  try {
27132
27521
  resp = await this.getClient().send(new DescribeUserPoolCommand({ UserPoolId: physicalId }));
27133
27522
  } catch (err) {
27134
- if (err instanceof ResourceNotFoundException$7) return void 0;
27523
+ if (err instanceof ResourceNotFoundException$8) return void 0;
27135
27524
  throw err;
27136
27525
  }
27137
27526
  const pool = resp.UserPool;
@@ -27205,7 +27594,7 @@ var CognitoUserPoolProvider = class {
27205
27594
  attributes: {}
27206
27595
  };
27207
27596
  } catch (err) {
27208
- if (err instanceof ResourceNotFoundException$7) return null;
27597
+ if (err instanceof ResourceNotFoundException$8) return null;
27209
27598
  throw err;
27210
27599
  }
27211
27600
  const desiredName = typeof input.properties?.["UserPoolName"] === "string" ? input.properties["UserPoolName"] : void 0;
@@ -28223,11 +28612,11 @@ var ServiceDiscoveryProvider = class ServiceDiscoveryProvider {
28223
28612
  const hasAdds = !!newTags && newTags.length > 0;
28224
28613
  if (removedKeys.length === 0 && !hasAdds) return;
28225
28614
  const arn = await this.resolveNamespaceArn(physicalId);
28226
- if (removedKeys.length > 0) await this.getClient().send(new UntagResourceCommand$14({
28615
+ if (removedKeys.length > 0) await this.getClient().send(new UntagResourceCommand$15({
28227
28616
  ResourceARN: arn,
28228
28617
  TagKeys: removedKeys
28229
28618
  }));
28230
- if (hasAdds) await this.getClient().send(new TagResourceCommand$14({
28619
+ if (hasAdds) await this.getClient().send(new TagResourceCommand$15({
28231
28620
  ResourceARN: arn,
28232
28621
  Tags: newTags
28233
28622
  }));
@@ -28863,7 +29252,7 @@ var AppSyncProvider = class {
28863
29252
  const tagsToAdd = {};
28864
29253
  for (const [k, v] of Object.entries(newMap)) if (oldMap[k] !== v) tagsToAdd[k] = v;
28865
29254
  if (tagKeysToRemove.length > 0) try {
28866
- await this.getClient().send(new UntagResourceCommand$15({
29255
+ await this.getClient().send(new UntagResourceCommand$16({
28867
29256
  resourceArn: arn,
28868
29257
  tagKeys: tagKeysToRemove
28869
29258
  }));
@@ -28871,7 +29260,7 @@ var AppSyncProvider = class {
28871
29260
  throw this.wrapUpdateError(error, resourceType, logicalId, apiId, "GraphqlApi (untag)");
28872
29261
  }
28873
29262
  if (Object.keys(tagsToAdd).length > 0) try {
28874
- await this.getClient().send(new TagResourceCommand$15({
29263
+ await this.getClient().send(new TagResourceCommand$16({
28875
29264
  resourceArn: arn,
28876
29265
  tags: tagsToAdd
28877
29266
  }));
@@ -31316,14 +31705,14 @@ var KMSProvider = class {
31316
31705
  const tagsToRemove = [];
31317
31706
  for (const k of oldMap.keys()) if (!newMap.has(k)) tagsToRemove.push(k);
31318
31707
  if (tagsToRemove.length > 0) {
31319
- await this.getClient().send(new UntagResourceCommand$10({
31708
+ await this.getClient().send(new UntagResourceCommand$11({
31320
31709
  KeyId: keyId,
31321
31710
  TagKeys: tagsToRemove
31322
31711
  }));
31323
31712
  this.logger.debug(`Removed ${tagsToRemove.length} tag(s) from KMS Key ${keyId}`);
31324
31713
  }
31325
31714
  if (tagsToAdd.length > 0) {
31326
- await this.getClient().send(new TagResourceCommand$10({
31715
+ await this.getClient().send(new TagResourceCommand$11({
31327
31716
  KeyId: keyId,
31328
31717
  Tags: tagsToAdd
31329
31718
  }));
@@ -31919,11 +32308,11 @@ var BudgetsBudgetProvider = class {
31919
32308
  const removedKeys = oldTags.map((t) => t.Key).filter((k) => {
31920
32309
  return typeof k === "string" && !newKeys.has(k);
31921
32310
  });
31922
- if (removedKeys.length > 0) await this.getClient().send(new UntagResourceCommand$16({
32311
+ if (removedKeys.length > 0) await this.getClient().send(new UntagResourceCommand$17({
31923
32312
  ResourceARN: arn,
31924
32313
  ResourceTagKeys: removedKeys
31925
32314
  }));
31926
- if (newTags.length > 0) await this.getClient().send(new TagResourceCommand$16({
32315
+ if (newTags.length > 0) await this.getClient().send(new TagResourceCommand$17({
31927
32316
  ResourceARN: arn,
31928
32317
  ResourceTags: newTags
31929
32318
  }));
@@ -32206,7 +32595,7 @@ var KinesisStreamProvider = class {
32206
32595
  }));
32207
32596
  this.logger.debug(`Successfully deleted Kinesis stream ${logicalId}`);
32208
32597
  } catch (error) {
32209
- if (error instanceof ResourceNotFoundException$8) {
32598
+ if (error instanceof ResourceNotFoundException$9) {
32210
32599
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
32211
32600
  this.logger.debug(`Kinesis stream ${physicalId} does not exist, skipping deletion`);
32212
32601
  return;
@@ -32281,7 +32670,7 @@ var KinesisStreamProvider = class {
32281
32670
  try {
32282
32671
  stream = (await this.getClient().send(new DescribeStreamCommand({ StreamName: physicalId }))).StreamDescription;
32283
32672
  } catch (err) {
32284
- if (err instanceof ResourceNotFoundException$8) return void 0;
32673
+ if (err instanceof ResourceNotFoundException$9) return void 0;
32285
32674
  throw err;
32286
32675
  }
32287
32676
  if (!stream) return void 0;
@@ -32299,7 +32688,7 @@ var KinesisStreamProvider = class {
32299
32688
  try {
32300
32689
  result["Tags"] = normalizeAwsTagsToCfn((await this.getClient().send(new ListTagsForStreamCommand({ StreamName: physicalId }))).Tags);
32301
32690
  } catch (err) {
32302
- if (err instanceof ResourceNotFoundException$8) return void 0;
32691
+ if (err instanceof ResourceNotFoundException$9) return void 0;
32303
32692
  this.logger.debug(`Kinesis ListTagsForStream(${physicalId}) failed: ${err instanceof Error ? err.message : String(err)}`);
32304
32693
  }
32305
32694
  return result;
@@ -32313,7 +32702,7 @@ var KinesisStreamProvider = class {
32313
32702
  attributes: {}
32314
32703
  };
32315
32704
  } catch (err) {
32316
- if (err instanceof ResourceNotFoundException$8) return null;
32705
+ if (err instanceof ResourceNotFoundException$9) return null;
32317
32706
  throw err;
32318
32707
  }
32319
32708
  return null;
@@ -32492,7 +32881,7 @@ var KinesisStreamConsumerProvider = class {
32492
32881
  await this.getClient().send(new DeregisterStreamConsumerCommand({ ConsumerARN: physicalId }));
32493
32882
  this.logger.debug(`Successfully deregistered Kinesis stream consumer ${logicalId}`);
32494
32883
  } catch (error) {
32495
- if (error instanceof ResourceNotFoundException$8) {
32884
+ if (error instanceof ResourceNotFoundException$9) {
32496
32885
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
32497
32886
  this.logger.debug(`Kinesis stream consumer ${physicalId} not found, skipping`);
32498
32887
  return;
@@ -32538,7 +32927,7 @@ var KinesisStreamConsumerProvider = class {
32538
32927
  try {
32539
32928
  desc = (await this.getClient().send(new DescribeStreamConsumerCommand({ ConsumerARN: physicalId }))).ConsumerDescription;
32540
32929
  } catch (err) {
32541
- if (err instanceof ResourceNotFoundException$8) return void 0;
32930
+ if (err instanceof ResourceNotFoundException$9) return void 0;
32542
32931
  throw err;
32543
32932
  }
32544
32933
  if (!desc) return void 0;
@@ -32548,7 +32937,7 @@ var KinesisStreamConsumerProvider = class {
32548
32937
  try {
32549
32938
  result["Tags"] = normalizeAwsTagsToCfn((await this.getClient().send(new ListTagsForResourceCommand$15({ ResourceARN: physicalId }))).Tags);
32550
32939
  } catch (err) {
32551
- if (err instanceof ResourceNotFoundException$8) return void 0;
32940
+ if (err instanceof ResourceNotFoundException$9) return void 0;
32552
32941
  this.logger.debug(`ListTagsForResource(${physicalId}) failed: ${err instanceof Error ? err.message : String(err)}`);
32553
32942
  result["Tags"] = [];
32554
32943
  }
@@ -32570,14 +32959,14 @@ var KinesisStreamConsumerProvider = class {
32570
32959
  const tagsToRemove = [];
32571
32960
  for (const k of Object.keys(oldMap)) if (!(k in newMap)) tagsToRemove.push(k);
32572
32961
  if (tagsToRemove.length > 0) {
32573
- await this.getClient().send(new UntagResourceCommand$17({
32962
+ await this.getClient().send(new UntagResourceCommand$18({
32574
32963
  ResourceARN: consumerArn,
32575
32964
  TagKeys: tagsToRemove
32576
32965
  }));
32577
32966
  this.logger.debug(`Removed ${tagsToRemove.length} tag(s) from Kinesis stream consumer ${consumerArn}`);
32578
32967
  }
32579
32968
  if (Object.keys(tagsToAdd).length > 0) {
32580
- await this.getClient().send(new TagResourceCommand$17({
32969
+ await this.getClient().send(new TagResourceCommand$18({
32581
32970
  ResourceARN: consumerArn,
32582
32971
  Tags: tagsToAdd
32583
32972
  }));
@@ -32754,7 +33143,7 @@ var SchedulerScheduleProvider = class {
32754
33143
  }));
32755
33144
  this.logger.debug(`Deleted Schedule ${logicalId}`);
32756
33145
  } catch (error) {
32757
- if (error instanceof ResourceNotFoundException$9) {
33146
+ if (error instanceof ResourceNotFoundException$10) {
32758
33147
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
32759
33148
  this.logger.debug(`Schedule ${logicalId} already deleted (not found), treating as success`);
32760
33149
  return;
@@ -32776,7 +33165,7 @@ var SchedulerScheduleProvider = class {
32776
33165
  return (await this.getClient().send(new GetScheduleCommand({ Name: physicalId }))).Arn;
32777
33166
  } catch (error) {
32778
33167
  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." : "";
33168
+ 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
33169
  throw new ProvisioningError(`Failed to resolve Arn for Schedule ${physicalId}: ${cause?.message ?? String(error)}.${customGroupHint}`, resourceType, physicalId, physicalId, cause);
32781
33170
  }
32782
33171
  }
@@ -32806,7 +33195,7 @@ var SchedulerScheduleProvider = class {
32806
33195
  ...response.Target !== void 0 && { Target: response.Target }
32807
33196
  };
32808
33197
  } catch (error) {
32809
- if (error instanceof ResourceNotFoundException$9) return;
33198
+ if (error instanceof ResourceNotFoundException$10) return;
32810
33199
  throw error;
32811
33200
  }
32812
33201
  }
@@ -32832,7 +33221,7 @@ var SchedulerScheduleProvider = class {
32832
33221
  attributes: response.Arn ? { Arn: response.Arn } : {}
32833
33222
  };
32834
33223
  } catch (error) {
32835
- if (error instanceof ResourceNotFoundException$9) return null;
33224
+ if (error instanceof ResourceNotFoundException$10) return null;
32836
33225
  throw error;
32837
33226
  }
32838
33227
  }
@@ -34194,11 +34583,11 @@ var FSxFileSystemProvider = class {
34194
34583
  }
34195
34584
  const toRemove = [];
34196
34585
  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({
34586
+ if (toSet.length > 0) await this.getClient().send(new TagResourceCommand$19({
34198
34587
  ResourceARN: arn,
34199
34588
  Tags: toSet
34200
34589
  }));
34201
- if (toRemove.length > 0) await this.getClient().send(new UntagResourceCommand$18({
34590
+ if (toRemove.length > 0) await this.getClient().send(new UntagResourceCommand$19({
34202
34591
  ResourceARN: arn,
34203
34592
  TagKeys: toRemove
34204
34593
  }));
@@ -36482,7 +36871,7 @@ var FirehoseProvider = class {
36482
36871
  await this.getClient().send(new DeleteDeliveryStreamCommand({ DeliveryStreamName: physicalId }));
36483
36872
  this.logger.debug(`Successfully deleted Firehose delivery stream ${logicalId}`);
36484
36873
  } catch (error) {
36485
- if (error instanceof ResourceNotFoundException$10) {
36874
+ if (error instanceof ResourceNotFoundException$11) {
36486
36875
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
36487
36876
  this.logger.debug(`Firehose delivery stream ${physicalId} does not exist, skipping deletion`);
36488
36877
  return;
@@ -37019,7 +37408,7 @@ var FirehoseProvider = class {
37019
37408
  try {
37020
37409
  desc = (await this.getClient().send(new DescribeDeliveryStreamCommand({ DeliveryStreamName: physicalId }))).DeliveryStreamDescription;
37021
37410
  } catch (err) {
37022
- if (err instanceof ResourceNotFoundException$10) return void 0;
37411
+ if (err instanceof ResourceNotFoundException$11) return void 0;
37023
37412
  throw err;
37024
37413
  }
37025
37414
  if (!desc) return void 0;
@@ -37050,7 +37439,7 @@ var FirehoseProvider = class {
37050
37439
  try {
37051
37440
  result["Tags"] = normalizeAwsTagsToCfn((await this.getClient().send(new ListTagsForDeliveryStreamCommand({ DeliveryStreamName: physicalId }))).Tags);
37052
37441
  } catch (err) {
37053
- if (err instanceof ResourceNotFoundException$10) return void 0;
37442
+ if (err instanceof ResourceNotFoundException$11) return void 0;
37054
37443
  this.logger.debug(`Firehose ListTagsForDeliveryStream(${physicalId}) failed: ${err instanceof Error ? err.message : String(err)}`);
37055
37444
  result["Tags"] = [];
37056
37445
  }
@@ -37087,7 +37476,7 @@ var FirehoseProvider = class {
37087
37476
  attributes: {}
37088
37477
  };
37089
37478
  } catch (err) {
37090
- if (err instanceof ResourceNotFoundException$10) return null;
37479
+ if (err instanceof ResourceNotFoundException$11) return null;
37091
37480
  throw err;
37092
37481
  }
37093
37482
  return null;
@@ -37829,7 +38218,7 @@ var CodeBuildProvider = class {
37829
38218
  await this.getClient().send(new DeleteProjectCommand({ name: physicalId }));
37830
38219
  this.logger.debug(`Successfully deleted CodeBuild Project ${logicalId}`);
37831
38220
  } catch (error) {
37832
- if (error instanceof ResourceNotFoundException$11) {
38221
+ if (error instanceof ResourceNotFoundException$12) {
37833
38222
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
37834
38223
  this.logger.debug(`CodeBuild Project ${physicalId} does not exist, skipping deletion`);
37835
38224
  return;
@@ -37884,7 +38273,7 @@ var CodeBuildProvider = class {
37884
38273
  try {
37885
38274
  project = (await this.getClient().send(new BatchGetProjectsCommand({ names: [physicalId] }))).projects?.[0];
37886
38275
  } catch (err) {
37887
- if (err instanceof ResourceNotFoundException$11) return void 0;
38276
+ if (err instanceof ResourceNotFoundException$12) return void 0;
37888
38277
  throw err;
37889
38278
  }
37890
38279
  if (!project) return void 0;
@@ -38029,7 +38418,7 @@ var CodeBuildProvider = class {
38029
38418
  attributes: {}
38030
38419
  } : null;
38031
38420
  } catch (err) {
38032
- if (err instanceof ResourceNotFoundException$11) return null;
38421
+ if (err instanceof ResourceNotFoundException$12) return null;
38033
38422
  throw err;
38034
38423
  }
38035
38424
  return null;
@@ -38269,11 +38658,11 @@ var CodeCommitRepositoryProvider = class {
38269
38658
  const repoArn = metadata?.Arn;
38270
38659
  if (repoArn) {
38271
38660
  const removedKeys = Object.keys(oldTagMap).filter((k) => !(k in newTagMap));
38272
- if (removedKeys.length > 0) await this.getClient().send(new UntagResourceCommand$19({
38661
+ if (removedKeys.length > 0) await this.getClient().send(new UntagResourceCommand$20({
38273
38662
  resourceArn: repoArn,
38274
38663
  tagKeys: removedKeys
38275
38664
  }));
38276
- if (Object.keys(newTagMap).length > 0) await this.getClient().send(new TagResourceCommand$19({
38665
+ if (Object.keys(newTagMap).length > 0) await this.getClient().send(new TagResourceCommand$20({
38277
38666
  resourceArn: repoArn,
38278
38667
  tags: newTagMap
38279
38668
  }));
@@ -38653,7 +39042,7 @@ var DLMLifecyclePolicyProvider = class {
38653
39042
  if (tagsChanged && arn) {
38654
39043
  const removedKeys = Object.keys(oldTags).filter((k) => !(k in newTags));
38655
39044
  if (removedKeys.length > 0) {
38656
- await this.getClient().send(new UntagResourceCommand$20({
39045
+ await this.getClient().send(new UntagResourceCommand$21({
38657
39046
  ResourceArn: arn,
38658
39047
  TagKeys: removedKeys
38659
39048
  }));
@@ -38662,7 +39051,7 @@ var DLMLifecyclePolicyProvider = class {
38662
39051
  const tagsToAdd = {};
38663
39052
  for (const [k, v] of Object.entries(newTags)) if (oldTags[k] !== v) tagsToAdd[k] = v;
38664
39053
  if (Object.keys(tagsToAdd).length > 0) {
38665
- await this.getClient().send(new TagResourceCommand$20({
39054
+ await this.getClient().send(new TagResourceCommand$21({
38666
39055
  ResourceArn: arn,
38667
39056
  Tags: tagsToAdd
38668
39057
  }));
@@ -38686,7 +39075,7 @@ var DLMLifecyclePolicyProvider = class {
38686
39075
  await this.getClient().send(new DeleteLifecyclePolicyCommand$1({ PolicyId: physicalId }));
38687
39076
  this.logger.debug(`Successfully deleted DLM Lifecycle Policy ${logicalId}`);
38688
39077
  } catch (error) {
38689
- if (error instanceof ResourceNotFoundException$12) {
39078
+ if (error instanceof ResourceNotFoundException$13) {
38690
39079
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
38691
39080
  this.logger.debug(`DLM Lifecycle Policy ${physicalId} does not exist, skipping deletion`);
38692
39081
  return;
@@ -38737,7 +39126,7 @@ var DLMLifecyclePolicyProvider = class {
38737
39126
  Tags: normalizeAwsTagsToCfn(policy.Tags)
38738
39127
  };
38739
39128
  } catch (error) {
38740
- if (error instanceof ResourceNotFoundException$12) return;
39129
+ if (error instanceof ResourceNotFoundException$13) return;
38741
39130
  throw error;
38742
39131
  }
38743
39132
  }
@@ -38773,7 +39162,7 @@ var DLMLifecyclePolicyProvider = class {
38773
39162
  attributes: response.Policy.PolicyArn ? { Arn: response.Policy.PolicyArn } : {}
38774
39163
  } : null;
38775
39164
  } catch (err) {
38776
- if (err instanceof ResourceNotFoundException$12) return null;
39165
+ if (err instanceof ResourceNotFoundException$13) return null;
38777
39166
  throw err;
38778
39167
  }
38779
39168
  return null;
@@ -38853,11 +39242,11 @@ var S3VectorsProvider = class {
38853
39242
  }
38854
39243
  if (!resourceArn) throw new ProvisioningError(`Could not resolve ARN for S3 VectorBucket ${logicalId} (${physicalId}); cannot apply tag update.`, resourceType, logicalId, physicalId);
38855
39244
  try {
38856
- if (Object.keys(toSet).length > 0) await this.getClient().send(new TagResourceCommand$21({
39245
+ if (Object.keys(toSet).length > 0) await this.getClient().send(new TagResourceCommand$22({
38857
39246
  resourceArn,
38858
39247
  tags: toSet
38859
39248
  }));
38860
- if (toRemove.length > 0) await this.getClient().send(new UntagResourceCommand$21({
39249
+ if (toRemove.length > 0) await this.getClient().send(new UntagResourceCommand$22({
38861
39250
  resourceArn,
38862
39251
  tagKeys: toRemove
38863
39252
  }));
@@ -39749,7 +40138,7 @@ var S3TablesProvider = class {
39749
40138
  const resourceArn = await this.lookupTableArn(tableBucketARN, namespace, name);
39750
40139
  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
40140
  if (removedKeys.length > 0) try {
39752
- await this.getClient().send(new UntagResourceCommand$22({
40141
+ await this.getClient().send(new UntagResourceCommand$23({
39753
40142
  resourceArn,
39754
40143
  tagKeys: removedKeys
39755
40144
  }));
@@ -39758,7 +40147,7 @@ var S3TablesProvider = class {
39758
40147
  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
40148
  }
39760
40149
  if (Object.keys(upserts).length > 0) try {
39761
- await this.getClient().send(new TagResourceCommand$22({
40150
+ await this.getClient().send(new TagResourceCommand$23({
39762
40151
  resourceArn,
39763
40152
  tags: upserts
39764
40153
  }));
@@ -39790,7 +40179,7 @@ var S3TablesProvider = class {
39790
40179
  if (removedKeys.length === 0 && Object.keys(upserts).length === 0) return;
39791
40180
  const resourceArn = physicalId;
39792
40181
  if (removedKeys.length > 0) try {
39793
- await this.getClient().send(new UntagResourceCommand$22({
40182
+ await this.getClient().send(new UntagResourceCommand$23({
39794
40183
  resourceArn,
39795
40184
  tagKeys: removedKeys
39796
40185
  }));
@@ -39799,7 +40188,7 @@ var S3TablesProvider = class {
39799
40188
  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
40189
  }
39801
40190
  if (Object.keys(upserts).length > 0) try {
39802
- await this.getClient().send(new TagResourceCommand$22({
40191
+ await this.getClient().send(new TagResourceCommand$23({
39803
40192
  resourceArn,
39804
40193
  tags: upserts
39805
40194
  }));
@@ -39982,11 +40371,11 @@ var ECRProvider = class {
39982
40371
  if (repoArn) {
39983
40372
  const newKeys = new Set((newTags ?? []).map((t) => t.Key).filter((k) => !!k));
39984
40373
  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({
40374
+ if (removedKeys.length > 0) await this.getClient().send(new UntagResourceCommand$12({
39986
40375
  resourceArn: repoArn,
39987
40376
  tagKeys: removedKeys
39988
40377
  }));
39989
- if (newTags && newTags.length > 0) await this.getClient().send(new TagResourceCommand$11({
40378
+ if (newTags && newTags.length > 0) await this.getClient().send(new TagResourceCommand$12({
39990
40379
  resourceArn: repoArn,
39991
40380
  tags: newTags
39992
40381
  }));
@@ -41299,6 +41688,7 @@ function registerAllProviders(registry) {
41299
41688
  registry.register("AWS::Lambda::EventSourceMapping", new LambdaEventSourceMappingProvider());
41300
41689
  registry.register("AWS::Lambda::LayerVersion", new LambdaLayerVersionProvider());
41301
41690
  registry.register("AWS::Lambda::EventInvokeConfig", new LambdaEventInvokeConfigProvider());
41691
+ registry.register("AWS::Lambda::MicrovmImage", new LambdaMicrovmImageProvider());
41302
41692
  registry.register("AWS::DynamoDB::Table", new DynamoDBTableProvider());
41303
41693
  registry.register("AWS::DynamoDB::GlobalTable", new DynamoDBGlobalTableProvider());
41304
41694
  registry.register("AWS::Logs::LogGroup", new LogsLogGroupProvider());
@@ -60870,7 +61260,7 @@ function createMigrateCommand() {
60870
61260
  */
60871
61261
  function buildProgram() {
60872
61262
  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");
61263
+ program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.258.0");
60874
61264
  program.addCommand(createBootstrapCommand());
60875
61265
  program.addCommand(createSynthCommand());
60876
61266
  program.addCommand(createListCommand());