@go-to-k/cdkd 0.231.0 → 0.231.2

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,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
- import { A as withErrorHandling, B as generateResourceName, C as StackHasActiveImportsError, F as getLiveRenderer, H as withSkipPrefix, I as PATTERN_B_NAME_OPTIONS, L as PATTERN_B_NAME_PROPERTIES, M as getLogger, P as runStackBuffered, R as PATTERN_B_RESOURCE_TYPES, S as ResourceUpdateNotSupportedError, U as withStackName, V as generateResourceNameWithFallback, _ as MissingCdkCliError, a as assertRegionMatch, b as ProvisioningError, f as LocalInvokeBuildError$1, i as resolveExplicitPhysicalId, k as normalizeAwsError, l as CdkdError, m as LocalStartServiceError, n as matchesCdkPath, o as disableInstanceApiTermination, p as LocalMigrateError, r as normalizeAwsTagsToCfn, s as isTerminationProtectionPropagationError, t as CDK_PATH_TAG, v as NestedStackChildDirectDestroyError, w as StackTerminationProtectionError, x as ResourceTimeoutError, y as PartialFailureError } from "./import-helpers-DayvBD4T.js";
2
+ import { A as withErrorHandling, B as generateResourceName, C as StackHasActiveImportsError, F as getLiveRenderer, H as withSkipPrefix, I as PATTERN_B_NAME_OPTIONS, L as PATTERN_B_NAME_PROPERTIES, M as getLogger, P as runStackBuffered, R as PATTERN_B_RESOURCE_TYPES, S as ResourceUpdateNotSupportedError, U as withStackName, V as generateResourceNameWithFallback, _ as MissingCdkCliError, a as normalizeAwsTagsToCfn, b as ProvisioningError, f as LocalInvokeBuildError$1, i as matchesCdkPath, k as normalizeAwsError, l as CdkdError, m as LocalStartServiceError, n as isTerminationProtectionPropagationError, o as resolveExplicitPhysicalId, p as LocalMigrateError, r as CDK_PATH_TAG, s as assertRegionMatch, t as disableInstanceApiTermination, v as NestedStackChildDirectDestroyError, w as StackTerminationProtectionError, x as ResourceTimeoutError, y as PartialFailureError } from "./ec2-termination-protection-uvVnteGl.js";
3
3
  import { a as setAwsClients, i as resetAwsClients, r as getAwsClients, t as AwsClients } from "./aws-clients-pjPwZz1r.js";
4
- import { $ as resolveStateBucketWithDefaultAndSource, A as TemplateParser, B as getDockerCmd, C as findActionableSilentDrops, D as applyRoleArnIfSet, E as cfnRefValueFromPhysicalId, F as AssetPublisher, G as Synthesizer, H as runDockerStreaming, I as stringifyValue, J as getLegacyStateBucketName, K as synthesisStatusMessage, L as WorkGraph, M as S3StateBackend, N as rebuildClientForBucketRegion, O as DiffCalculator, P as shouldRetainResource, Q as resolveStateBucketWithDefault, R as buildDockerImage, S as ProviderRegistry, T as IntrinsicFunctionResolver, U as AssetManifestLoader, V as runDockerForeground, W as getDockerImageBySourceHash, X as resolveCaptureObservedState, Y as resolveApp, Z as resolveSkipPrefix, _ as green, a as withRetry, at as uploadCfnTemplate, b as IAMRoleProvider, c as computeImplicitDeleteEdges, ct as resolveBucketRegion, d as isStatefulRecreateTargetSync, et as warnDeprecatedNoPrefixCliFlag, f as renderStatefulReason, g as gray, h as cyan, i as withResourceDeadline, it as findLargeInlineResources, j as LockManager, k as DagBuilder, l as extractDeploymentEventError, m as bold, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nt as CFN_TEMPLATE_URL_LIMIT, o as isRetryableTransientError, ot as AssemblyReader, p as formatResourceLine, q as getDefaultStateBucketName, r as DeployEngine, rt as MIGRATE_TMP_PREFIX, s as IMPLICIT_DELETE_DEPENDENCIES, t as DEFAULT_RESOURCE_TIMEOUT_MS, tt as CFN_TEMPLATE_BODY_LIMIT, u as MULTI_REGION_RECREATE_BLOCKED_TYPES, v as red, w as CloudControlProvider, x as collectInlinePolicyNamesManagedBySiblings, y as yellow, z as formatDockerLoginError } from "./deploy-engine-IqXCHYxE.js";
5
- import { t as ASGProvider } from "./asg-provider-Dgj3loIG.js";
4
+ import { $ as resolveStateBucketWithDefault, A as DagBuilder, B as formatDockerLoginError, C as findActionableSilentDrops, D as WAFv2WebACLProvider, E as cfnRefValueFromPhysicalId, F as shouldRetainResource, G as getDockerImageBySourceHash, H as runDockerForeground, I as AssetPublisher, J as getDefaultStateBucketName, K as Synthesizer, L as stringifyValue, M as LockManager, N as S3StateBackend, O as applyRoleArnIfSet, P as rebuildClientForBucketRegion, Q as resolveSkipPrefix, R as WorkGraph, S as ProviderRegistry, T as IntrinsicFunctionResolver, U as runDockerStreaming, V as getDockerCmd, W as AssetManifestLoader, X as resolveApp, Y as getLegacyStateBucketName, Z as resolveCaptureObservedState, _ as green, a as withRetry, at as findLargeInlineResources, b as IAMRoleProvider, c as computeImplicitDeleteEdges, d as isStatefulRecreateTargetSync, et as resolveStateBucketWithDefaultAndSource, f as renderStatefulReason, g as gray, h as cyan, i as withResourceDeadline, it as MIGRATE_TMP_PREFIX, j as TemplateParser, k as DiffCalculator, l as extractDeploymentEventError, lt as resolveBucketRegion, m as bold, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nt as CFN_TEMPLATE_BODY_LIMIT, o as isRetryableTransientError, ot as uploadCfnTemplate, p as formatResourceLine, q as synthesisStatusMessage, r as DeployEngine, rt as CFN_TEMPLATE_URL_LIMIT, s as IMPLICIT_DELETE_DEPENDENCIES, st as AssemblyReader, t as DEFAULT_RESOURCE_TIMEOUT_MS, tt as warnDeprecatedNoPrefixCliFlag, u as MULTI_REGION_RECREATE_BLOCKED_TYPES, v as red, w as CloudControlProvider, x as collectInlinePolicyNamesManagedBySiblings, y as yellow, z as buildDockerImage } from "./deploy-engine-B9NOJeGf.js";
5
+ import { t as ASGProvider } from "./asg-provider-Dd9Xze-T.js";
6
6
  import { AsyncLocalStorage } from "node:async_hooks";
7
7
  import { createHash, randomBytes, randomUUID } from "node:crypto";
8
8
  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, ListBucketsCommand, ListDirectoryBucketsCommand, 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";
@@ -48,20 +48,19 @@ import { CreateStateMachineCommand, DeleteStateMachineCommand, DescribeStateMach
48
48
  import { CreateClusterCommand, CreateServiceCommand, DeleteClusterCommand, DeleteServiceCommand, DeregisterTaskDefinitionCommand, DescribeClustersCommand, DescribeServicesCommand, DescribeTaskDefinitionCommand, ECSClient, ListClustersCommand, ListServicesCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$11, PutClusterCapacityProvidersCommand, RegisterTaskDefinitionCommand, TagResourceCommand as TagResourceCommand$12, UntagResourceCommand as UntagResourceCommand$11, UpdateClusterCommand, UpdateServiceCommand } 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 { CreateWebACLCommand, DeleteWebACLCommand, GetWebACLCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$14, ListWebACLsCommand, TagResourceCommand as TagResourceCommand$13, UntagResourceCommand as UntagResourceCommand$12, UpdateWebACLCommand, WAFNonexistentItemException, WAFV2Client } from "@aws-sdk/client-wafv2";
52
- import { AddCustomAttributesCommand, CognitoIdentityProviderClient, CreateUserPoolCommand, DeleteUserPoolCommand, DescribeUserPoolCommand, GetUserPoolMfaConfigCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$15, ListUserPoolsCommand, ResourceNotFoundException as ResourceNotFoundException$7, SetUserPoolMfaConfigCommand, UpdateUserPoolCommand } from "@aws-sdk/client-cognito-identity-provider";
53
- import { CreatePrivateDnsNamespaceCommand, CreateServiceCommand as CreateServiceCommand$1, DeleteNamespaceCommand, DeleteServiceAttributesCommand, DeleteServiceCommand as DeleteServiceCommand$1, GetNamespaceCommand, GetOperationCommand, GetServiceAttributesCommand, GetServiceCommand, ListNamespacesCommand, ListServicesCommand as ListServicesCommand$1, ListTagsForResourceCommand as ListTagsForResourceCommand$16, NamespaceNotFound, ServiceDiscoveryClient, ServiceNotFound, UpdatePrivateDnsNamespaceCommand, UpdateServiceAttributesCommand, UpdateServiceCommand as UpdateServiceCommand$1 } from "@aws-sdk/client-servicediscovery";
54
- import { AppSyncClient, CreateApiKeyCommand, CreateDataSourceCommand, CreateGraphqlApiCommand, CreateResolverCommand, DeleteApiKeyCommand, DeleteDataSourceCommand, DeleteGraphqlApiCommand, DeleteResolverCommand, GetDataSourceCommand, GetGraphqlApiCommand, GetIntrospectionSchemaCommand, GetResolverCommand, ListApiKeysCommand, ListGraphqlApisCommand, NotFoundException as NotFoundException$4, StartSchemaCreationCommand, TagResourceCommand as TagResourceCommand$14, UntagResourceCommand as UntagResourceCommand$13, UpdateApiKeyCommand, UpdateDataSourceCommand, UpdateGraphqlApiCommand, UpdateResolverCommand } from "@aws-sdk/client-appsync";
51
+ import { AddCustomAttributesCommand, CognitoIdentityProviderClient, CreateUserPoolCommand, DeleteUserPoolCommand, DescribeUserPoolCommand, GetUserPoolMfaConfigCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$14, ListUserPoolsCommand, ResourceNotFoundException as ResourceNotFoundException$7, SetUserPoolMfaConfigCommand, UpdateUserPoolCommand } from "@aws-sdk/client-cognito-identity-provider";
52
+ import { CreatePrivateDnsNamespaceCommand, CreateServiceCommand as CreateServiceCommand$1, DeleteNamespaceCommand, DeleteServiceAttributesCommand, DeleteServiceCommand as DeleteServiceCommand$1, GetNamespaceCommand, GetOperationCommand, GetServiceAttributesCommand, GetServiceCommand, ListNamespacesCommand, ListServicesCommand as ListServicesCommand$1, ListTagsForResourceCommand as ListTagsForResourceCommand$15, NamespaceNotFound, ServiceDiscoveryClient, ServiceNotFound, UpdatePrivateDnsNamespaceCommand, 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, ListGraphqlApisCommand, NotFoundException as NotFoundException$4, StartSchemaCreationCommand, TagResourceCommand as TagResourceCommand$13, UntagResourceCommand as UntagResourceCommand$12, UpdateApiKeyCommand, UpdateDataSourceCommand, UpdateGraphqlApiCommand, UpdateResolverCommand } from "@aws-sdk/client-appsync";
55
54
  import { parse, print } from "graphql";
56
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, GetDatabasesCommand, GetJobCommand, GetSecurityConfigurationCommand, GetSecurityConfigurationsCommand, GetTableCommand, GetTablesCommand, GetTagsCommand, GetTriggerCommand, GetWorkflowCommand, GlueClient, ListWorkflowsCommand, StartCrawlerScheduleCommand, StartTriggerCommand, StopCrawlerCommand, StopCrawlerScheduleCommand, StopTriggerCommand, UpdateConnectionCommand, UpdateCrawlerCommand, UpdateDatabaseCommand, UpdateJobCommand, UpdateTableCommand as UpdateTableCommand$1, UpdateTriggerCommand, UpdateWorkflowCommand } from "@aws-sdk/client-glue";
57
- import { AddTagsToStreamCommand, CreateStreamCommand, DecreaseStreamRetentionPeriodCommand, DeleteStreamCommand, DeregisterStreamConsumerCommand, DescribeStreamCommand, DescribeStreamConsumerCommand, DescribeStreamSummaryCommand, IncreaseStreamRetentionPeriodCommand, KinesisClient, ListStreamsCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$17, ListTagsForStreamCommand, RegisterStreamConsumerCommand, RemoveTagsFromStreamCommand, ResourceNotFoundException as ResourceNotFoundException$8, StartStreamEncryptionCommand, StopStreamEncryptionCommand, TagResourceCommand as TagResourceCommand$15, UntagResourceCommand as UntagResourceCommand$14, UpdateShardCountCommand, UpdateStreamModeCommand } from "@aws-sdk/client-kinesis";
56
+ import { AddTagsToStreamCommand, CreateStreamCommand, DecreaseStreamRetentionPeriodCommand, DeleteStreamCommand, DeregisterStreamConsumerCommand, DescribeStreamCommand, DescribeStreamConsumerCommand, DescribeStreamSummaryCommand, IncreaseStreamRetentionPeriodCommand, KinesisClient, ListStreamsCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$16, ListTagsForStreamCommand, RegisterStreamConsumerCommand, RemoveTagsFromStreamCommand, ResourceNotFoundException as ResourceNotFoundException$8, StartStreamEncryptionCommand, StopStreamEncryptionCommand, TagResourceCommand as TagResourceCommand$14, UntagResourceCommand as UntagResourceCommand$13, UpdateShardCountCommand, UpdateStreamModeCommand } from "@aws-sdk/client-kinesis";
58
57
  import { CreateScheduleCommand, DeleteScheduleCommand, GetScheduleCommand, ResourceNotFoundException as ResourceNotFoundException$9, SchedulerClient, UpdateScheduleCommand } from "@aws-sdk/client-scheduler";
59
58
  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
59
  import { CreateDeliveryStreamCommand, DeleteDeliveryStreamCommand, DescribeDeliveryStreamCommand, FirehoseClient, ListDeliveryStreamsCommand, ListTagsForDeliveryStreamCommand, ResourceNotFoundException as ResourceNotFoundException$10, TagDeliveryStreamCommand, UntagDeliveryStreamCommand, UpdateDestinationCommand } from "@aws-sdk/client-firehose";
61
60
  import { AddTagsCommand as AddTagsCommand$1, CloudTrailClient, CreateTrailCommand, DeleteTrailCommand, GetEventSelectorsCommand, GetInsightSelectorsCommand, GetTrailCommand, GetTrailStatusCommand, ListTagsCommand as ListTagsCommand$1, ListTrailsCommand, PutEventSelectorsCommand, PutInsightSelectorsCommand, RemoveTagsCommand as RemoveTagsCommand$1, StartLoggingCommand, StopLoggingCommand, TrailNotFoundException, UpdateTrailCommand } from "@aws-sdk/client-cloudtrail";
62
61
  import { BatchGetProjectsCommand, CodeBuildClient, CreateProjectCommand, DeleteProjectCommand, ListProjectsCommand, ResourceNotFoundException as ResourceNotFoundException$11, UpdateProjectCommand } from "@aws-sdk/client-codebuild";
63
- import { CreateVectorBucketCommand, DeleteIndexCommand, DeleteVectorBucketCommand, GetVectorBucketCommand, ListIndexesCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$18, ListVectorBucketsCommand, S3VectorsClient, TagResourceCommand as TagResourceCommand$16, UntagResourceCommand as UntagResourceCommand$15 } from "@aws-sdk/client-s3vectors";
64
- 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 as ListTablesCommand$1, ListTagsForResourceCommand as ListTagsForResourceCommand$19, NotFoundException as NotFoundException$5, S3TablesClient, TagResourceCommand as TagResourceCommand$17, UntagResourceCommand as UntagResourceCommand$16 } from "@aws-sdk/client-s3tables";
62
+ import { CreateVectorBucketCommand, DeleteIndexCommand, DeleteVectorBucketCommand, GetVectorBucketCommand, ListIndexesCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$17, ListVectorBucketsCommand, S3VectorsClient, TagResourceCommand as TagResourceCommand$15, UntagResourceCommand as UntagResourceCommand$14 } from "@aws-sdk/client-s3vectors";
63
+ 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 as ListTablesCommand$1, ListTagsForResourceCommand as ListTagsForResourceCommand$18, NotFoundException as NotFoundException$5, S3TablesClient, TagResourceCommand as TagResourceCommand$16, UntagResourceCommand as UntagResourceCommand$15 } from "@aws-sdk/client-s3tables";
65
64
  import { Document, Pair, Scalar, YAMLMap, YAMLSeq, parse as parse$1, stringify } from "yaml";
66
65
  import { createLocalStartAgentCoreCommand, createLocalStartCloudFrontCommand, createLocalStateProvider, getEmbedConfig, isCfnFlagPresent, listTargets, rejectExplicitCfnStackWithMultipleStacks, resolveCfnFallbackRegion, setEmbedConfig, substituteAgainstState, substituteAgainstStateAsync, substituteEnvVarsFromState, substituteEnvVarsFromStateAsync } from "cdk-local";
67
66
  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";
@@ -1446,7 +1445,7 @@ const FLUSH_INTERVAL_MS = 2e3;
1446
1445
  const FLUSH_EVENT_THRESHOLD = 50;
1447
1446
  /** Build-time cdkd version, with a dev fallback for non-built contexts. */
1448
1447
  function getCdkdVersion() {
1449
- return "0.231.0";
1448
+ return "0.231.2";
1450
1449
  }
1451
1450
  /**
1452
1451
  * Generate a time-sortable unique run id, e.g.
@@ -9153,6 +9152,25 @@ function classifyEventSource(resp) {
9153
9152
  if (arn.startsWith("arn:aws:rds:") || arn.startsWith("arn:aws-cn:rds:")) return "documentdb";
9154
9153
  return "unknown";
9155
9154
  }
9155
+ /**
9156
+ * Classify an event source mapping from its CFn property bag (as opposed to
9157
+ * `classifyEventSource`, which reads an AWS `GetEventSourceMapping` response).
9158
+ * The discriminating keys are identical in both shapes (`EventSourceArn` plus
9159
+ * the four `*EventSourceConfig` / `SelfManagedEventSource` markers), so this
9160
+ * is a thin type-narrowing adapter over the same logic. Used by `update()`'s
9161
+ * removal-clear path (issue #976) to gate source-kind-specific clears
9162
+ * (`FunctionResponseTypes` / `SourceAccessConfigurations` /
9163
+ * `MaximumBatchingWindowInSeconds`).
9164
+ */
9165
+ function classifyEventSourceFromProperties(properties) {
9166
+ return classifyEventSource({
9167
+ EventSourceArn: properties["EventSourceArn"],
9168
+ SelfManagedEventSource: properties["SelfManagedEventSource"],
9169
+ AmazonManagedKafkaEventSourceConfig: properties["AmazonManagedKafkaEventSourceConfig"],
9170
+ SelfManagedKafkaEventSourceConfig: properties["SelfManagedKafkaEventSourceConfig"],
9171
+ DocumentDBEventSourceConfig: properties["DocumentDBEventSourceConfig"]
9172
+ });
9173
+ }
9156
9174
  const KINDS_WITH_FUNCTION_RESPONSE_TYPES = new Set([
9157
9175
  "sqs",
9158
9176
  "kinesis",
@@ -9164,6 +9182,28 @@ const KINDS_WITH_SOURCE_ACCESS_CONFIGURATIONS = new Set([
9164
9182
  "documentdb"
9165
9183
  ]);
9166
9184
  /**
9185
+ * Source kinds whose `MaximumBatchingWindowInSeconds` default is `0` seconds
9186
+ * (SQS / Kinesis / DynamoDB). The poll-based kinds (Kafka / MSK / MQ /
9187
+ * DocumentDB) default to 500 ms, which cannot be restored via
9188
+ * `UpdateEventSourceMapping` (the field only accepts whole-second increments),
9189
+ * so the removal-on-UPDATE path only restores `0` for these kinds — see the
9190
+ * comment at the `MaximumBatchingWindowInSeconds` clear in `update()`.
9191
+ */
9192
+ const KINDS_WITH_ZERO_BATCHING_WINDOW_DEFAULT = new Set([
9193
+ "sqs",
9194
+ "kinesis",
9195
+ "dynamodb"
9196
+ ]);
9197
+ /**
9198
+ * Source kinds that accept the stream-processing numeric parameters
9199
+ * (`MaximumRetryAttempts` / `MaximumRecordAgeInSeconds` /
9200
+ * `ParallelizationFactor` / `TumblingWindowInSeconds`) — Kinesis / DynamoDB
9201
+ * streams only. AWS rejects these on SQS / Kafka / MQ / DocumentDB, so the
9202
+ * removal-on-UPDATE default-restore path is gated on this set (see the numeric
9203
+ * restores in `update()`).
9204
+ */
9205
+ const KINDS_WITH_STREAM_NUMERICS = new Set(["kinesis", "dynamodb"]);
9206
+ /**
9167
9207
  * AWS Lambda Event Source Mapping Provider
9168
9208
  *
9169
9209
  * Implements resource provisioning for AWS::Lambda::EventSourceMapping using the Lambda SDK.
@@ -9288,6 +9328,22 @@ var LambdaEventSourceMappingProvider = class {
9288
9328
  if (properties["LoggingConfig"] !== void 0) updateParams.LoggingConfig = properties["LoggingConfig"];
9289
9329
  if (properties["MetricsConfig"] !== void 0) updateParams.MetricsConfig = properties["MetricsConfig"];
9290
9330
  if (properties["ProvisionedPollerConfig"] !== void 0) updateParams.ProvisionedPollerConfig = properties["ProvisionedPollerConfig"];
9331
+ const wasSet = (key) => previousProperties[key] !== void 0 && properties[key] === void 0;
9332
+ const prevKind = classifyEventSourceFromProperties(previousProperties);
9333
+ if (wasSet("FilterCriteria")) updateParams.FilterCriteria = {};
9334
+ if (wasSet("ScalingConfig")) updateParams.ScalingConfig = {};
9335
+ if (wasSet("DestinationConfig")) updateParams.DestinationConfig = {};
9336
+ if (wasSet("FunctionResponseTypes") && KINDS_WITH_FUNCTION_RESPONSE_TYPES.has(prevKind)) updateParams.FunctionResponseTypes = [];
9337
+ if (wasSet("SourceAccessConfigurations") && KINDS_WITH_SOURCE_ACCESS_CONFIGURATIONS.has(prevKind)) updateParams.SourceAccessConfigurations = [];
9338
+ if (wasSet("MetricsConfig")) updateParams.MetricsConfig = { Metrics: [] };
9339
+ if (wasSet("KmsKeyArn")) updateParams.KMSKeyArn = "";
9340
+ if (KINDS_WITH_STREAM_NUMERICS.has(prevKind)) {
9341
+ if (wasSet("MaximumRetryAttempts")) updateParams.MaximumRetryAttempts = -1;
9342
+ if (wasSet("MaximumRecordAgeInSeconds")) updateParams.MaximumRecordAgeInSeconds = -1;
9343
+ if (wasSet("ParallelizationFactor")) updateParams.ParallelizationFactor = 1;
9344
+ if (wasSet("TumblingWindowInSeconds")) updateParams.TumblingWindowInSeconds = 0;
9345
+ }
9346
+ if (wasSet("MaximumBatchingWindowInSeconds") && KINDS_WITH_ZERO_BATCHING_WINDOW_DEFAULT.has(prevKind)) updateParams.MaximumBatchingWindowInSeconds = 0;
9291
9347
  const eventSourceMappingArn = (await this.lambdaClient.send(new UpdateEventSourceMappingCommand(updateParams))).EventSourceMappingArn;
9292
9348
  if (eventSourceMappingArn) await this.applyTagDiff(eventSourceMappingArn, previousProperties["Tags"], properties["Tags"]);
9293
9349
  this.logger.debug(`Successfully updated event source mapping ${logicalId}`);
@@ -26016,344 +26072,6 @@ var Route53Provider = class {
26016
26072
  }
26017
26073
  };
26018
26074
 
26019
- //#endregion
26020
- //#region src/provisioning/providers/wafv2-provider.ts
26021
- /**
26022
- * Translate the empty-string placeholder `readCurrentState` emits for an
26023
- * absent `Description` to `undefined` before shipping it to AWS.
26024
- *
26025
- * `readCurrentState` always-emits `Description: ''` on a WebACL with no
26026
- * description (the comparator's top-level walk is state-keys-only, so
26027
- * the placeholder is required to detect a console-side description add).
26028
- * AWS WAFv2 `CreateWebACL` / `UpdateWebACL` reject `Description: ''`
26029
- * with `Member must have length greater than or equal to 1` (min 1 / max
26030
- * 256). On `cdkd drift --revert` the placeholder would round-trip
26031
- * through `update()` and surface as a hard AWS rejection, so we sanitize
26032
- * the wire-layer payload while keeping the read-side placeholder
26033
- * intact. This is the Class 2 pattern from
26034
- * `docs/provider-development.md § 3b`.
26035
- */
26036
- function sanitizeDescription(value) {
26037
- if (value === void 0 || value === null) return void 0;
26038
- if (typeof value === "string" && value.length === 0) return void 0;
26039
- return value;
26040
- }
26041
- /**
26042
- * Parse WAFv2 WebACL ARN to extract Id, Name, and Scope.
26043
- *
26044
- * ARN format:
26045
- * arn:aws:wafv2:{region}:{account}:regional/webacl/{name}/{id}
26046
- * arn:aws:wafv2:{region}:{account}:global/webacl/{name}/{id}
26047
- */
26048
- function parseWebACLArn(arn) {
26049
- const segments = arn.split(":").slice(5).join(":").split("/");
26050
- const scopeRaw = segments[0];
26051
- const name = segments[2];
26052
- return {
26053
- id: segments[3],
26054
- name,
26055
- scope: scopeRaw === "global" ? "CLOUDFRONT" : "REGIONAL"
26056
- };
26057
- }
26058
- /**
26059
- * AWS WAFv2 WebACL Provider
26060
- *
26061
- * Implements resource provisioning for AWS::WAFv2::WebACL using the WAFv2 SDK.
26062
- * WHY: WAFv2 CreateWebACL is synchronous - the CC API adds unnecessary polling
26063
- * overhead for an operation that completes immediately.
26064
- * This SDK provider eliminates that polling and returns instantly.
26065
- */
26066
- var WAFv2WebACLProvider = class {
26067
- wafv2Client;
26068
- providerRegion = process.env["AWS_REGION"];
26069
- logger = getLogger().child("WAFv2WebACLProvider");
26070
- handledProperties = new Map([["AWS::WAFv2::WebACL", new Set([
26071
- "Name",
26072
- "Scope",
26073
- "Tags",
26074
- "DefaultAction",
26075
- "Description",
26076
- "Rules",
26077
- "VisibilityConfig",
26078
- "CustomResponseBodies",
26079
- "CaptchaConfig",
26080
- "ChallengeConfig",
26081
- "TokenDomains",
26082
- "AssociationConfig"
26083
- ])]]);
26084
- getClient() {
26085
- if (!this.wafv2Client) this.wafv2Client = new WAFV2Client(this.providerRegion ? { region: this.providerRegion } : {});
26086
- return this.wafv2Client;
26087
- }
26088
- /**
26089
- * Create a WAFv2 WebACL
26090
- */
26091
- async create(logicalId, resourceType, properties) {
26092
- this.logger.debug(`Creating WAFv2 WebACL ${logicalId}`);
26093
- const name = properties["Name"] || generateResourceName(logicalId, { maxLength: 128 });
26094
- const scope = properties["Scope"] || "REGIONAL";
26095
- try {
26096
- const tags = [];
26097
- if (properties["Tags"]) {
26098
- const tagList = properties["Tags"];
26099
- for (const tag of tagList) tags.push({
26100
- Key: tag.Key,
26101
- Value: tag.Value
26102
- });
26103
- }
26104
- const summary = (await this.getClient().send(new CreateWebACLCommand({
26105
- Name: name,
26106
- Scope: scope,
26107
- DefaultAction: properties["DefaultAction"],
26108
- Description: sanitizeDescription(properties["Description"]),
26109
- Rules: properties["Rules"] || [],
26110
- VisibilityConfig: properties["VisibilityConfig"],
26111
- ...tags.length > 0 && { Tags: tags },
26112
- CustomResponseBodies: properties["CustomResponseBodies"],
26113
- CaptchaConfig: properties["CaptchaConfig"],
26114
- ChallengeConfig: properties["ChallengeConfig"],
26115
- TokenDomains: properties["TokenDomains"],
26116
- AssociationConfig: properties["AssociationConfig"]
26117
- }))).Summary;
26118
- if (!summary?.ARN || !summary?.Id) throw new Error("CreateWebACL did not return Summary with ARN and Id");
26119
- this.logger.debug(`Successfully created WAFv2 WebACL ${logicalId}: ${summary.ARN}`);
26120
- return {
26121
- physicalId: summary.ARN,
26122
- attributes: {
26123
- Arn: summary.ARN,
26124
- Id: summary.Id,
26125
- LabelNamespace: summary["LabelNamespace"]
26126
- }
26127
- };
26128
- } catch (error) {
26129
- if (error instanceof ProvisioningError) throw error;
26130
- const cause = error instanceof Error ? error : void 0;
26131
- throw new ProvisioningError(`Failed to create WAFv2 WebACL ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, void 0, cause);
26132
- }
26133
- }
26134
- /**
26135
- * Update a WAFv2 WebACL
26136
- *
26137
- * Name and Scope are immutable - changes to those require replacement.
26138
- * UpdateWebACL requires LockToken obtained from GetWebACL.
26139
- */
26140
- async update(logicalId, physicalId, resourceType, properties, previousProperties) {
26141
- this.logger.debug(`Updating WAFv2 WebACL ${logicalId}: ${physicalId}`);
26142
- try {
26143
- const { id, name, scope } = parseWebACLArn(physicalId);
26144
- const getResponse = await this.getClient().send(new GetWebACLCommand({
26145
- Name: name,
26146
- Scope: scope,
26147
- Id: id
26148
- }));
26149
- const lockToken = getResponse.LockToken;
26150
- if (!lockToken) throw new Error("GetWebACL did not return LockToken");
26151
- await this.getClient().send(new UpdateWebACLCommand({
26152
- Name: name,
26153
- Scope: scope,
26154
- Id: id,
26155
- LockToken: lockToken,
26156
- DefaultAction: properties["DefaultAction"],
26157
- Description: sanitizeDescription(properties["Description"]),
26158
- Rules: properties["Rules"] || [],
26159
- VisibilityConfig: properties["VisibilityConfig"],
26160
- CustomResponseBodies: properties["CustomResponseBodies"],
26161
- CaptchaConfig: properties["CaptchaConfig"],
26162
- ChallengeConfig: properties["ChallengeConfig"],
26163
- TokenDomains: properties["TokenDomains"],
26164
- AssociationConfig: properties["AssociationConfig"]
26165
- }));
26166
- await this.applyTagDiff(physicalId, previousProperties["Tags"], properties["Tags"]);
26167
- this.logger.debug(`Successfully updated WAFv2 WebACL ${logicalId}`);
26168
- return {
26169
- physicalId,
26170
- wasReplaced: false,
26171
- attributes: {
26172
- Arn: physicalId,
26173
- Id: id,
26174
- LabelNamespace: getResponse.WebACL?.LabelNamespace
26175
- }
26176
- };
26177
- } catch (error) {
26178
- if (error instanceof ProvisioningError) throw error;
26179
- const cause = error instanceof Error ? error : void 0;
26180
- throw new ProvisioningError(`Failed to update WAFv2 WebACL ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
26181
- }
26182
- }
26183
- /**
26184
- * Delete a WAFv2 WebACL
26185
- *
26186
- * DeleteWebACL requires LockToken obtained from GetWebACL.
26187
- * WAFNonexistentItemException is treated as success (idempotent delete).
26188
- */
26189
- async delete(logicalId, physicalId, resourceType, _properties, context) {
26190
- this.logger.debug(`Deleting WAFv2 WebACL ${logicalId}: ${physicalId}`);
26191
- try {
26192
- const { id, name, scope } = parseWebACLArn(physicalId);
26193
- const lockToken = (await this.getClient().send(new GetWebACLCommand({
26194
- Name: name,
26195
- Scope: scope,
26196
- Id: id
26197
- }))).LockToken;
26198
- if (!lockToken) throw new Error("GetWebACL did not return LockToken");
26199
- await this.getClient().send(new DeleteWebACLCommand({
26200
- Name: name,
26201
- Scope: scope,
26202
- Id: id,
26203
- LockToken: lockToken
26204
- }));
26205
- this.logger.debug(`Successfully deleted WAFv2 WebACL ${logicalId}`);
26206
- } catch (error) {
26207
- if (error instanceof WAFNonexistentItemException) {
26208
- assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
26209
- this.logger.debug(`WAFv2 WebACL ${physicalId} does not exist, skipping deletion`);
26210
- return;
26211
- }
26212
- const cause = error instanceof Error ? error : void 0;
26213
- throw new ProvisioningError(`Failed to delete WAFv2 WebACL ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
26214
- }
26215
- }
26216
- /**
26217
- * Apply a diff between old and new CFn-shape Tags arrays via WAFv2's
26218
- * `TagResource` / `UntagResource` APIs (keyed by `ResourceARN`).
26219
- */
26220
- async applyTagDiff(arn, oldTagsRaw, newTagsRaw) {
26221
- const toMap = (tags) => {
26222
- const m = /* @__PURE__ */ new Map();
26223
- for (const t of tags ?? []) if (t.Key !== void 0 && t.Value !== void 0) m.set(t.Key, t.Value);
26224
- return m;
26225
- };
26226
- const oldMap = toMap(oldTagsRaw);
26227
- const newMap = toMap(newTagsRaw);
26228
- const tagsToAdd = [];
26229
- for (const [k, v] of newMap) if (oldMap.get(k) !== v) tagsToAdd.push({
26230
- Key: k,
26231
- Value: v
26232
- });
26233
- const tagsToRemove = [];
26234
- for (const k of oldMap.keys()) if (!newMap.has(k)) tagsToRemove.push(k);
26235
- if (tagsToRemove.length > 0) {
26236
- await this.getClient().send(new UntagResourceCommand$12({
26237
- ResourceARN: arn,
26238
- TagKeys: tagsToRemove
26239
- }));
26240
- this.logger.debug(`Removed ${tagsToRemove.length} tag(s) from WAFv2 WebACL ${arn}`);
26241
- }
26242
- if (tagsToAdd.length > 0) {
26243
- await this.getClient().send(new TagResourceCommand$13({
26244
- ResourceARN: arn,
26245
- Tags: tagsToAdd
26246
- }));
26247
- this.logger.debug(`Added/updated ${tagsToAdd.length} tag(s) on WAFv2 WebACL ${arn}`);
26248
- }
26249
- }
26250
- /**
26251
- * Read the AWS-current WAFv2 WebACL configuration in CFn-property shape.
26252
- *
26253
- * The cdkd physicalId is the WebACL ARN; we parse it back to
26254
- * `(id, name, scope)` and call `GetWebACL`. The response holds Name,
26255
- * Description, DefaultAction, Rules, VisibilityConfig,
26256
- * CustomResponseBodies, CaptchaConfig, ChallengeConfig, TokenDomains,
26257
- * and AssociationConfig — every key cdkd state declares as
26258
- * `handledProperties`. `Scope` is recovered from the ARN parse.
26259
- *
26260
- * Tags are surfaced via a follow-up `ListTagsForResource(ResourceARN)`
26261
- * call. CDK's `aws:*` auto-tags are filtered out and the result key is
26262
- * omitted when AWS reports no user tags. Returns `undefined`
26263
- * when the ARN can't be parsed or the WebACL is gone
26264
- * (`WAFNonexistentItemException`).
26265
- */
26266
- async readCurrentState(physicalId, _logicalId, _resourceType) {
26267
- let id;
26268
- let name;
26269
- let scope;
26270
- try {
26271
- ({id, name, scope} = parseWebACLArn(physicalId));
26272
- } catch {
26273
- return;
26274
- }
26275
- let webACL;
26276
- try {
26277
- webACL = (await this.getClient().send(new GetWebACLCommand({
26278
- Id: id,
26279
- Name: name,
26280
- Scope: scope
26281
- }))).WebACL;
26282
- } catch (err) {
26283
- if (err instanceof WAFNonexistentItemException) return void 0;
26284
- throw err;
26285
- }
26286
- if (!webACL) return void 0;
26287
- const result = {};
26288
- if (webACL.Name !== void 0) result["Name"] = webACL.Name;
26289
- result["Scope"] = scope;
26290
- result["Description"] = webACL.Description ?? "";
26291
- if (webACL.DefaultAction) result["DefaultAction"] = webACL.DefaultAction;
26292
- result["Rules"] = (webACL.Rules ?? []).map((r) => r);
26293
- if (webACL.VisibilityConfig) result["VisibilityConfig"] = webACL.VisibilityConfig;
26294
- result["CustomResponseBodies"] = webACL.CustomResponseBodies ?? {};
26295
- if (webACL.CaptchaConfig) result["CaptchaConfig"] = webACL.CaptchaConfig;
26296
- if (webACL.ChallengeConfig) result["ChallengeConfig"] = webACL.ChallengeConfig;
26297
- result["TokenDomains"] = webACL.TokenDomains ? [...webACL.TokenDomains] : [];
26298
- if (webACL.AssociationConfig) result["AssociationConfig"] = webACL.AssociationConfig;
26299
- try {
26300
- result["Tags"] = normalizeAwsTagsToCfn((await this.getClient().send(new ListTagsForResourceCommand$14({ ResourceARN: physicalId }))).TagInfoForResource?.TagList);
26301
- } catch (err) {
26302
- this.logger.debug(`WAFv2 ListTagsForResource(${physicalId}) failed: ${err instanceof Error ? err.message : String(err)}`);
26303
- }
26304
- return result;
26305
- }
26306
- /**
26307
- * Adopt an existing WAFv2 WebACL into cdkd state.
26308
- *
26309
- * Lookup order:
26310
- * 1. `--resource <id>=<arn>` override → verify with `GetWebACL` (parses
26311
- * Name/Id/Scope back out of the ARN).
26312
- * 2. Walk `ListWebACLs(Scope)` → match `aws:cdk:path` via
26313
- * `ListTagsForResource(ResourceARN)` (returns
26314
- * `TagInfoForResource.TagList`, standard `Key`/`Value` shape).
26315
- *
26316
- * `Scope` is required by `ListWebACLs` — read from
26317
- * `Properties.Scope` (`REGIONAL` is the default).
26318
- */
26319
- async import(input) {
26320
- if (input.knownPhysicalId) try {
26321
- const { id, name, scope } = parseWebACLArn(input.knownPhysicalId);
26322
- await this.getClient().send(new GetWebACLCommand({
26323
- Id: id,
26324
- Name: name,
26325
- Scope: scope
26326
- }));
26327
- return {
26328
- physicalId: input.knownPhysicalId,
26329
- attributes: {}
26330
- };
26331
- } catch (err) {
26332
- if (err instanceof WAFNonexistentItemException) return null;
26333
- throw err;
26334
- }
26335
- if (!input.cdkPath) return null;
26336
- const scope = input.properties["Scope"] || "REGIONAL";
26337
- let nextMarker;
26338
- do {
26339
- const list = await this.getClient().send(new ListWebACLsCommand({
26340
- Scope: scope,
26341
- ...nextMarker && { NextMarker: nextMarker }
26342
- }));
26343
- for (const item of list.WebACLs ?? []) {
26344
- if (!item.ARN) continue;
26345
- const tagList = (await this.getClient().send(new ListTagsForResourceCommand$14({ ResourceARN: item.ARN }))).TagInfoForResource?.TagList;
26346
- if (matchesCdkPath(tagList, input.cdkPath)) return {
26347
- physicalId: item.ARN,
26348
- attributes: {}
26349
- };
26350
- }
26351
- nextMarker = list.NextMarker;
26352
- } while (nextMarker);
26353
- return null;
26354
- }
26355
- };
26356
-
26357
26075
  //#endregion
26358
26076
  //#region src/provisioning/providers/cognito-provider.ts
26359
26077
  /**
@@ -26908,7 +26626,7 @@ var CognitoUserPoolProvider = class {
26908
26626
  if (input.cdkPath) try {
26909
26627
  const arn = (await this.getClient().send(new DescribeUserPoolCommand({ UserPoolId: pool.Id }))).UserPool?.Arn;
26910
26628
  if (!arn) continue;
26911
- if ((await this.getClient().send(new ListTagsForResourceCommand$15({ ResourceArn: arn }))).Tags?.["aws:cdk:path"] === input.cdkPath) return {
26629
+ if ((await this.getClient().send(new ListTagsForResourceCommand$14({ ResourceArn: arn }))).Tags?.["aws:cdk:path"] === input.cdkPath) return {
26912
26630
  physicalId: pool.Id,
26913
26631
  attributes: {}
26914
26632
  };
@@ -27896,7 +27614,7 @@ var ServiceDiscoveryProvider = class {
27896
27614
  /** Best-effort tag fetch via `ListTagsForResource(ResourceARN)`. */
27897
27615
  async attachTags(result, arn) {
27898
27616
  try {
27899
- result["Tags"] = normalizeAwsTagsToCfn((await this.getClient().send(new ListTagsForResourceCommand$16({ ResourceARN: arn }))).Tags);
27617
+ result["Tags"] = normalizeAwsTagsToCfn((await this.getClient().send(new ListTagsForResourceCommand$15({ ResourceARN: arn }))).Tags);
27900
27618
  } catch (err) {
27901
27619
  this.logger.debug(`ServiceDiscovery ListTagsForResource(${arn}) failed: ${err instanceof Error ? err.message : String(err)}`);
27902
27620
  }
@@ -27930,7 +27648,7 @@ var ServiceDiscoveryProvider = class {
27930
27648
  attributes: {}
27931
27649
  };
27932
27650
  if (input.cdkPath) try {
27933
- if (matchesCdkPath((await this.getClient().send(new ListTagsForResourceCommand$16({ ResourceARN: ns.Arn }))).Tags, input.cdkPath)) return {
27651
+ if (matchesCdkPath((await this.getClient().send(new ListTagsForResourceCommand$15({ ResourceARN: ns.Arn }))).Tags, input.cdkPath)) return {
27934
27652
  physicalId: ns.Id,
27935
27653
  attributes: {}
27936
27654
  };
@@ -27961,7 +27679,7 @@ var ServiceDiscoveryProvider = class {
27961
27679
  for (const svc of list.Services ?? []) {
27962
27680
  if (!svc.Id || !svc.Arn) continue;
27963
27681
  try {
27964
- if (matchesCdkPath((await this.getClient().send(new ListTagsForResourceCommand$16({ ResourceARN: svc.Arn }))).Tags, input.cdkPath)) return {
27682
+ if (matchesCdkPath((await this.getClient().send(new ListTagsForResourceCommand$15({ ResourceARN: svc.Arn }))).Tags, input.cdkPath)) return {
27965
27683
  physicalId: svc.Id,
27966
27684
  attributes: {}
27967
27685
  };
@@ -28351,7 +28069,7 @@ var AppSyncProvider = class {
28351
28069
  const tagsToAdd = {};
28352
28070
  for (const [k, v] of Object.entries(newMap)) if (oldMap[k] !== v) tagsToAdd[k] = v;
28353
28071
  if (tagKeysToRemove.length > 0) try {
28354
- await this.getClient().send(new UntagResourceCommand$13({
28072
+ await this.getClient().send(new UntagResourceCommand$12({
28355
28073
  resourceArn: arn,
28356
28074
  tagKeys: tagKeysToRemove
28357
28075
  }));
@@ -28359,7 +28077,7 @@ var AppSyncProvider = class {
28359
28077
  throw this.wrapUpdateError(error, resourceType, logicalId, apiId, "GraphqlApi (untag)");
28360
28078
  }
28361
28079
  if (Object.keys(tagsToAdd).length > 0) try {
28362
- await this.getClient().send(new TagResourceCommand$14({
28080
+ await this.getClient().send(new TagResourceCommand$13({
28363
28081
  resourceArn: arn,
28364
28082
  tags: tagsToAdd
28365
28083
  }));
@@ -31711,7 +31429,7 @@ var KinesisStreamConsumerProvider = class {
31711
31429
  if (desc.ConsumerName !== void 0) result["ConsumerName"] = desc.ConsumerName;
31712
31430
  if (desc.StreamARN !== void 0) result["StreamARN"] = desc.StreamARN;
31713
31431
  try {
31714
- result["Tags"] = normalizeAwsTagsToCfn((await this.getClient().send(new ListTagsForResourceCommand$17({ ResourceARN: physicalId }))).Tags);
31432
+ result["Tags"] = normalizeAwsTagsToCfn((await this.getClient().send(new ListTagsForResourceCommand$16({ ResourceARN: physicalId }))).Tags);
31715
31433
  } catch (err) {
31716
31434
  if (err instanceof ResourceNotFoundException$8) return void 0;
31717
31435
  this.logger.debug(`ListTagsForResource(${physicalId}) failed: ${err instanceof Error ? err.message : String(err)}`);
@@ -31735,14 +31453,14 @@ var KinesisStreamConsumerProvider = class {
31735
31453
  const tagsToRemove = [];
31736
31454
  for (const k of Object.keys(oldMap)) if (!(k in newMap)) tagsToRemove.push(k);
31737
31455
  if (tagsToRemove.length > 0) {
31738
- await this.getClient().send(new UntagResourceCommand$14({
31456
+ await this.getClient().send(new UntagResourceCommand$13({
31739
31457
  ResourceARN: consumerArn,
31740
31458
  TagKeys: tagsToRemove
31741
31459
  }));
31742
31460
  this.logger.debug(`Removed ${tagsToRemove.length} tag(s) from Kinesis stream consumer ${consumerArn}`);
31743
31461
  }
31744
31462
  if (Object.keys(tagsToAdd).length > 0) {
31745
- await this.getClient().send(new TagResourceCommand$15({
31463
+ await this.getClient().send(new TagResourceCommand$14({
31746
31464
  ResourceARN: consumerArn,
31747
31465
  Tags: tagsToAdd
31748
31466
  }));
@@ -34808,11 +34526,11 @@ var S3VectorsProvider = class {
34808
34526
  }
34809
34527
  if (!resourceArn) throw new ProvisioningError(`Could not resolve ARN for S3 VectorBucket ${logicalId} (${physicalId}); cannot apply tag update.`, resourceType, logicalId, physicalId);
34810
34528
  try {
34811
- if (Object.keys(toSet).length > 0) await this.getClient().send(new TagResourceCommand$16({
34529
+ if (Object.keys(toSet).length > 0) await this.getClient().send(new TagResourceCommand$15({
34812
34530
  resourceArn,
34813
34531
  tags: toSet
34814
34532
  }));
34815
- if (toRemove.length > 0) await this.getClient().send(new UntagResourceCommand$15({
34533
+ if (toRemove.length > 0) await this.getClient().send(new UntagResourceCommand$14({
34816
34534
  resourceArn,
34817
34535
  tagKeys: toRemove
34818
34536
  }));
@@ -34940,7 +34658,7 @@ var S3VectorsProvider = class {
34940
34658
  if (Object.keys(enc).length > 0) result["EncryptionConfiguration"] = enc;
34941
34659
  }
34942
34660
  if (bucket?.vectorBucketArn) try {
34943
- result["Tags"] = normalizeAwsTagsToCfn((await this.getClient().send(new ListTagsForResourceCommand$18({ resourceArn: bucket.vectorBucketArn }))).tags);
34661
+ result["Tags"] = normalizeAwsTagsToCfn((await this.getClient().send(new ListTagsForResourceCommand$17({ resourceArn: bucket.vectorBucketArn }))).tags);
34944
34662
  } catch (err) {
34945
34663
  this.logger.debug(`S3Vectors ListTagsForResource(${bucket.vectorBucketArn}) failed: ${err instanceof Error ? err.message : String(err)}`);
34946
34664
  result["Tags"] = [];
@@ -34976,7 +34694,7 @@ var S3VectorsProvider = class {
34976
34694
  for (const bucket of list.vectorBuckets ?? []) {
34977
34695
  if (!bucket.vectorBucketName || !bucket.vectorBucketArn) continue;
34978
34696
  try {
34979
- if ((await this.getClient().send(new ListTagsForResourceCommand$18({ resourceArn: bucket.vectorBucketArn }))).tags?.["aws:cdk:path"] === input.cdkPath) return {
34697
+ if ((await this.getClient().send(new ListTagsForResourceCommand$17({ resourceArn: bucket.vectorBucketArn }))).tags?.["aws:cdk:path"] === input.cdkPath) return {
34980
34698
  physicalId: bucket.vectorBucketName,
34981
34699
  attributes: {}
34982
34700
  };
@@ -35586,7 +35304,7 @@ var S3TablesProvider = class {
35586
35304
  attributes: {}
35587
35305
  };
35588
35306
  if (input.cdkPath) try {
35589
- if ((await this.getClient().send(new ListTagsForResourceCommand$19({ resourceArn: bucket.arn }))).tags?.["aws:cdk:path"] === input.cdkPath) return {
35307
+ if ((await this.getClient().send(new ListTagsForResourceCommand$18({ resourceArn: bucket.arn }))).tags?.["aws:cdk:path"] === input.cdkPath) return {
35590
35308
  physicalId: bucket.arn,
35591
35309
  attributes: {}
35592
35310
  };
@@ -35653,7 +35371,7 @@ var S3TablesProvider = class {
35653
35371
  for (const table of tables.tables ?? []) {
35654
35372
  if (!table.name || !table.tableARN) continue;
35655
35373
  try {
35656
- if ((await this.getClient().send(new ListTagsForResourceCommand$19({ resourceArn: table.tableARN }))).tags?.["aws:cdk:path"] === input.cdkPath) return {
35374
+ if ((await this.getClient().send(new ListTagsForResourceCommand$18({ resourceArn: table.tableARN }))).tags?.["aws:cdk:path"] === input.cdkPath) return {
35657
35375
  physicalId: `${bucket.arn}|${namespaceName}|${table.name}`,
35658
35376
  attributes: {}
35659
35377
  };
@@ -35749,7 +35467,7 @@ var S3TablesProvider = class {
35749
35467
  */
35750
35468
  async readTagsBestEffort(resourceArn) {
35751
35469
  try {
35752
- const tags = (await this.getClient().send(new ListTagsForResourceCommand$19({ resourceArn }))).tags ?? {};
35470
+ const tags = (await this.getClient().send(new ListTagsForResourceCommand$18({ resourceArn }))).tags ?? {};
35753
35471
  const out = [];
35754
35472
  for (const [Key, Value] of Object.entries(tags)) out.push({
35755
35473
  Key,
@@ -35803,7 +35521,7 @@ var S3TablesProvider = class {
35803
35521
  const resourceArn = await this.lookupTableArn(tableBucketARN, namespace, name);
35804
35522
  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);
35805
35523
  if (removedKeys.length > 0) try {
35806
- await this.getClient().send(new UntagResourceCommand$16({
35524
+ await this.getClient().send(new UntagResourceCommand$15({
35807
35525
  resourceArn,
35808
35526
  tagKeys: removedKeys
35809
35527
  }));
@@ -35812,7 +35530,7 @@ var S3TablesProvider = class {
35812
35530
  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);
35813
35531
  }
35814
35532
  if (Object.keys(upserts).length > 0) try {
35815
- await this.getClient().send(new TagResourceCommand$17({
35533
+ await this.getClient().send(new TagResourceCommand$16({
35816
35534
  resourceArn,
35817
35535
  tags: upserts
35818
35536
  }));
@@ -35844,7 +35562,7 @@ var S3TablesProvider = class {
35844
35562
  if (removedKeys.length === 0 && Object.keys(upserts).length === 0) return;
35845
35563
  const resourceArn = physicalId;
35846
35564
  if (removedKeys.length > 0) try {
35847
- await this.getClient().send(new UntagResourceCommand$16({
35565
+ await this.getClient().send(new UntagResourceCommand$15({
35848
35566
  resourceArn,
35849
35567
  tagKeys: removedKeys
35850
35568
  }));
@@ -35853,7 +35571,7 @@ var S3TablesProvider = class {
35853
35571
  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);
35854
35572
  }
35855
35573
  if (Object.keys(upserts).length > 0) try {
35856
- await this.getClient().send(new TagResourceCommand$17({
35574
+ await this.getClient().send(new TagResourceCommand$16({
35857
35575
  resourceArn,
35858
35576
  tags: upserts
35859
35577
  }));
@@ -55796,7 +55514,7 @@ function reorderArgs(argv) {
55796
55514
  async function main() {
55797
55515
  installPipeCloseHandler();
55798
55516
  const program = new Command();
55799
- program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.231.0");
55517
+ program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.231.2");
55800
55518
  program.addCommand(createBootstrapCommand());
55801
55519
  program.addCommand(createSynthCommand());
55802
55520
  program.addCommand(createListCommand());