@go-to-k/cdkd 0.269.2 → 0.270.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 WorkGraph, A as slowCcOperationTimeoutMs, At as warnDeprecatedNoPrefixCliFlag, B as applyRoleArnIfSet, Bt as resolveBucketRegion, C as yellow, Ct as resolveAutoAssetStorage, D as ProviderRegistry, Dt as resolveStateBucketWithDefaultAndSource, E as clearOnUpdateRemoval, Et as resolveStateBucketWithDefault, F as refStateLookupFromResource, Ft as uploadCfnTemplate, G as DagBuilder, H as describeTypeWithThrottleRetry, Ht as getAwsClients, I as WAFv2WebACLProvider, It as expectedOwnerParam, J as S3StateBackend, K as TemplateParser, Kt as CdkdError, L as normalizeAwsTagsToCfn, Lt as AssemblyReader, M as isTerminationProtectionPropagationError, Mt as CFN_TEMPLATE_URL_LIMIT, N as IntrinsicFunctionResolver, Nt as MIGRATE_TMP_PREFIX, O as findActionableSilentDrops, Ot as resolveUseCdkBootstrapAssets, P as cfnRefValueFromPhysicalId, Pt as findLargeInlineResources, Q as stringifyValue, Qt as LocalStartServiceError, R as resolveExplicitPhysicalId, Rt as processStackMessages, S as red, St as resolveApp, T as collectInlinePolicyNamesManagedBySiblings, Tt as resolveSkipPrefix, U as withRetry, Ut as resetAwsClients, V as DiffCalculator, Vt as AwsClients, W as isRetryableTransientError, Wt as setAwsClients, X as shouldRetainResource, Xt as LocalInvokeBuildError$1, Y as rebuildClientForBucketRegion, Yt as DeployCancelledError, Z as AssetPublisher, Zt as LocalMigrateError, _ as formatResourceLine, _t as getDockerImageBySourceHash, a as DeploymentEventsStore, an as ResourceUpdateNotSupportedError, at as BOOTSTRAP_MARKER_PREFIX, b as gray, bt as getDefaultStateBucketName, c as replayFailedOperations, ct as parseBootstrapMarker, d as IMPLICIT_DELETE_DEPENDENCIES, dt as buildDockerImage, en as MissingCdkCliError, et as buildAssetRedirectMap, f as computeImplicitDeleteEdges, fn as normalizeAwsError, ft as formatDockerLoginError, g as renderStatefulReason, gt as AssetManifestLoader, h as isStatefulRecreateTargetSync, ht as runDockerStreaming, i as DeploymentEventsReader, in as ResourceTimeoutError, it as AssetModeResolver, j as disableInstanceApiTermination, jt as CFN_TEMPLATE_BODY_LIMIT, k as CloudControlProvider, kt as stateBucketExistenceConfirmed, l as replayRollback, lt as validateAssetBucketName, m as MULTI_REGION_RECREATE_BLOCKED_TYPES, mt as runDockerForeground, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as PartialFailureError, nt as loadPublishableAssetManifest, o as planFailedOps, on as StackHasActiveImportsError, ot as ensureAssetStorage, p as extractDeploymentEventError, pn as withErrorHandling, pt as getDockerCmd, q as LockManager, r as DeployEngine, rn as ProvisioningError, rt as rewriteTemplateAssetReferences, s as planRollback, sn as StackTerminationProtectionError, st as getBootstrapMarkerKey, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as NestedStackChildDirectDestroyError, tt as createAssetRedirectResolver, u as withResourceDeadline, ut as validateContainerRepoName, v as bold, vt as Synthesizer, w as IAMRoleProvider, wt as resolveCaptureObservedState, x as green, xt as getLegacyStateBucketName, y as cyan, yt as synthesisStatusMessage, z as assertRegionMatch } from "./deploy-engine-CKWSFzIi.js";
2
+ import { $ as WorkGraph, A as slowCcOperationTimeoutMs, At as warnDeprecatedNoPrefixCliFlag, B as applyRoleArnIfSet, Bt as resolveBucketRegion, C as yellow, Ct as resolveAutoAssetStorage, D as ProviderRegistry, Dt as resolveStateBucketWithDefaultAndSource, E as clearOnUpdateRemoval, Et as resolveStateBucketWithDefault, F as refStateLookupFromResource, Ft as uploadCfnTemplate, G as DagBuilder, H as describeTypeWithThrottleRetry, Ht as getAwsClients, I as WAFv2WebACLProvider, It as expectedOwnerParam, J as S3StateBackend, K as TemplateParser, Kt as CdkdError, L as normalizeAwsTagsToCfn, Lt as AssemblyReader, M as isTerminationProtectionPropagationError, Mt as CFN_TEMPLATE_URL_LIMIT, N as IntrinsicFunctionResolver, Nt as MIGRATE_TMP_PREFIX, O as findActionableSilentDrops, Ot as resolveUseCdkBootstrapAssets, P as cfnRefValueFromPhysicalId, Pt as findLargeInlineResources, Q as stringifyValue, Qt as LocalStartServiceError, R as resolveExplicitPhysicalId, Rt as processStackMessages, S as red, St as resolveApp, T as collectInlinePolicyNamesManagedBySiblings, Tt as resolveSkipPrefix, U as withRetry, Ut as resetAwsClients, V as DiffCalculator, Vt as AwsClients, W as isRetryableTransientError, Wt as setAwsClients, X as shouldRetainResource, Xt as LocalInvokeBuildError$1, Y as rebuildClientForBucketRegion, Yt as DeployCancelledError, Z as AssetPublisher, Zt as LocalMigrateError, _ as formatResourceLine, _t as getDockerImageBySourceHash, a as DeploymentEventsStore, an as ResourceUpdateNotSupportedError, at as BOOTSTRAP_MARKER_PREFIX, b as gray, bt as getDefaultStateBucketName, c as replayFailedOperations, ct as parseBootstrapMarker, d as IMPLICIT_DELETE_DEPENDENCIES, dt as buildDockerImage, en as MissingCdkCliError, et as buildAssetRedirectMap, f as computeImplicitDeleteEdges, fn as normalizeAwsError, ft as formatDockerLoginError, g as renderStatefulReason, gt as AssetManifestLoader, h as isStatefulRecreateTargetSync, ht as runDockerStreaming, i as DeploymentEventsReader, in as ResourceTimeoutError, it as AssetModeResolver, j as disableInstanceApiTermination, jt as CFN_TEMPLATE_BODY_LIMIT, k as CloudControlProvider, kt as stateBucketExistenceConfirmed, l as replayRollback, lt as validateAssetBucketName, m as MULTI_REGION_RECREATE_BLOCKED_TYPES, mt as runDockerForeground, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as PartialFailureError, nt as loadPublishableAssetManifest, o as planFailedOps, on as StackHasActiveImportsError, ot as ensureAssetStorage, p as extractDeploymentEventError, pn as withErrorHandling, pt as getDockerCmd, q as LockManager, r as DeployEngine, rn as ProvisioningError, rt as rewriteTemplateAssetReferences, s as planRollback, sn as StackTerminationProtectionError, st as getBootstrapMarkerKey, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as NestedStackChildDirectDestroyError, tt as createAssetRedirectResolver, u as withResourceDeadline, ut as validateContainerRepoName, v as bold, vt as Synthesizer, w as IAMRoleProvider, wt as resolveCaptureObservedState, x as green, xt as getLegacyStateBucketName, y as cyan, yt as synthesisStatusMessage, z as assertRegionMatch } from "./deploy-engine-D3tkYlnl.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-COr7zWfc.js";
4
+ import { t as ASGProvider } from "./asg-provider-D3Ioxi3j.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";
@@ -18,11 +18,11 @@ import { CreateEventBusCommand, DeleteEventBusCommand, DeleteRuleCommand, Descri
18
18
  import { CreateSecretCommand, DeleteSecretCommand, DescribeSecretCommand, GetSecretValueCommand, RemoveRegionsFromReplicationCommand, ReplicateSecretToRegionsCommand, ResourceNotFoundException as ResourceNotFoundException$3, SecretsManagerClient, TagResourceCommand as TagResourceCommand$5, UntagResourceCommand as UntagResourceCommand$5, UpdateSecretCommand } from "@aws-sdk/client-secrets-manager";
19
19
  import { AddTagsToResourceCommand, DeleteParameterCommand, DescribeParametersCommand, GetParameterCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$2, ParameterNotFound, PutParameterCommand, RemoveTagsFromResourceCommand, SSMClient } from "@aws-sdk/client-ssm";
20
20
  import { CloudFrontClient, CreateCloudFrontOriginAccessIdentityCommand, CreateDistributionCommand, CreateDistributionWithTagsCommand, CreateOriginAccessControlCommand, DeleteCloudFrontOriginAccessIdentityCommand, DeleteDistributionCommand, DeleteOriginAccessControlCommand, GetCloudFrontOriginAccessIdentityCommand, GetDistributionCommand, GetDistributionConfigCommand, GetOriginAccessControlCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$3, NoSuchCloudFrontOriginAccessIdentity, NoSuchDistribution, NoSuchOriginAccessControl, TagResourceCommand as TagResourceCommand$6, UntagResourceCommand as UntagResourceCommand$6, UpdateCloudFrontOriginAccessIdentityCommand, UpdateDistributionCommand, UpdateOriginAccessControlCommand } from "@aws-sdk/client-cloudfront";
21
- import { CloudWatchClient, DeleteAlarmsCommand, DescribeAlarmsCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$4, PutMetricAlarmCommand, TagResourceCommand as TagResourceCommand$7, UntagResourceCommand as UntagResourceCommand$7 } from "@aws-sdk/client-cloudwatch";
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
- 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
- import { ACMClient, AddTagsToCertificateCommand, DeleteCertificateCommand, DescribeCertificateCommand, ListTagsForCertificateCommand, RemoveTagsFromCertificateCommand, RequestCertificateCommand, ResourceNotFoundException as ResourceNotFoundException$6, UpdateCertificateOptionsCommand } from "@aws-sdk/client-acm";
25
- import { CreateMicrovmImageCommand, DeleteMicrovmImageCommand, GetMicrovmImageCommand, LambdaMicrovmsClient, ListTagsCommand as ListTagsCommand$1, ResourceNotFoundException as ResourceNotFoundException$7, TagResourceCommand as TagResourceCommand$10, UntagResourceCommand as UntagResourceCommand$10, UpdateMicrovmImageCommand } from "@aws-sdk/client-lambda-microvms";
21
+ import { CloudWatchClient, DeleteAlarmsCommand, DeleteAnomalyDetectorCommand, DescribeAlarmsCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$4, PutAnomalyDetectorCommand, PutMetricAlarmCommand, ResourceNotFoundException as ResourceNotFoundException$4, TagResourceCommand as TagResourceCommand$7, UntagResourceCommand as UntagResourceCommand$7 } from "@aws-sdk/client-cloudwatch";
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$5, TagResourceCommand as TagResourceCommand$8, UntagResourceCommand as UntagResourceCommand$8 } from "@aws-sdk/client-cloudwatch-logs";
23
+ import { BedrockAgentCoreControlClient, CreateAgentRuntimeCommand, CreateEvaluatorCommand, DeleteAgentRuntimeCommand, DeleteEvaluatorCommand, GetAgentRuntimeCommand, GetBrowserCommand, GetCodeInterpreterCommand, GetEvaluatorCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$6, ResourceNotFoundException as ResourceNotFoundException$6, TagResourceCommand as TagResourceCommand$9, UntagResourceCommand as UntagResourceCommand$9, UpdateAgentRuntimeCommand, UpdateEvaluatorCommand } from "@aws-sdk/client-bedrock-agentcore-control";
24
+ import { ACMClient, AddTagsToCertificateCommand, DeleteCertificateCommand, DescribeCertificateCommand, ListTagsForCertificateCommand, RemoveTagsFromCertificateCommand, RequestCertificateCommand, ResourceNotFoundException as ResourceNotFoundException$7, UpdateCertificateOptionsCommand } from "@aws-sdk/client-acm";
25
+ import { CreateMicrovmImageCommand, DeleteMicrovmImageCommand, GetMicrovmImageCommand, LambdaMicrovmsClient, ListTagsCommand as ListTagsCommand$1, ResourceNotFoundException as ResourceNotFoundException$8, TagResourceCommand as TagResourceCommand$10, UntagResourceCommand as UntagResourceCommand$10, UpdateMicrovmImageCommand } from "@aws-sdk/client-lambda-microvms";
26
26
  import * as fs from "node:fs";
27
27
  import { cpSync, existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, rmSync, statSync, writeFileSync } from "node:fs";
28
28
  import * as path from "node:path";
@@ -48,23 +48,23 @@ import { CreateStateMachineCommand, DeleteStateMachineCommand, DescribeStateMach
48
48
  import { CreateClusterCommand, CreateServiceCommand, DeleteClusterCommand, DeleteServiceCommand, DeregisterTaskDefinitionCommand, DescribeClustersCommand, DescribeServicesCommand, DescribeTaskDefinitionCommand, ECSClient, PutClusterCapacityProvidersCommand, RegisterTaskDefinitionCommand, TagResourceCommand as TagResourceCommand$14, UntagResourceCommand as UntagResourceCommand$14, UpdateClusterCommand, UpdateServiceCommand, waitUntilServicesStable } from "@aws-sdk/client-ecs";
49
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";
50
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";
51
- import { AddCustomAttributesCommand, CognitoIdentityProviderClient, CreateUserPoolCommand, DeleteUserPoolCommand, DescribeUserPoolCommand, GetUserPoolMfaConfigCommand, ListUserPoolsCommand, ResourceNotFoundException as ResourceNotFoundException$8, SetUserPoolMfaConfigCommand, UpdateUserPoolCommand } from "@aws-sdk/client-cognito-identity-provider";
51
+ import { AddCustomAttributesCommand, CognitoIdentityProviderClient, CreateUserPoolCommand, DeleteUserPoolCommand, DescribeUserPoolCommand, GetUserPoolMfaConfigCommand, ListUserPoolsCommand, ResourceNotFoundException as ResourceNotFoundException$9, SetUserPoolMfaConfigCommand, UpdateUserPoolCommand } from "@aws-sdk/client-cognito-identity-provider";
52
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
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";
54
54
  import { parse, print } from "graphql";
55
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";
56
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";
57
+ import { AddTagsToStreamCommand, CreateStreamCommand, DecreaseStreamRetentionPeriodCommand, DeleteStreamCommand, DeregisterStreamConsumerCommand, DescribeStreamCommand, DescribeStreamConsumerCommand, DescribeStreamSummaryCommand, IncreaseStreamRetentionPeriodCommand, KinesisClient, ListTagsForResourceCommand as ListTagsForResourceCommand$15, ListTagsForStreamCommand, RegisterStreamConsumerCommand, RemoveTagsFromStreamCommand, ResourceNotFoundException as ResourceNotFoundException$10, 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$11, SchedulerClient, UpdateScheduleCommand } from "@aws-sdk/client-scheduler";
59
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";
60
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";
61
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";
62
- import { CreateDeliveryStreamCommand, DeleteDeliveryStreamCommand, DescribeDeliveryStreamCommand, FirehoseClient, ListTagsForDeliveryStreamCommand, ResourceNotFoundException as ResourceNotFoundException$11, TagDeliveryStreamCommand, UntagDeliveryStreamCommand, UpdateDestinationCommand } from "@aws-sdk/client-firehose";
62
+ import { CreateDeliveryStreamCommand, DeleteDeliveryStreamCommand, DescribeDeliveryStreamCommand, FirehoseClient, ListTagsForDeliveryStreamCommand, ResourceNotFoundException as ResourceNotFoundException$12, TagDeliveryStreamCommand, UntagDeliveryStreamCommand, UpdateDestinationCommand } from "@aws-sdk/client-firehose";
63
63
  import { AddTagsCommand as AddTagsCommand$2, CloudTrailClient, CreateTrailCommand, DeleteTrailCommand, GetEventSelectorsCommand, GetInsightSelectorsCommand, GetTrailCommand, GetTrailStatusCommand, ListTagsCommand as ListTagsCommand$2, PutEventSelectorsCommand, PutInsightSelectorsCommand, RemoveTagsCommand as RemoveTagsCommand$2, StartLoggingCommand, StopLoggingCommand, TrailNotFoundException, UpdateTrailCommand } from "@aws-sdk/client-cloudtrail";
64
- import { BatchGetProjectsCommand, CodeBuildClient, CreateProjectCommand, DeleteProjectCommand, ResourceNotFoundException as ResourceNotFoundException$12, UpdateProjectCommand } from "@aws-sdk/client-codebuild";
64
+ import { BatchGetProjectsCommand, CodeBuildClient, CreateProjectCommand, DeleteProjectCommand, ResourceNotFoundException as ResourceNotFoundException$13, UpdateProjectCommand } from "@aws-sdk/client-codebuild";
65
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";
66
66
  import AdmZip from "adm-zip";
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";
67
+ import { CreateLifecyclePolicyCommand, DLMClient, DeleteLifecyclePolicyCommand as DeleteLifecyclePolicyCommand$1, GetLifecyclePolicyCommand as GetLifecyclePolicyCommand$1, ResourceNotFoundException as ResourceNotFoundException$14, TagResourceCommand as TagResourceCommand$21, UntagResourceCommand as UntagResourceCommand$21, UpdateLifecyclePolicyCommand } from "@aws-sdk/client-dlm";
68
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
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";
70
70
  import { Document, Pair, Scalar, YAMLMap, YAMLSeq, parse as parse$1, stringify } from "yaml";
@@ -10324,7 +10324,7 @@ var LambdaMicrovmImageProvider = class {
10324
10324
  try {
10325
10325
  await this.client.send(new DeleteMicrovmImageCommand({ imageIdentifier: physicalId }));
10326
10326
  } catch (error) {
10327
- if (error instanceof ResourceNotFoundException$7) {
10327
+ if (error instanceof ResourceNotFoundException$8) {
10328
10328
  assertRegionMatch(await this.client.config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
10329
10329
  this.logger.debug(`MicroVM image ${physicalId} does not exist, skipping deletion`);
10330
10330
  return;
@@ -10369,7 +10369,7 @@ var LambdaMicrovmImageProvider = class {
10369
10369
  attributes: { ImageArn: arn }
10370
10370
  };
10371
10371
  } catch (error) {
10372
- if (error instanceof ResourceNotFoundException$7) return null;
10372
+ if (error instanceof ResourceNotFoundException$8) return null;
10373
10373
  throw error;
10374
10374
  }
10375
10375
  }
@@ -10395,7 +10395,7 @@ var LambdaMicrovmImageProvider = class {
10395
10395
  try {
10396
10396
  name = (await this.client.send(new GetMicrovmImageCommand({ imageIdentifier: physicalId }))).name;
10397
10397
  } catch (error) {
10398
- if (error instanceof ResourceNotFoundException$7) return void 0;
10398
+ if (error instanceof ResourceNotFoundException$8) return void 0;
10399
10399
  throw error;
10400
10400
  }
10401
10401
  const result = {};
@@ -10454,7 +10454,7 @@ var LambdaMicrovmImageProvider = class {
10454
10454
  try {
10455
10455
  resp = await this.client.send(new GetMicrovmImageCommand({ imageIdentifier: imageArn }));
10456
10456
  } catch (error) {
10457
- if (error instanceof ResourceNotFoundException$7) return;
10457
+ if (error instanceof ResourceNotFoundException$8) return;
10458
10458
  throw error;
10459
10459
  }
10460
10460
  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.`);
@@ -13070,7 +13070,7 @@ var LogsLogGroupProvider = class {
13070
13070
  } else try {
13071
13071
  await this.logsClient.send(new DeleteIndexPolicyCommand({ logGroupIdentifier: physicalId }));
13072
13072
  } catch (err) {
13073
- if (!(err instanceof ResourceNotFoundException$4)) throw err;
13073
+ if (!(err instanceof ResourceNotFoundException$5)) throw err;
13074
13074
  }
13075
13075
  const newTags = properties["Tags"];
13076
13076
  const oldTags = previousProperties["Tags"];
@@ -13116,7 +13116,7 @@ var LogsLogGroupProvider = class {
13116
13116
  await this.logsClient.send(new DeleteLogGroupCommand({ logGroupName: physicalId }));
13117
13117
  this.logger.debug(`Successfully deleted log group ${logicalId}`);
13118
13118
  } catch (error) {
13119
- if (error instanceof ResourceNotFoundException$4) {
13119
+ if (error instanceof ResourceNotFoundException$5) {
13120
13120
  assertRegionMatch(await this.logsClient.config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
13121
13121
  this.logger.debug(`Log group ${physicalId} does not exist, skipping deletion`);
13122
13122
  return;
@@ -13207,7 +13207,7 @@ var LogsLogGroupProvider = class {
13207
13207
  try {
13208
13208
  tags = normalizeAwsTagsToCfn((await this.logsClient.send(new ListTagsForResourceCommand$5({ resourceArn: arnForTags }))).tags);
13209
13209
  } catch (err) {
13210
- if (err instanceof ResourceNotFoundException$4) return void 0;
13210
+ if (err instanceof ResourceNotFoundException$5) return void 0;
13211
13211
  throw err;
13212
13212
  }
13213
13213
  }
@@ -13236,7 +13236,7 @@ var LogsLogGroupProvider = class {
13236
13236
  result["FieldIndexPolicies"] = fieldIndexPolicies;
13237
13237
  return result;
13238
13238
  } catch (err) {
13239
- if (err instanceof ResourceNotFoundException$4) return void 0;
13239
+ if (err instanceof ResourceNotFoundException$5) return void 0;
13240
13240
  throw err;
13241
13241
  }
13242
13242
  }
@@ -13255,7 +13255,7 @@ var LogsLogGroupProvider = class {
13255
13255
  attributes: {}
13256
13256
  } : null;
13257
13257
  } catch (err) {
13258
- if (err instanceof ResourceNotFoundException$4) return null;
13258
+ if (err instanceof ResourceNotFoundException$5) return null;
13259
13259
  throw err;
13260
13260
  }
13261
13261
  return null;
@@ -13584,6 +13584,233 @@ var CloudWatchAlarmProvider = class {
13584
13584
  }
13585
13585
  };
13586
13586
 
13587
+ //#endregion
13588
+ //#region src/provisioning/providers/cloudwatch-anomaly-detector-provider.ts
13589
+ /**
13590
+ * AWS CloudWatch AnomalyDetector Provider (issue #1304)
13591
+ *
13592
+ * Implements resource provisioning for AWS::CloudWatch::AnomalyDetector using
13593
+ * the CloudWatch SDK. The type is NON_PROVISIONABLE in the CloudFormation
13594
+ * registry (no Cloud Control handlers), so without this provider cdkd's
13595
+ * pre-flight rejects any template that declares it.
13596
+ *
13597
+ * API mapping: `PutAnomalyDetector` is an UPSERT keyed by the metric
13598
+ * descriptor (the single-metric tuple or the metric-math query set), and
13599
+ * `DeleteAnomalyDetector` takes the same descriptor. There is no
13600
+ * server-generated identifier; the registry schema's read-only `Id`
13601
+ * primaryIdentifier has no Cloud Control handler to mint it. cdkd therefore
13602
+ * derives a DETERMINISTIC physical id from the descriptor (see
13603
+ * {@link derivePhysicalId}) — every descriptor field is createOnly in the
13604
+ * registry schema, so the id is stable across in-place updates
13605
+ * (`Configuration` is the only mutable property).
13606
+ */
13607
+ var CloudWatchAnomalyDetectorProvider = class {
13608
+ cloudWatchClient;
13609
+ logger = getLogger().child("CloudWatchAnomalyDetectorProvider");
13610
+ /**
13611
+ * NON_PROVISIONABLE type: Cloud Control has no handlers for it, so the
13612
+ * #614 unhandled-property auto-route must never send an
13613
+ * AnomalyDetector template to the CC path (it would fail at deploy time
13614
+ * with no handler). All properties are handled here instead.
13615
+ */
13616
+ disableCcApiFallback = true;
13617
+ handledProperties = /* @__PURE__ */ new Map([["AWS::CloudWatch::AnomalyDetector", /* @__PURE__ */ new Set([
13618
+ "Namespace",
13619
+ "MetricName",
13620
+ "Stat",
13621
+ "Dimensions",
13622
+ "Configuration",
13623
+ "MetricCharacteristics",
13624
+ "SingleMetricAnomalyDetector",
13625
+ "MetricMathAnomalyDetector"
13626
+ ])]]);
13627
+ constructor() {
13628
+ const awsClients = getAwsClients();
13629
+ this.cloudWatchClient = awsClients.cloudWatch;
13630
+ }
13631
+ /**
13632
+ * Create an anomaly detection model via `PutAnomalyDetector`.
13633
+ */
13634
+ async create(logicalId, resourceType, properties) {
13635
+ this.logger.debug(`Creating CloudWatch anomaly detector ${logicalId}`);
13636
+ const params = buildPutParams(properties);
13637
+ if (!hasDescriptor(params)) throw new ProvisioningError(`AnomalyDetector ${logicalId} needs a metric descriptor: either SingleMetricAnomalyDetector, MetricMathAnomalyDetector, or the top-level Namespace/MetricName/Stat fields`, resourceType, logicalId);
13638
+ try {
13639
+ await this.cloudWatchClient.send(new PutAnomalyDetectorCommand(params));
13640
+ const physicalId = derivePhysicalId(properties);
13641
+ this.logger.debug(`Successfully created CloudWatch anomaly detector ${logicalId}: ${physicalId}`);
13642
+ return {
13643
+ physicalId,
13644
+ attributes: { Id: physicalId }
13645
+ };
13646
+ } catch (error) {
13647
+ const cause = error instanceof Error ? error : void 0;
13648
+ throw new ProvisioningError(`Failed to create CloudWatch anomaly detector ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, void 0, cause);
13649
+ }
13650
+ }
13651
+ /**
13652
+ * Update an anomaly detection model.
13653
+ *
13654
+ * Every descriptor field (Namespace / MetricName / Stat / Dimensions /
13655
+ * SingleMetricAnomalyDetector / MetricMathAnomalyDetector /
13656
+ * MetricCharacteristics) is createOnly in the registry schema, so the
13657
+ * diff layer classifies a change to any of them as a REPLACEMENT and this
13658
+ * method never sees it. The only in-place change is `Configuration`
13659
+ * (excluded time ranges / time zone), which `PutAnomalyDetector` upserts
13660
+ * for the unchanged descriptor.
13661
+ *
13662
+ * Removal semantics: `PutAnomalyDetector` REPLACES the stored
13663
+ * Configuration rather than merging (live-verified 2026-07-31 — a Put
13664
+ * with no `Configuration` resets MetricTimezone + ExcludedTimeRanges to
13665
+ * defaults), so re-putting the full desired properties matches CFn's
13666
+ * "removed property resets to default" behavior with no extra clearing.
13667
+ */
13668
+ async update(logicalId, physicalId, resourceType, properties, _previousProperties) {
13669
+ this.logger.debug(`Updating CloudWatch anomaly detector ${logicalId}: ${physicalId}`);
13670
+ try {
13671
+ await this.cloudWatchClient.send(new PutAnomalyDetectorCommand(buildPutParams(properties)));
13672
+ this.logger.debug(`Successfully updated CloudWatch anomaly detector ${logicalId}`);
13673
+ return {
13674
+ physicalId,
13675
+ wasReplaced: false,
13676
+ attributes: { Id: physicalId }
13677
+ };
13678
+ } catch (error) {
13679
+ const cause = error instanceof Error ? error : void 0;
13680
+ throw new ProvisioningError(`Failed to update CloudWatch anomaly detector ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
13681
+ }
13682
+ }
13683
+ /**
13684
+ * Delete an anomaly detection model via `DeleteAnomalyDetector`.
13685
+ *
13686
+ * The API takes the metric DESCRIPTOR (not an id), so the state-recorded
13687
+ * `properties` are required to address the model. `ResourceNotFoundException`
13688
+ * is treated as idempotent success (after the shared region check).
13689
+ */
13690
+ async delete(logicalId, physicalId, resourceType, properties, context) {
13691
+ this.logger.debug(`Deleting CloudWatch anomaly detector ${logicalId}: ${physicalId}`);
13692
+ if (!properties) throw new ProvisioningError(`Cannot delete AnomalyDetector ${logicalId}: the state record carries no properties, and DeleteAnomalyDetector addresses the model by its metric descriptor. Use 'cdkd state orphan <stack>' to drop the record and delete the detector manually.`, resourceType, logicalId, physicalId);
13693
+ try {
13694
+ await this.cloudWatchClient.send(new DeleteAnomalyDetectorCommand(buildDeleteParams(properties)));
13695
+ this.logger.debug(`Successfully deleted CloudWatch anomaly detector ${logicalId}`);
13696
+ } catch (error) {
13697
+ if (error instanceof ResourceNotFoundException$4) {
13698
+ assertRegionMatch(await this.cloudWatchClient.config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
13699
+ this.logger.debug(`Anomaly detector ${physicalId} does not exist, skipping deletion`);
13700
+ return;
13701
+ }
13702
+ const cause = error instanceof Error ? error : void 0;
13703
+ throw new ProvisioningError(`Failed to delete CloudWatch anomaly detector ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
13704
+ }
13705
+ }
13706
+ /**
13707
+ * Resolve a `Fn::GetAtt` attribute. The registry schema exposes a single
13708
+ * read-only attribute, `Id` — cdkd's deterministic physical id.
13709
+ */
13710
+ async getAttribute(physicalId, resourceType, attributeName) {
13711
+ if (attributeName === "Id") return physicalId;
13712
+ throw new ProvisioningError(`Unknown attribute ${attributeName} for ${resourceType} (only 'Id' is defined)`, resourceType, physicalId);
13713
+ }
13714
+ /**
13715
+ * Adopt an existing anomaly detector into cdkd state.
13716
+ *
13717
+ * **Explicit override only.** Anomaly detectors are addressed by their
13718
+ * metric descriptor, carry no tags, and have no name property — there is
13719
+ * nothing to auto-look them up by. Users adopting one should pass
13720
+ * `--resource <logicalId>=<id>` where `<id>` is any stable identifier
13721
+ * (cdkd re-derives the canonical one on the next replacement).
13722
+ */
13723
+ async import(input) {
13724
+ if (input.knownPhysicalId) return {
13725
+ physicalId: input.knownPhysicalId,
13726
+ attributes: { Id: input.knownPhysicalId }
13727
+ };
13728
+ return null;
13729
+ }
13730
+ };
13731
+ /**
13732
+ * Map CFn-shaped properties onto the `PutAnomalyDetector` input. CloudWatch's
13733
+ * SDK uses the same PascalCase field names as the CloudFormation schema, so
13734
+ * the mapping is structural: the only shape conversion is
13735
+ * `Configuration.ExcludedTimeRanges[].StartTime/EndTime`, which CFn carries
13736
+ * as ISO-8601 strings and the SDK models as `Date`.
13737
+ */
13738
+ function buildPutParams(properties) {
13739
+ const params = {};
13740
+ const single = properties["SingleMetricAnomalyDetector"];
13741
+ if (single !== void 0) params.SingleMetricAnomalyDetector = single;
13742
+ const math = properties["MetricMathAnomalyDetector"];
13743
+ if (math !== void 0) params.MetricMathAnomalyDetector = math;
13744
+ if (properties["Namespace"] !== void 0) params.Namespace = properties["Namespace"];
13745
+ if (properties["MetricName"] !== void 0) params.MetricName = properties["MetricName"];
13746
+ if (properties["Stat"] !== void 0) params.Stat = properties["Stat"];
13747
+ if (properties["Dimensions"] !== void 0) params.Dimensions = properties["Dimensions"];
13748
+ const configuration = properties["Configuration"];
13749
+ if (configuration !== void 0) {
13750
+ const mapped = {};
13751
+ if (configuration["MetricTimeZone"] !== void 0) mapped.MetricTimezone = configuration["MetricTimeZone"];
13752
+ const ranges = configuration["ExcludedTimeRanges"];
13753
+ if (ranges !== void 0) mapped.ExcludedTimeRanges = ranges.map((r) => ({
13754
+ StartTime: toDate(r["StartTime"]),
13755
+ EndTime: toDate(r["EndTime"])
13756
+ }));
13757
+ params.Configuration = mapped;
13758
+ }
13759
+ const characteristics = properties["MetricCharacteristics"];
13760
+ if (characteristics !== void 0) params.MetricCharacteristics = characteristics;
13761
+ return params;
13762
+ }
13763
+ /**
13764
+ * `DeleteAnomalyDetector` addresses the model by the same descriptor shape as
13765
+ * Put, minus the mutable `Configuration` / `MetricCharacteristics`.
13766
+ */
13767
+ function buildDeleteParams(properties) {
13768
+ const params = {};
13769
+ const single = properties["SingleMetricAnomalyDetector"];
13770
+ if (single !== void 0) params.SingleMetricAnomalyDetector = single;
13771
+ const math = properties["MetricMathAnomalyDetector"];
13772
+ if (math !== void 0) params.MetricMathAnomalyDetector = math;
13773
+ if (properties["Namespace"] !== void 0) params.Namespace = properties["Namespace"];
13774
+ if (properties["MetricName"] !== void 0) params.MetricName = properties["MetricName"];
13775
+ if (properties["Stat"] !== void 0) params.Stat = properties["Stat"];
13776
+ if (properties["Dimensions"] !== void 0) params.Dimensions = properties["Dimensions"];
13777
+ return params;
13778
+ }
13779
+ /** CFn carries Range times as ISO-8601 strings; the SDK models them as Date. */
13780
+ function toDate(value) {
13781
+ if (value === void 0) return void 0;
13782
+ if (value instanceof Date) return value;
13783
+ const parsed = new Date(String(value));
13784
+ if (Number.isNaN(parsed.getTime())) throw new Error(`Configuration.ExcludedTimeRanges contains an unparsable time value: ${String(value)}`);
13785
+ return parsed;
13786
+ }
13787
+ /**
13788
+ * Derive the deterministic physical id from the metric descriptor.
13789
+ *
13790
+ * Single-metric detectors get a readable composite
13791
+ * (`<Namespace>:<MetricName>:<Stat>[:<Name=Value,...>]`, dimensions sorted by
13792
+ * name so template ordering does not change the id); metric-math detectors
13793
+ * get a content hash of their query set (`math:<sha256-16>`). Descriptor
13794
+ * fields are all createOnly, so the id never changes across in-place updates.
13795
+ */
13796
+ function derivePhysicalId(properties) {
13797
+ const single = properties["SingleMetricAnomalyDetector"];
13798
+ const namespace = single?.Namespace ?? properties["Namespace"];
13799
+ const metricName = single?.MetricName ?? properties["MetricName"];
13800
+ const stat = single?.Stat ?? properties["Stat"];
13801
+ const dimensions = single?.Dimensions ?? properties["Dimensions"];
13802
+ if (namespace !== void 0 || metricName !== void 0) {
13803
+ const dims = (dimensions ?? []).map((d) => `${d.Name}=${d.Value}`).sort().join(",");
13804
+ const base = `${single?.AccountId !== void 0 ? `${single.AccountId}:` : ""}${namespace ?? ""}:${metricName ?? ""}:${stat ?? ""}`;
13805
+ return dims.length > 0 ? `${base}:${dims}` : base;
13806
+ }
13807
+ const math = properties["MetricMathAnomalyDetector"];
13808
+ return `math:${createHash("sha256").update(JSON.stringify(math ?? {})).digest("hex").slice(0, 16)}`;
13809
+ }
13810
+ function hasDescriptor(params) {
13811
+ return params.SingleMetricAnomalyDetector !== void 0 || params.MetricMathAnomalyDetector !== void 0 || params.Namespace !== void 0 || params.MetricName !== void 0;
13812
+ }
13813
+
13587
13814
  //#endregion
13588
13815
  //#region src/provisioning/providers/secretsmanager-secret-provider.ts
13589
13816
  /**
@@ -14935,7 +15162,7 @@ var EC2Provider = class {
14935
15162
  async applyUpdate(logicalId, physicalId, resourceType, properties, previousProperties) {
14936
15163
  switch (resourceType) {
14937
15164
  case "AWS::EC2::VPC": return this.updateVpc(logicalId, physicalId, resourceType, properties, previousProperties);
14938
- case "AWS::EC2::Subnet": return this.updateSubnet(logicalId, physicalId);
15165
+ case "AWS::EC2::Subnet": return this.updateSubnet(logicalId, physicalId, resourceType, properties, previousProperties);
14939
15166
  case "AWS::EC2::InternetGateway": return this.updateInternetGateway(logicalId, physicalId);
14940
15167
  case "AWS::EC2::EIP": return this.updateEip(logicalId, physicalId, properties, previousProperties);
14941
15168
  case "AWS::EC2::VPCGatewayAttachment": return this.updateVpcGatewayAttachment(logicalId, physicalId);
@@ -15157,10 +15384,13 @@ var EC2Provider = class {
15157
15384
  try {
15158
15385
  await this.applyTags(subnetId, properties, logicalId);
15159
15386
  const mapPublicIp = properties["MapPublicIpOnLaunch"];
15160
- if (mapPublicIp === true || mapPublicIp === "true") await this.ec2Client.send(new ModifySubnetAttributeCommand({
15161
- SubnetId: subnetId,
15162
- MapPublicIpOnLaunch: { Value: true }
15163
- }));
15387
+ if (mapPublicIp === true || mapPublicIp === "true") {
15388
+ await this.ec2Client.send(new ModifySubnetAttributeCommand({
15389
+ SubnetId: subnetId,
15390
+ MapPublicIpOnLaunch: { Value: true }
15391
+ }));
15392
+ await this.waitForSubnetMapPublicIp(subnetId, true);
15393
+ }
15164
15394
  } catch (innerError) {
15165
15395
  try {
15166
15396
  await this.ec2Client.send(new DeleteSubnetCommand({ SubnetId: subnetId }));
@@ -15183,8 +15413,66 @@ var EC2Provider = class {
15183
15413
  throw new ProvisioningError(`Failed to create Subnet ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, void 0, cause);
15184
15414
  }
15185
15415
  }
15186
- updateSubnet(logicalId, physicalId) {
15187
- return Promise.reject(new ResourceUpdateNotSupportedError("AWS::EC2::Subnet", logicalId, "destroy + redeploy the Subnet (and the resources that depend on it). Subnet properties are immutable in AWS."));
15416
+ async updateSubnet(logicalId, physicalId, resourceType, properties, previousProperties) {
15417
+ this.logger.debug(`Updating Subnet ${logicalId}: ${physicalId}`);
15418
+ try {
15419
+ for (const createOnly of [
15420
+ "VpcId",
15421
+ "CidrBlock",
15422
+ "AvailabilityZone"
15423
+ ]) {
15424
+ const next = properties[createOnly];
15425
+ const prev = previousProperties[createOnly];
15426
+ if (next !== void 0 && prev !== void 0 && next !== prev) throw new ResourceUpdateNotSupportedError(resourceType, logicalId, `destroy + redeploy the Subnet (and the resources that depend on it). ${createOnly} is immutable in AWS`);
15427
+ }
15428
+ const asBool = (v) => v === true || v === "true";
15429
+ const newMapPublicIp = asBool(properties["MapPublicIpOnLaunch"]);
15430
+ if (newMapPublicIp !== asBool(previousProperties["MapPublicIpOnLaunch"])) {
15431
+ await this.ec2Client.send(new ModifySubnetAttributeCommand({
15432
+ SubnetId: physicalId,
15433
+ MapPublicIpOnLaunch: { Value: newMapPublicIp }
15434
+ }));
15435
+ await this.waitForSubnetMapPublicIp(physicalId, newMapPublicIp);
15436
+ }
15437
+ await this.applyTagDiff(physicalId, previousProperties["Tags"], properties["Tags"]);
15438
+ this.logger.debug(`Successfully updated Subnet ${logicalId}`);
15439
+ return {
15440
+ physicalId,
15441
+ wasReplaced: false
15442
+ };
15443
+ } catch (error) {
15444
+ if (error instanceof CdkdError) throw error;
15445
+ const cause = error instanceof Error ? error : void 0;
15446
+ throw new ProvisioningError(`Failed to update Subnet ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
15447
+ }
15448
+ }
15449
+ /**
15450
+ * Read back `MapPublicIpOnLaunch` until AWS reflects the value a
15451
+ * `ModifySubnetAttribute` just wrote (issue #1299). EC2 `Describe*` is
15452
+ * eventually consistent, so the deploy engine's async observed-state
15453
+ * capture (`kickOffObservedCapture` → `readCurrentState` →
15454
+ * `DescribeSubnets`), which fires milliseconds after `create()` /
15455
+ * `update()` returns, could read the STALE pre-modify value and persist
15456
+ * it as the drift baseline — every later `cdkd drift` then reported
15457
+ * phantom `MapPublicIpOnLaunch` drift on a resource nothing touched.
15458
+ *
15459
+ * Bounded and best-effort: the first read usually already reflects the
15460
+ * write (zero added latency beyond one DescribeSubnets round trip); on
15461
+ * exhaustion we log and return — behavior then degrades to the pre-fix
15462
+ * race instead of failing a deploy over a read-side consistency lag.
15463
+ */
15464
+ async waitForSubnetMapPublicIp(subnetId, expected) {
15465
+ const maxAttempts = 6;
15466
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
15467
+ try {
15468
+ if ((await this.ec2Client.send(new DescribeSubnetsCommand({ SubnetIds: [subnetId] }))).Subnets?.[0]?.MapPublicIpOnLaunch === expected) return;
15469
+ } catch (error) {
15470
+ this.logger.debug(`MapPublicIpOnLaunch read-back for ${subnetId} failed (attempt ${attempt}/${maxAttempts}): ${error instanceof Error ? error.message : String(error)}`);
15471
+ return;
15472
+ }
15473
+ if (attempt < maxAttempts) await this.sleep(100 * 2 ** (attempt - 1));
15474
+ }
15475
+ this.logger.debug(`MapPublicIpOnLaunch=${expected} not yet visible on ${subnetId} after ${maxAttempts} reads — the observed-state capture may record the stale value (issue #1299)`);
15188
15476
  }
15189
15477
  async deleteSubnet(logicalId, physicalId, resourceType, context) {
15190
15478
  this.logger.debug(`Deleting Subnet ${logicalId}: ${physicalId}`);
@@ -16956,9 +17244,12 @@ var EC2Provider = class {
16956
17244
  *
16957
17245
  * Other EC2 types (`VPC` / `Subnet` / `InternetGateway` /
16958
17246
  * `NatGateway` / `RouteTable` / `SecurityGroup` / `Instance` /
16959
- * `NetworkAcl`) have first-class Tags support via
16960
- * `DescribeTags` they surface `Tags` directly in
16961
- * `readCurrentState` and don't need this declaration.
17247
+ * `NetworkAcl`) have first-class Tags support on the WRITE side
17248
+ * (create/update tag wiring) and don't need this declaration.
17249
+ * NOTE: `readVpcCurrentState` / `readSubnetCurrentState` do NOT
17250
+ * currently surface `Tags`, so Tags drift on those types is out of
17251
+ * v1 drift scope — `AWS::EC2::Subnet`'s `updateableProperties:
17252
+ * Tags` entry serves only the template-update path today.
16962
17253
  */
16963
17254
  getDriftUnknownPaths(resourceType) {
16964
17255
  switch (resourceType) {
@@ -21144,7 +21435,7 @@ var AgentCoreRuntimeProvider = class {
21144
21435
  await this.client.send(new DeleteAgentRuntimeCommand({ agentRuntimeId: physicalId }));
21145
21436
  this.logger.debug(`Successfully deleted BedrockAgentCore Runtime ${logicalId}`);
21146
21437
  } catch (error) {
21147
- if (error instanceof ResourceNotFoundException$5) {
21438
+ if (error instanceof ResourceNotFoundException$6) {
21148
21439
  assertRegionMatch(await this.client.config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
21149
21440
  this.logger.debug(`Runtime ${physicalId} does not exist, skipping deletion`);
21150
21441
  return;
@@ -21239,7 +21530,7 @@ var AgentCoreRuntimeProvider = class {
21239
21530
  try {
21240
21531
  resp = await this.client.send(new GetAgentRuntimeCommand({ agentRuntimeId: physicalId }));
21241
21532
  } catch (err) {
21242
- if (err instanceof ResourceNotFoundException$5) return void 0;
21533
+ if (err instanceof ResourceNotFoundException$6) return void 0;
21243
21534
  throw err;
21244
21535
  }
21245
21536
  const result = {};
@@ -21714,7 +22005,7 @@ var AgentCoreEvaluatorProvider = class {
21714
22005
  await this.client.send(new DeleteEvaluatorCommand({ evaluatorId: evaluatorIdFromArn(physicalId) }));
21715
22006
  this.logger.debug(`Successfully deleted BedrockAgentCore Evaluator ${logicalId}`);
21716
22007
  } catch (error) {
21717
- if (error instanceof ResourceNotFoundException$5) {
22008
+ if (error instanceof ResourceNotFoundException$6) {
21718
22009
  assertRegionMatch(await this.client.config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
21719
22010
  this.logger.debug(`Evaluator ${physicalId} does not exist, skipping deletion`);
21720
22011
  return;
@@ -21753,7 +22044,7 @@ var AgentCoreEvaluatorProvider = class {
21753
22044
  try {
21754
22045
  resp = await this.client.send(new GetEvaluatorCommand({ evaluatorId: evaluatorIdFromArn(physicalId) }));
21755
22046
  } catch (err) {
21756
- if (err instanceof ResourceNotFoundException$5) return void 0;
22047
+ if (err instanceof ResourceNotFoundException$6) return void 0;
21757
22048
  throw err;
21758
22049
  }
21759
22050
  const result = {};
@@ -28561,7 +28852,7 @@ var CognitoUserPoolProvider = class {
28561
28852
  if (!templatedActive) try {
28562
28853
  needsFlip = (await this.getClient().send(new DescribeUserPoolCommand({ UserPoolId: physicalId }))).UserPool?.DeletionProtection === "ACTIVE";
28563
28854
  } catch (descError) {
28564
- if (descError instanceof ResourceNotFoundException$8) {
28855
+ if (descError instanceof ResourceNotFoundException$9) {
28565
28856
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
28566
28857
  this.logger.debug(`Cognito User Pool ${physicalId} does not exist, skipping deletion`);
28567
28858
  return;
@@ -28584,7 +28875,7 @@ var CognitoUserPoolProvider = class {
28584
28875
  await this.getClient().send(new DeleteUserPoolCommand({ UserPoolId: physicalId }));
28585
28876
  this.logger.debug(`Successfully deleted Cognito User Pool ${logicalId}`);
28586
28877
  } catch (error) {
28587
- if (error instanceof ResourceNotFoundException$8) {
28878
+ if (error instanceof ResourceNotFoundException$9) {
28588
28879
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
28589
28880
  this.logger.debug(`Cognito User Pool ${physicalId} does not exist, skipping deletion`);
28590
28881
  return;
@@ -28617,7 +28908,7 @@ var CognitoUserPoolProvider = class {
28617
28908
  try {
28618
28909
  resp = await this.getClient().send(new DescribeUserPoolCommand({ UserPoolId: physicalId }));
28619
28910
  } catch (err) {
28620
- if (err instanceof ResourceNotFoundException$8) return void 0;
28911
+ if (err instanceof ResourceNotFoundException$9) return void 0;
28621
28912
  throw err;
28622
28913
  }
28623
28914
  const pool = resp.UserPool;
@@ -28691,7 +28982,7 @@ var CognitoUserPoolProvider = class {
28691
28982
  attributes: {}
28692
28983
  };
28693
28984
  } catch (err) {
28694
- if (err instanceof ResourceNotFoundException$8) return null;
28985
+ if (err instanceof ResourceNotFoundException$9) return null;
28695
28986
  throw err;
28696
28987
  }
28697
28988
  const desiredName = typeof input.properties?.["UserPoolName"] === "string" ? input.properties["UserPoolName"] : void 0;
@@ -33720,7 +34011,7 @@ var KinesisStreamProvider = class {
33720
34011
  }));
33721
34012
  this.logger.debug(`Successfully deleted Kinesis stream ${logicalId}`);
33722
34013
  } catch (error) {
33723
- if (error instanceof ResourceNotFoundException$9) {
34014
+ if (error instanceof ResourceNotFoundException$10) {
33724
34015
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
33725
34016
  this.logger.debug(`Kinesis stream ${physicalId} does not exist, skipping deletion`);
33726
34017
  return;
@@ -33795,7 +34086,7 @@ var KinesisStreamProvider = class {
33795
34086
  try {
33796
34087
  stream = (await this.getClient().send(new DescribeStreamCommand({ StreamName: physicalId }))).StreamDescription;
33797
34088
  } catch (err) {
33798
- if (err instanceof ResourceNotFoundException$9) return void 0;
34089
+ if (err instanceof ResourceNotFoundException$10) return void 0;
33799
34090
  throw err;
33800
34091
  }
33801
34092
  if (!stream) return void 0;
@@ -33813,7 +34104,7 @@ var KinesisStreamProvider = class {
33813
34104
  try {
33814
34105
  result["Tags"] = normalizeAwsTagsToCfn((await this.getClient().send(new ListTagsForStreamCommand({ StreamName: physicalId }))).Tags);
33815
34106
  } catch (err) {
33816
- if (err instanceof ResourceNotFoundException$9) return void 0;
34107
+ if (err instanceof ResourceNotFoundException$10) return void 0;
33817
34108
  this.logger.debug(`Kinesis ListTagsForStream(${physicalId}) failed: ${err instanceof Error ? err.message : String(err)}`);
33818
34109
  }
33819
34110
  return result;
@@ -33827,7 +34118,7 @@ var KinesisStreamProvider = class {
33827
34118
  attributes: {}
33828
34119
  };
33829
34120
  } catch (err) {
33830
- if (err instanceof ResourceNotFoundException$9) return null;
34121
+ if (err instanceof ResourceNotFoundException$10) return null;
33831
34122
  throw err;
33832
34123
  }
33833
34124
  return null;
@@ -34015,7 +34306,7 @@ var KinesisStreamConsumerProvider = class {
34015
34306
  await this.getClient().send(new DeregisterStreamConsumerCommand({ ConsumerARN: physicalId }));
34016
34307
  this.logger.debug(`Successfully deregistered Kinesis stream consumer ${logicalId}`);
34017
34308
  } catch (error) {
34018
- if (error instanceof ResourceNotFoundException$9) {
34309
+ if (error instanceof ResourceNotFoundException$10) {
34019
34310
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
34020
34311
  this.logger.debug(`Kinesis stream consumer ${physicalId} not found, skipping`);
34021
34312
  return;
@@ -34061,7 +34352,7 @@ var KinesisStreamConsumerProvider = class {
34061
34352
  try {
34062
34353
  desc = (await this.getClient().send(new DescribeStreamConsumerCommand({ ConsumerARN: physicalId }))).ConsumerDescription;
34063
34354
  } catch (err) {
34064
- if (err instanceof ResourceNotFoundException$9) return void 0;
34355
+ if (err instanceof ResourceNotFoundException$10) return void 0;
34065
34356
  throw err;
34066
34357
  }
34067
34358
  if (!desc) return void 0;
@@ -34071,7 +34362,7 @@ var KinesisStreamConsumerProvider = class {
34071
34362
  try {
34072
34363
  result["Tags"] = normalizeAwsTagsToCfn((await this.getClient().send(new ListTagsForResourceCommand$15({ ResourceARN: physicalId }))).Tags);
34073
34364
  } catch (err) {
34074
- if (err instanceof ResourceNotFoundException$9) return void 0;
34365
+ if (err instanceof ResourceNotFoundException$10) return void 0;
34075
34366
  this.logger.debug(`ListTagsForResource(${physicalId}) failed: ${err instanceof Error ? err.message : String(err)}`);
34076
34367
  result["Tags"] = [];
34077
34368
  }
@@ -34277,7 +34568,7 @@ var SchedulerScheduleProvider = class {
34277
34568
  }));
34278
34569
  this.logger.debug(`Deleted Schedule ${logicalId}`);
34279
34570
  } catch (error) {
34280
- if (error instanceof ResourceNotFoundException$10) {
34571
+ if (error instanceof ResourceNotFoundException$11) {
34281
34572
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
34282
34573
  this.logger.debug(`Schedule ${logicalId} already deleted (not found), treating as success`);
34283
34574
  return;
@@ -34299,7 +34590,7 @@ var SchedulerScheduleProvider = class {
34299
34590
  return (await this.getClient().send(new GetScheduleCommand({ Name: physicalId }))).Arn;
34300
34591
  } catch (error) {
34301
34592
  const cause = error instanceof Error ? error : void 0;
34302
- 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." : "";
34593
+ const customGroupHint = error instanceof ResourceNotFoundException$11 ? " Schedules in a custom group cannot be looked up by bare name; the Arn is normally served from cdkd state attributes." : "";
34303
34594
  throw new ProvisioningError(`Failed to resolve Arn for Schedule ${physicalId}: ${cause?.message ?? String(error)}.${customGroupHint}`, resourceType, physicalId, physicalId, cause);
34304
34595
  }
34305
34596
  }
@@ -34329,7 +34620,7 @@ var SchedulerScheduleProvider = class {
34329
34620
  ...response.Target !== void 0 && { Target: response.Target }
34330
34621
  };
34331
34622
  } catch (error) {
34332
- if (error instanceof ResourceNotFoundException$10) return;
34623
+ if (error instanceof ResourceNotFoundException$11) return;
34333
34624
  throw error;
34334
34625
  }
34335
34626
  }
@@ -34355,7 +34646,7 @@ var SchedulerScheduleProvider = class {
34355
34646
  attributes: response.Arn ? { Arn: response.Arn } : {}
34356
34647
  };
34357
34648
  } catch (error) {
34358
- if (error instanceof ResourceNotFoundException$10) return null;
34649
+ if (error instanceof ResourceNotFoundException$11) return null;
34359
34650
  throw error;
34360
34651
  }
34361
34652
  }
@@ -38014,7 +38305,7 @@ var FirehoseProvider = class {
38014
38305
  await this.getClient().send(new DeleteDeliveryStreamCommand({ DeliveryStreamName: physicalId }));
38015
38306
  this.logger.debug(`Successfully deleted Firehose delivery stream ${logicalId}`);
38016
38307
  } catch (error) {
38017
- if (error instanceof ResourceNotFoundException$11) {
38308
+ if (error instanceof ResourceNotFoundException$12) {
38018
38309
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
38019
38310
  this.logger.debug(`Firehose delivery stream ${physicalId} does not exist, skipping deletion`);
38020
38311
  return;
@@ -38551,7 +38842,7 @@ var FirehoseProvider = class {
38551
38842
  try {
38552
38843
  desc = (await this.getClient().send(new DescribeDeliveryStreamCommand({ DeliveryStreamName: physicalId }))).DeliveryStreamDescription;
38553
38844
  } catch (err) {
38554
- if (err instanceof ResourceNotFoundException$11) return void 0;
38845
+ if (err instanceof ResourceNotFoundException$12) return void 0;
38555
38846
  throw err;
38556
38847
  }
38557
38848
  if (!desc) return void 0;
@@ -38582,7 +38873,7 @@ var FirehoseProvider = class {
38582
38873
  try {
38583
38874
  result["Tags"] = normalizeAwsTagsToCfn((await this.getClient().send(new ListTagsForDeliveryStreamCommand({ DeliveryStreamName: physicalId }))).Tags);
38584
38875
  } catch (err) {
38585
- if (err instanceof ResourceNotFoundException$11) return void 0;
38876
+ if (err instanceof ResourceNotFoundException$12) return void 0;
38586
38877
  this.logger.debug(`Firehose ListTagsForDeliveryStream(${physicalId}) failed: ${err instanceof Error ? err.message : String(err)}`);
38587
38878
  result["Tags"] = [];
38588
38879
  }
@@ -38619,7 +38910,7 @@ var FirehoseProvider = class {
38619
38910
  attributes: {}
38620
38911
  };
38621
38912
  } catch (err) {
38622
- if (err instanceof ResourceNotFoundException$11) return null;
38913
+ if (err instanceof ResourceNotFoundException$12) return null;
38623
38914
  throw err;
38624
38915
  }
38625
38916
  return null;
@@ -39361,7 +39652,7 @@ var CodeBuildProvider = class {
39361
39652
  await this.getClient().send(new DeleteProjectCommand({ name: physicalId }));
39362
39653
  this.logger.debug(`Successfully deleted CodeBuild Project ${logicalId}`);
39363
39654
  } catch (error) {
39364
- if (error instanceof ResourceNotFoundException$12) {
39655
+ if (error instanceof ResourceNotFoundException$13) {
39365
39656
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
39366
39657
  this.logger.debug(`CodeBuild Project ${physicalId} does not exist, skipping deletion`);
39367
39658
  return;
@@ -39416,7 +39707,7 @@ var CodeBuildProvider = class {
39416
39707
  try {
39417
39708
  project = (await this.getClient().send(new BatchGetProjectsCommand({ names: [physicalId] }))).projects?.[0];
39418
39709
  } catch (err) {
39419
- if (err instanceof ResourceNotFoundException$12) return void 0;
39710
+ if (err instanceof ResourceNotFoundException$13) return void 0;
39420
39711
  throw err;
39421
39712
  }
39422
39713
  if (!project) return void 0;
@@ -39561,7 +39852,7 @@ var CodeBuildProvider = class {
39561
39852
  attributes: {}
39562
39853
  } : null;
39563
39854
  } catch (err) {
39564
- if (err instanceof ResourceNotFoundException$12) return null;
39855
+ if (err instanceof ResourceNotFoundException$13) return null;
39565
39856
  throw err;
39566
39857
  }
39567
39858
  return null;
@@ -40281,7 +40572,7 @@ var DLMLifecyclePolicyProvider = class {
40281
40572
  await this.getClient().send(new DeleteLifecyclePolicyCommand$1({ PolicyId: physicalId }));
40282
40573
  this.logger.debug(`Successfully deleted DLM Lifecycle Policy ${logicalId}`);
40283
40574
  } catch (error) {
40284
- if (error instanceof ResourceNotFoundException$13) {
40575
+ if (error instanceof ResourceNotFoundException$14) {
40285
40576
  assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
40286
40577
  this.logger.debug(`DLM Lifecycle Policy ${physicalId} does not exist, skipping deletion`);
40287
40578
  return;
@@ -40332,7 +40623,7 @@ var DLMLifecyclePolicyProvider = class {
40332
40623
  Tags: normalizeAwsTagsToCfn(policy.Tags)
40333
40624
  };
40334
40625
  } catch (error) {
40335
- if (error instanceof ResourceNotFoundException$13) return;
40626
+ if (error instanceof ResourceNotFoundException$14) return;
40336
40627
  throw error;
40337
40628
  }
40338
40629
  }
@@ -40368,7 +40659,7 @@ var DLMLifecyclePolicyProvider = class {
40368
40659
  attributes: response.Policy.PolicyArn ? { Arn: response.Policy.PolicyArn } : {}
40369
40660
  } : null;
40370
40661
  } catch (err) {
40371
- if (err instanceof ResourceNotFoundException$13) return null;
40662
+ if (err instanceof ResourceNotFoundException$14) return null;
40372
40663
  throw err;
40373
40664
  }
40374
40665
  return null;
@@ -42704,7 +42995,7 @@ var ACMCertificateProvider = class {
42704
42995
  try {
42705
42996
  await this.acmClient.send(new DeleteCertificateCommand({ CertificateArn: physicalId }));
42706
42997
  } catch (error) {
42707
- if (error instanceof ResourceNotFoundException$6) {
42998
+ if (error instanceof ResourceNotFoundException$7) {
42708
42999
  assertRegionMatch(await this.acmClient.config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
42709
43000
  this.logger.debug(`Certificate ${physicalId} does not exist, skipping deletion`);
42710
43001
  return;
@@ -42742,7 +43033,7 @@ var ACMCertificateProvider = class {
42742
43033
  try {
42743
43034
  cert = (await this.acmClient.send(new DescribeCertificateCommand({ CertificateArn: physicalId }))).Certificate;
42744
43035
  } catch (err) {
42745
- if (err instanceof ResourceNotFoundException$6) return void 0;
43036
+ if (err instanceof ResourceNotFoundException$7) return void 0;
42746
43037
  throw err;
42747
43038
  }
42748
43039
  if (!cert) return void 0;
@@ -42756,7 +43047,7 @@ var ACMCertificateProvider = class {
42756
43047
  try {
42757
43048
  result["Tags"] = normalizeAwsTagsToCfn((await this.acmClient.send(new ListTagsForCertificateCommand({ CertificateArn: physicalId }))).Tags);
42758
43049
  } catch (err) {
42759
- if (!(err instanceof ResourceNotFoundException$6)) throw err;
43050
+ if (!(err instanceof ResourceNotFoundException$7)) throw err;
42760
43051
  }
42761
43052
  return result;
42762
43053
  }
@@ -42787,7 +43078,7 @@ var ACMCertificateProvider = class {
42787
43078
  }
42788
43079
  };
42789
43080
  } catch (err) {
42790
- if (err instanceof ResourceNotFoundException$6) return null;
43081
+ if (err instanceof ResourceNotFoundException$7) return null;
42791
43082
  throw err;
42792
43083
  }
42793
43084
  }
@@ -42909,6 +43200,7 @@ function registerAllProviders(registry) {
42909
43200
  registry.register("AWS::DynamoDB::GlobalTable", new DynamoDBGlobalTableProvider());
42910
43201
  registry.register("AWS::Logs::LogGroup", new LogsLogGroupProvider());
42911
43202
  registry.register("AWS::CloudWatch::Alarm", new CloudWatchAlarmProvider());
43203
+ registry.register("AWS::CloudWatch::AnomalyDetector", new CloudWatchAnomalyDetectorProvider());
42912
43204
  registry.register("AWS::SecretsManager::Secret", new SecretsManagerSecretProvider());
42913
43205
  registry.register("AWS::SSM::Parameter", new SSMParameterProvider());
42914
43206
  registry.register("AWS::Events::Rule", new EventBridgeRuleProvider());
@@ -62870,7 +63162,7 @@ function createMigrateCommand() {
62870
63162
  */
62871
63163
  function buildProgram() {
62872
63164
  const program = new Command();
62873
- program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.269.2");
63165
+ program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.270.0");
62874
63166
  program.hook("preAction", (_thisCommand, actionCommand) => {
62875
63167
  const { profile } = actionCommand.optsWithGlobals();
62876
63168
  if (profile !== void 0) process.env["AWS_PROFILE"] = profile;