@go-to-k/cdkd 0.240.0 → 0.242.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.
@@ -5765,6 +5765,27 @@ function attributeTypeChangedForSharedAttribute(oldValue, newValue) {
5765
5765
  return false;
5766
5766
  }
5767
5767
  /**
5768
+ * Conditional-replacement predicate for `AWS::Budgets::Budget.Budget`.
5769
+ *
5770
+ * The budget name (`Budget.BudgetName`, nested) is the physical id and is
5771
+ * createOnly — only a name change forces replacement; every other edit
5772
+ * inside the `Budget` block (limit, period, type, filters) is an in-place
5773
+ * `UpdateBudget`. A one-sided explicit name (added or removed) is treated as
5774
+ * a change: the other side's effective name was the cdkd-generated fallback,
5775
+ * which cannot match a user-supplied name.
5776
+ */
5777
+ function budgetNameChanged(oldValue, newValue) {
5778
+ const nameOf = (value) => {
5779
+ if (value === null || typeof value !== "object") return void 0;
5780
+ const name = value["BudgetName"];
5781
+ return typeof name === "string" ? name : void 0;
5782
+ };
5783
+ const oldName = nameOf(oldValue);
5784
+ const newName = nameOf(newValue);
5785
+ if (oldName === void 0 && newName === void 0) return false;
5786
+ return oldName !== newName;
5787
+ }
5788
+ /**
5768
5789
  * Replacement rules registry
5769
5790
  *
5770
5791
  * Maps resource types to their replacement rules
@@ -6013,6 +6034,11 @@ var ReplacementRulesRegistry = class {
6013
6034
  "Tags"
6014
6035
  ])
6015
6036
  });
6037
+ this.rules.set("AWS::Budgets::Budget", {
6038
+ replacementProperties: /* @__PURE__ */ new Set(),
6039
+ updateableProperties: new Set(["NotificationsWithSubscribers", "ResourceTags"]),
6040
+ conditionalReplacements: new Map([["Budget", budgetNameChanged]])
6041
+ });
6016
6042
  this.rules.set("AWS::CloudWatch::Alarm", {
6017
6043
  replacementProperties: new Set(["AlarmName"]),
6018
6044
  updateableProperties: new Set([
@@ -8137,9 +8163,16 @@ var IntrinsicFunctionResolver = class {
8137
8163
  case "ApiId": return physicalId;
8138
8164
  default: return physicalId;
8139
8165
  }
8140
- if (resourceType === "AWS::ServiceDiscovery::PrivateDnsNamespace") switch (attributeName) {
8166
+ if (resourceType === "AWS::ServiceDiscovery::PrivateDnsNamespace" || resourceType === "AWS::ServiceDiscovery::HttpNamespace" || resourceType === "AWS::ServiceDiscovery::PublicDnsNamespace") switch (attributeName) {
8141
8167
  case "Arn": return `arn:${partition}:servicediscovery:${region}:${accountId}:namespace/${physicalId}`;
8142
8168
  case "Id": return physicalId;
8169
+ case "HostedZoneId": try {
8170
+ const { ServiceDiscoveryClient, GetNamespaceCommand } = await import("@aws-sdk/client-servicediscovery");
8171
+ return (await new ServiceDiscoveryClient({ region: this.resolverRegion }).send(new GetNamespaceCommand({ Id: physicalId }))).Namespace?.Properties?.DnsProperties?.HostedZoneId;
8172
+ } catch (error) {
8173
+ this.logger.warn(`Failed to fetch HostedZoneId for namespace ${physicalId}: ${error instanceof Error ? error.message : String(error)}`);
8174
+ return;
8175
+ }
8143
8176
  default: return physicalId;
8144
8177
  }
8145
8178
  if (resourceType === "AWS::ServiceDiscovery::Service") switch (attributeName) {
@@ -9272,7 +9305,6 @@ const NON_PROVISIONABLE_TYPES = new Set([
9272
9305
  "AWS::BedrockAgentCore::Browser",
9273
9306
  "AWS::BedrockAgentCore::CodeInterpreter",
9274
9307
  "AWS::BedrockAgentCore::TokenVault",
9275
- "AWS::Budgets::Budget",
9276
9308
  "AWS::Cloud9::EnvironmentEC2",
9277
9309
  "AWS::CloudFormation::Macro",
9278
9310
  "AWS::CloudFormation::WaitCondition",
@@ -9400,9 +9432,7 @@ const NON_PROVISIONABLE_TYPES = new Set([
9400
9432
  "AWS::SageMaker::NotebookInstanceLifecycleConfig",
9401
9433
  "AWS::SageMaker::Workteam",
9402
9434
  "AWS::SDB::Domain",
9403
- "AWS::ServiceDiscovery::HttpNamespace",
9404
9435
  "AWS::ServiceDiscovery::Instance",
9405
- "AWS::ServiceDiscovery::PublicDnsNamespace",
9406
9436
  "AWS::SES::ReceiptFilter",
9407
9437
  "AWS::SES::ReceiptRule",
9408
9438
  "AWS::SES::ReceiptRuleSet",
@@ -11154,6 +11184,14 @@ const PROPERTY_COVERAGE_BY_TYPE = new Map([
11154
11184
  ["Tags", "not yet implemented by cdkd"]
11155
11185
  ])
11156
11186
  }],
11187
+ ["AWS::Budgets::Budget", {
11188
+ handled: new Set([
11189
+ "Budget",
11190
+ "NotificationsWithSubscribers",
11191
+ "ResourceTags"
11192
+ ]),
11193
+ silentDrop: /* @__PURE__ */ new Map()
11194
+ }],
11157
11195
  ["AWS::CertificateManager::Certificate", {
11158
11196
  handled: new Set([
11159
11197
  "CertificateAuthorityArn",
@@ -12658,6 +12696,14 @@ const PROPERTY_COVERAGE_BY_TYPE = new Map([
12658
12696
  ]),
12659
12697
  silentDrop: /* @__PURE__ */ new Map()
12660
12698
  }],
12699
+ ["AWS::ServiceDiscovery::HttpNamespace", {
12700
+ handled: new Set([
12701
+ "Description",
12702
+ "Name",
12703
+ "Tags"
12704
+ ]),
12705
+ silentDrop: /* @__PURE__ */ new Map()
12706
+ }],
12661
12707
  ["AWS::ServiceDiscovery::PrivateDnsNamespace", {
12662
12708
  handled: new Set([
12663
12709
  "Description",
@@ -12668,6 +12714,15 @@ const PROPERTY_COVERAGE_BY_TYPE = new Map([
12668
12714
  ]),
12669
12715
  silentDrop: /* @__PURE__ */ new Map()
12670
12716
  }],
12717
+ ["AWS::ServiceDiscovery::PublicDnsNamespace", {
12718
+ handled: new Set([
12719
+ "Description",
12720
+ "Name",
12721
+ "Properties",
12722
+ "Tags"
12723
+ ]),
12724
+ silentDrop: /* @__PURE__ */ new Map()
12725
+ }],
12671
12726
  ["AWS::ServiceDiscovery::Service", {
12672
12727
  handled: new Set([
12673
12728
  "Description",
@@ -16020,4 +16075,4 @@ var DeployEngine = class {
16020
16075
 
16021
16076
  //#endregion
16022
16077
  export { getDockerCmd as $, DiffCalculator as A, buildAssetRedirectMap as B, findActionableSilentDrops as C, resolveBucketRegion as Ct, refStateLookupFromResource as D, cfnRefValueFromPhysicalId as E, rebuildClientForBucketRegion as F, BOOTSTRAP_MARKER_PREFIX as G, loadPublishableAssetManifest as H, shouldRetainResource as I, parseBootstrapMarker as J, ensureAssetStorage as K, AssetPublisher as L, TemplateParser as M, LockManager as N, WAFv2WebACLProvider as O, S3StateBackend as P, formatDockerLoginError as Q, stringifyValue as R, ProviderRegistry as S, clearBucketRegionCache as St, IntrinsicFunctionResolver as T, rewriteTemplateAssetReferences as U, createAssetRedirectResolver as V, AssetModeResolver as W, validateContainerRepoName as X, validateAssetBucketName as Y, buildDockerImage as Z, green as _, CFN_TEMPLATE_URL_LIMIT as _t, withRetry as a, synthesisStatusMessage as at, IAMRoleProvider as b, uploadCfnTemplate as bt, computeImplicitDeleteEdges as c, resolveApp as ct, isStatefulRecreateTargetSync as d, resolveSkipPrefix as dt, runDockerForeground as et, renderStatefulReason as f, resolveStateBucketWithDefault as ft, gray as g, CFN_TEMPLATE_BODY_LIMIT as gt, cyan as h, warnDeprecatedNoPrefixCliFlag as ht, withResourceDeadline as i, Synthesizer as it, DagBuilder as j, applyRoleArnIfSet as k, extractDeploymentEventError as l, resolveAutoAssetStorage as lt, bold as m, resolveUseCdkBootstrapAssets as mt, DEFAULT_RESOURCE_WARN_AFTER_MS as n, AssetManifestLoader as nt, isRetryableTransientError as o, getDefaultStateBucketName as ot, formatResourceLine as p, resolveStateBucketWithDefaultAndSource as pt, getBootstrapMarkerKey as q, DeployEngine as r, getDockerImageBySourceHash as rt, IMPLICIT_DELETE_DEPENDENCIES as s, getLegacyStateBucketName as st, DEFAULT_RESOURCE_TIMEOUT_MS as t, runDockerStreaming as tt, MULTI_REGION_RECREATE_BLOCKED_TYPES as u, resolveCaptureObservedState as ut, red as v, MIGRATE_TMP_PREFIX as vt, CloudControlProvider as w, collectInlinePolicyNamesManagedBySiblings as x, AssemblyReader as xt, yellow as y, findLargeInlineResources as yt, WorkGraph as z };
16023
- //# sourceMappingURL=deploy-engine-D_OJrSGP.js.map
16078
+ //# sourceMappingURL=deploy-engine-7FfFEJkw.js.map