@go-to-k/cdkd 0.289.9 → 0.290.1
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/README.md +1 -1
- package/dist/{asg-provider-BNOp-qgj.js → asg-provider-e05iqtU_.js} +2 -2
- package/dist/{asg-provider-BNOp-qgj.js.map → asg-provider-e05iqtU_.js.map} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{deploy-engine-BwZFYWGI.js → deploy-engine-aYUEGRRl.js} +81 -24
- package/dist/deploy-engine-aYUEGRRl.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/{program-gLF8ioT_.js → program-CnTfNj2k.js} +287 -167
- package/dist/{program-gLF8ioT_.js.map → program-CnTfNj2k.js.map} +1 -1
- package/dist/{version-DIRhHTEG.js → version-DTli1mA9.js} +2 -2
- package/dist/{version-DIRhHTEG.js.map → version-DTli1mA9.js.map} +1 -1
- package/package.json +2 -2
- package/dist/deploy-engine-BwZFYWGI.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { $ as getCurrentResourceSecrets, $n as validateAssetBucketName, $t as findActionableSilentDrops, A as planOrphanAdoption, An as CUSTOM_RESOURCE_RESPONSE_PREFIX, Ar as warnDeprecatedNoPrefixCliFlag, At as resolveExplicitPhysicalId, B as bold, Bn as WorkGraph, Br as derivePartitionAndUrlSuffix, Bt as requireConfigObject, C as createPreDeleteFinalSnapshot, Ci as markNonRetryable, Cn as S3StateBackend, Cr as resolveAutoAssetStorage, Ct as coerceParameterTypedValue, D as makeCanonicalizePropertiesFn, Dn as forceQuitRecoveryClause, Dr as resolveStateBucketWithDefaultAndSource, Dt as refStateLookupFromResource, E as unsupportedFinalSnapshotError, En as buildLockContentionMessage, Er as resolveStateBucketWithDefault, Et as parameterTypeMayLoseSecretIdentity, F as WARM_THROUGHPUT_MEMBERS, Fn as orphansAfterRollback, Fr as uploadCfnTemplate, Ft as configIntegerRefusal, G as yellow, Gn as AssetModeResolver, Gr as AwsClients, Gt as s3BucketArn, H as gray, Hn as createAssetRedirectResolver, Hr as processStackMessages, Ht as classifyReplaySecretRegion, I as coerceWarmThroughput$1, In as orphansCarriedFrom, Ir as CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION, It as configStringRefusal, J as exportAliasCollisionScrubWarning, Jn as ensureAssetStorage, Jr as setAwsClients, Jt as s3BucketRegionalDomainName, K as collectDeclaredOutputNames, Kn as BOOTSTRAP_MARKER_PREFIX, Kr as getAwsClients, Kt as s3BucketDomainName, L as isWarmThroughputDecrease, Ln as shouldRetainResource, Lr as expectedOwnerParam, Lt as readConfigString, M as isStatefulRecreateTargetForReplace, Mn as exportNamesCarriedFrom, Mr as CFN_TEMPLATE_URL_LIMIT, Mt as coerceCfnBoolean, N as isStatefulRecreateTargetSync, Nn as importableOutputKeys, Nr as MIGRATE_TMP_PREFIX, Nt as coerceCfnInteger, O as extractDeploymentEventError, On as formatLockExpiry, Or as resolveUseCdkBootstrapAssets, Ot as WAFv2WebACLProvider, P as renderStatefulReason, Pn as importableOutputs, Pr as findLargeInlineResources, Pt as configBooleanRefusal, Q as secretSafeKeyDisplay, Qn as readBootstrapMarkerBody, Qr as CrossAccountSecretRefusalError, Qt as INTRINSIC_KEYS, R as toFiniteNumber, Rn as AssetPublisher, Rr as PARTITION_TABLE, Rt as replayWarn, S as ccRoutedFinalSnapshotError, Si as isTransientServerError, Sn as LockManager, Sr as resolveApp, St as cfnRefValueFromPhysicalId, T as refusesFinalSnapshot, Ti as retryClassificationText, Tn as buildForceUnlockCommand, Tr as resolveSkipPrefix, Tt as isUnboundTemplateParameter, U as green, Un as loadPublishableAssetManifest, Ut as producerRegionsFromState, V as cyan, Vn as buildAssetRedirectMap, Vr as AssemblyReader, Vt as requireConfigString, W as red, Wn as rewriteTemplateAssetReferences, Wr as resolveBucketRegion, Wt as withSharedDrainBudget, X as secretBearing, Xn as isCrossRegionRedirect, Xr as CdkdError, Xt as applyRoleArnIfSet, Y as isExportAliasCollision, Yn as getBootstrapMarkerKey, Yt as s3BucketWebsiteUrl, Z as secretBearingStateKeyWarning, Zn as parseBootstrapMarker, Zt as DiffCalculator, _ as isSecretBearingReferenceString, _i as normalizeAwsError, _n as maskSecretsInText, _r as getDockerImageBySourceHash, _t as deleteSkipReason, a as DeploymentEventsStore, an as STATE_SOURCED_BASELINE_RULES, ar as describeDockerExecFailure, at as createMaskedRetryLogger, b as PRE_DELETE_SNAPSHOT_TYPES, bi as isRetryableTransientError, bn as redactSecretsForState, br as getDefaultStateBucketName, bt as IntrinsicFunctionResolver, c as replayFailedOperations, ci as ProvisioningError, cn as TEMPLATE_SOURCED_RULES, cr as formatDockerLoginError, ct as beginCommandInterruptScope, d as updatePartialReason, di as StackHasActiveImportsError, dn as dynamicReferenceTokens, dr as redactDockerArgvValues, dt as isInterruptedWaitError, ei as DeployCancelledError, en as findSilentDropProperties, er as validateContainerRepoName, et as IAMRoleProvider, f as withResourceDeadline, fi as StackTerminationProtectionError, fn as errorCauseChain, fr as runDockerForeground, ft as startInterruptWatch, g as bagHoldsSecretExpression, gn as maskSecretsInError, gr as AssetManifestLoader, gt as deleteIndeterminateGuards, h as computeImplicitDeleteEdges, hn as markSameGenerationBag, hr as stripControlChars, ht as UNSPECIFIED_SKIP_REASON, i as DeploymentEventsReader, ii as LocalStartServiceError, in as TemplateParser, ir as describeDockerCapturedOutput, it as wouldReturnToSdkProvider, j as MULTI_REGION_RECREATE_BLOCKED_TYPES, jn as DEFAULT_STATE_PREFIX, jr as CFN_TEMPLATE_BODY_LIMIT, jt as assertRegionMatch, k as makeSiblingClaimReader, kn as shellQuote, kr as stateBucketExistenceConfirmed, kt as normalizeAwsTagsToCfn, l as replayRollback, li as ResourceTimeoutError, ln as carriesSecretMask, lr as getDockerCmd, lt as endCommandInterruptScope, m as IMPLICIT_DELETE_DEPENDENCIES, mn as isSingleDynamicReferenceToken, mr as escapeRegExp, mt as slowCcOperationTimeoutMs, n as DEFAULT_RESOURCE_WARN_AFTER_MS, ni as IntrinsicResolutionRefusalError, nn as withRetry, nr as describeAwsFailure, nt as clearOnUpdateRemoval, o as planFailedOps, oi as NestedStackChildDirectDestroyError, on as STATE_SOURCED_CROSS_GENERATION_RULES, or as describeDockerFailure, ot as maskDeep, p as maskingRetryLogger, pn as identityKeyFor, pr as runDockerStreaming, pt as CloudControlProvider, q as collectPublishedOutputNames, qn as assertAssetBucketRegion, qr as resetAwsClients, qt as s3BucketDualStackDomainName, r as DeployEngine, ri as LocalInvokeBuildError$1, rn as DagBuilder, rr as buildDockerImage, rt as ProviderRegistry, s as planRollback, si as PartialFailureError, sn as STATE_SOURCED_READBACK_RULES, sr as dockerSpawnEnvWithSensitive, st as maskerOrIdentity, t as DEFAULT_RESOURCE_TIMEOUT_MS, ti as DynamicReferenceRegionAmbiguousError, tn as describeTypeWithThrottleRetry, tr as buildDenyExternalAccessPolicy, tt as collectInlinePolicyNamesManagedBySiblings, u as updatePartialMessage, ui as ResourceUpdateNotSupportedError, un as createSecretMasker, ur as partitionSensitiveEnv, ut as interruptWatchListenerCount, v as bindingSkippedOutputs, vi as withErrorHandling, vn as recordMaskOnlyValue, vr as Synthesizer, vt as disableInstanceApiTermination, w as isFinalSnapshotError, wi as markRedactedCause, wn as rebuildClientForBucketRegion, wr as resolveCaptureObservedState, wt as getAccountInfo, x as buildFinalSnapshotIdentifier, xi as isThrottlingError, xn as scrubResourceRecord, xr as getLegacyStateBucketName, xt as carriesDynamicReference, y as ATOMIC_FINAL_SNAPSHOT_TYPES, yi as isMarkedNonRetryable, yn as recoverMaskedOutput, yr as synthesisStatusMessage, yt as isTerminationProtectionPropagationError, z as formatResourceLine, zn as stringifyValue, zr as canonicalizeRegion, zt as requireConfigArray } from "./deploy-engine-
|
|
1
|
+
import { $ as getCurrentResourceSecrets, $n as validateAssetBucketName, $t as findActionableSilentDrops, A as planOrphanAdoption, An as CUSTOM_RESOURCE_RESPONSE_PREFIX, Ar as warnDeprecatedNoPrefixCliFlag, At as resolveExplicitPhysicalId, B as bold, Bn as WorkGraph, Br as derivePartitionAndUrlSuffix, Bt as requireConfigObject, C as createPreDeleteFinalSnapshot, Ci as markNonRetryable, Cn as S3StateBackend, Cr as resolveAutoAssetStorage, Ct as coerceParameterTypedValue, D as makeCanonicalizePropertiesFn, Dn as forceQuitRecoveryClause, Dr as resolveStateBucketWithDefaultAndSource, Dt as refStateLookupFromResource, E as unsupportedFinalSnapshotError, En as buildLockContentionMessage, Er as resolveStateBucketWithDefault, Et as parameterTypeMayLoseSecretIdentity, F as WARM_THROUGHPUT_MEMBERS, Fn as orphansAfterRollback, Fr as uploadCfnTemplate, Ft as configIntegerRefusal, G as yellow, Gn as AssetModeResolver, Gr as AwsClients, Gt as s3BucketArn, H as gray, Hn as createAssetRedirectResolver, Hr as processStackMessages, Ht as classifyReplaySecretRegion, I as coerceWarmThroughput$1, In as orphansCarriedFrom, Ir as CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION, It as configStringRefusal, J as exportAliasCollisionScrubWarning, Jn as ensureAssetStorage, Jr as setAwsClients, Jt as s3BucketRegionalDomainName, K as collectDeclaredOutputNames, Kn as BOOTSTRAP_MARKER_PREFIX, Kr as getAwsClients, Kt as s3BucketDomainName, L as isWarmThroughputDecrease, Ln as shouldRetainResource, Lr as expectedOwnerParam, Lt as readConfigString, M as isStatefulRecreateTargetForReplace, Mn as exportNamesCarriedFrom, Mr as CFN_TEMPLATE_URL_LIMIT, Mt as coerceCfnBoolean, N as isStatefulRecreateTargetSync, Nn as importableOutputKeys, Nr as MIGRATE_TMP_PREFIX, Nt as coerceCfnInteger, O as extractDeploymentEventError, On as formatLockExpiry, Or as resolveUseCdkBootstrapAssets, Ot as WAFv2WebACLProvider, P as renderStatefulReason, Pn as importableOutputs, Pr as findLargeInlineResources, Pt as configBooleanRefusal, Q as secretSafeKeyDisplay, Qn as readBootstrapMarkerBody, Qr as CrossAccountSecretRefusalError, Qt as INTRINSIC_KEYS, R as toFiniteNumber, Rn as AssetPublisher, Rr as PARTITION_TABLE, Rt as replayWarn, S as ccRoutedFinalSnapshotError, Si as isTransientServerError, Sn as LockManager, Sr as resolveApp, St as cfnRefValueFromPhysicalId, T as refusesFinalSnapshot, Ti as retryClassificationText, Tn as buildForceUnlockCommand, Tr as resolveSkipPrefix, Tt as isUnboundTemplateParameter, U as green, Un as loadPublishableAssetManifest, Ut as producerRegionsFromState, V as cyan, Vn as buildAssetRedirectMap, Vr as AssemblyReader, Vt as requireConfigString, W as red, Wn as rewriteTemplateAssetReferences, Wr as resolveBucketRegion, Wt as withSharedDrainBudget, X as secretBearing, Xn as isCrossRegionRedirect, Xr as CdkdError, Xt as applyRoleArnIfSet, Y as isExportAliasCollision, Yn as getBootstrapMarkerKey, Yt as s3BucketWebsiteUrl, Z as secretBearingStateKeyWarning, Zn as parseBootstrapMarker, Zt as DiffCalculator, _ as isSecretBearingReferenceString, _i as normalizeAwsError, _n as maskSecretsInText, _r as getDockerImageBySourceHash, _t as deleteSkipReason, a as DeploymentEventsStore, an as STATE_SOURCED_BASELINE_RULES, ar as describeDockerExecFailure, at as createMaskedRetryLogger, b as PRE_DELETE_SNAPSHOT_TYPES, bi as isRetryableTransientError, bn as redactSecretsForState, br as getDefaultStateBucketName, bt as IntrinsicFunctionResolver, c as replayFailedOperations, ci as ProvisioningError, cn as TEMPLATE_SOURCED_RULES, cr as formatDockerLoginError, ct as beginCommandInterruptScope, d as updatePartialReason, di as StackHasActiveImportsError, dn as dynamicReferenceTokens, dr as redactDockerArgvValues, dt as isInterruptedWaitError, ei as DeployCancelledError, en as findSilentDropProperties, er as validateContainerRepoName, et as IAMRoleProvider, f as withResourceDeadline, fi as StackTerminationProtectionError, fn as errorCauseChain, fr as runDockerForeground, ft as startInterruptWatch, g as bagHoldsSecretExpression, gn as maskSecretsInError, gr as AssetManifestLoader, gt as deleteIndeterminateGuards, h as computeImplicitDeleteEdges, hn as markSameGenerationBag, hr as stripControlChars, ht as UNSPECIFIED_SKIP_REASON, i as DeploymentEventsReader, ii as LocalStartServiceError, in as TemplateParser, ir as describeDockerCapturedOutput, it as wouldReturnToSdkProvider, j as MULTI_REGION_RECREATE_BLOCKED_TYPES, jn as DEFAULT_STATE_PREFIX, jr as CFN_TEMPLATE_BODY_LIMIT, jt as assertRegionMatch, k as makeSiblingClaimReader, kn as shellQuote, kr as stateBucketExistenceConfirmed, kt as normalizeAwsTagsToCfn, l as replayRollback, li as ResourceTimeoutError, ln as carriesSecretMask, lr as getDockerCmd, lt as endCommandInterruptScope, m as IMPLICIT_DELETE_DEPENDENCIES, mn as isSingleDynamicReferenceToken, mr as escapeRegExp, mt as slowCcOperationTimeoutMs, n as DEFAULT_RESOURCE_WARN_AFTER_MS, ni as IntrinsicResolutionRefusalError, nn as withRetry, nr as describeAwsFailure, nt as clearOnUpdateRemoval, o as planFailedOps, oi as NestedStackChildDirectDestroyError, on as STATE_SOURCED_CROSS_GENERATION_RULES, or as describeDockerFailure, ot as maskDeep, p as maskingRetryLogger, pn as identityKeyFor, pr as runDockerStreaming, pt as CloudControlProvider, q as collectPublishedOutputNames, qn as assertAssetBucketRegion, qr as resetAwsClients, qt as s3BucketDualStackDomainName, r as DeployEngine, ri as LocalInvokeBuildError$1, rn as DagBuilder, rr as buildDockerImage, rt as ProviderRegistry, s as planRollback, si as PartialFailureError, sn as STATE_SOURCED_READBACK_RULES, sr as dockerSpawnEnvWithSensitive, st as maskerOrIdentity, t as DEFAULT_RESOURCE_TIMEOUT_MS, ti as DynamicReferenceRegionAmbiguousError, tn as describeTypeWithThrottleRetry, tr as buildDenyExternalAccessPolicy, tt as collectInlinePolicyNamesManagedBySiblings, u as updatePartialMessage, ui as ResourceUpdateNotSupportedError, un as createSecretMasker, ur as partitionSensitiveEnv, ut as interruptWatchListenerCount, v as bindingSkippedOutputs, vi as withErrorHandling, vn as recordMaskOnlyValue, vr as Synthesizer, vt as disableInstanceApiTermination, w as isFinalSnapshotError, wi as markRedactedCause, wn as rebuildClientForBucketRegion, wr as resolveCaptureObservedState, wt as getAccountInfo, x as buildFinalSnapshotIdentifier, xi as isThrottlingError, xn as scrubResourceRecord, xr as getLegacyStateBucketName, xt as carriesDynamicReference, y as ATOMIC_FINAL_SNAPSHOT_TYPES, yi as isMarkedNonRetryable, yn as recoverMaskedOutput, yr as synthesisStatusMessage, yt as isTerminationProtectionPropagationError, z as formatResourceLine, zn as stringifyValue, zr as canonicalizeRegion, zt as requireConfigArray } from "./deploy-engine-aYUEGRRl.js";
|
|
2
2
|
import { _ as withSkipPrefix, b as displaySafe, c as PATTERN_B_NAME_OPTIONS, f as explicitNamePropertyFor, h as getCurrentStackName, i as reserveStdoutForPayload, l as PATTERN_B_NAME_PROPERTIES, m as generateResourceNameWithFallback, n as getLogger, o as runStackBuffered, p as generateResourceName, s as getLiveRenderer, u as PATTERN_B_RESOURCE_TYPES, v as withStackName, x as truncateCodePoints, y as UNRENDERABLE } from "./logger-DTEUzYP_.js";
|
|
3
3
|
import { t as awsClientDefaults } from "./aws-client-defaults-D-iYiIJ6.js";
|
|
4
|
-
import { t as getCdkdVersion } from "./version-
|
|
5
|
-
import { r as protectedReplacementAdvice, t as ASGProvider } from "./asg-provider-
|
|
4
|
+
import { t as getCdkdVersion } from "./version-DTli1mA9.js";
|
|
5
|
+
import { r as protectedReplacementAdvice, t as ASGProvider } from "./asg-provider-e05iqtU_.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, DeleteBucketEncryptionCommand, DeleteBucketIntelligentTieringConfigurationCommand, DeleteBucketInventoryConfigurationCommand, DeleteBucketLifecycleCommand, DeleteBucketMetricsConfigurationCommand, DeleteBucketOwnershipControlsCommand, DeleteBucketPolicyCommand, DeleteBucketReplicationCommand, DeleteBucketTaggingCommand, DeleteBucketWebsiteCommand, DeleteObjectsCommand, GetBucketAccelerateConfigurationCommand, GetBucketCorsCommand, GetBucketEncryptionCommand, GetBucketLifecycleConfigurationCommand, GetBucketLocationCommand, GetBucketLoggingCommand, GetBucketNotificationConfigurationCommand, GetBucketOwnershipControlsCommand, GetBucketPolicyCommand, GetBucketReplicationCommand, GetBucketTaggingCommand, GetBucketVersioningCommand, GetBucketWebsiteCommand, GetObjectCommand, GetObjectLockConfigurationCommand, GetPublicAccessBlockCommand, HeadBucketCommand, ListBucketAnalyticsConfigurationsCommand, ListBucketIntelligentTieringConfigurationsCommand, ListBucketInventoryConfigurationsCommand, ListBucketMetricsConfigurationsCommand, ListObjectVersionsCommand, ListObjectsV2Command, NoSuchBucket, NotFound, 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";
|
|
@@ -25847,6 +25847,88 @@ var EventBridgeRuleProvider = class {
|
|
|
25847
25847
|
}
|
|
25848
25848
|
};
|
|
25849
25849
|
|
|
25850
|
+
//#endregion
|
|
25851
|
+
//#region src/provisioning/attribute-map.ts
|
|
25852
|
+
/**
|
|
25853
|
+
* The ONE spelling of the attribute-map rule an SDK provider's `create()` /
|
|
25854
|
+
* `update()` / `import()` result follows (issue #3077, closing the `?? ''`
|
|
25855
|
+
* shape `docs/provider-development.md` forbids under "Never store an
|
|
25856
|
+
* empty-string placeholder"):
|
|
25857
|
+
*
|
|
25858
|
+
* an attribute cdkd could not read back is ABSENT from the map — never
|
|
25859
|
+
* recorded as the empty string, and never as a present-but-`undefined` key.
|
|
25860
|
+
*
|
|
25861
|
+
* The consumers of `ResourceState.attributes` all key off exactly that
|
|
25862
|
+
* distinction, and a sentinel puts every one of them on the wrong branch:
|
|
25863
|
+
*
|
|
25864
|
+
* - the deploy engine persists the map as-is, so `''` becomes the recorded
|
|
25865
|
+
* value of a field AWS never assigned;
|
|
25866
|
+
* - the intrinsic resolver serves a stored attribute whenever it is not
|
|
25867
|
+
* `undefined`, so `''` shadows `constructAttribute` forever — the
|
|
25868
|
+
* `AWS::EC2::Instance` IP / DNS / AZ arm re-describes the instance from
|
|
25869
|
+
* AWS only on a MISS, the `Arn` arms of the RDS family rebuild the ARN
|
|
25870
|
+
* only on a MISS;
|
|
25871
|
+
* - the Outputs export pass publishes whatever the resolver returned, so a
|
|
25872
|
+
* stored `''` is exported to every `Fn::ImportValue` consumer.
|
|
25873
|
+
*
|
|
25874
|
+
* It exists as a MODULE rather than a per-provider idiom because the rule was
|
|
25875
|
+
* prose and 96 attribute-position `?? ''` / `|| ''` / bare `''` sites across
|
|
25876
|
+
* 18 providers shipped anyway (measured 2026-09-14 with the TypeScript-compiler
|
|
25877
|
+
* walk that is now `tests/unit/provisioning/attribute-map.test.ts`). A helper
|
|
25878
|
+
* that DROPS the key is the one form a provider cannot spell wrong by habit.
|
|
25879
|
+
*
|
|
25880
|
+
* Two values are treated as "not read back":
|
|
25881
|
+
*
|
|
25882
|
+
* - `undefined`: the SDK's spelling of an unassigned optional member.
|
|
25883
|
+
* - `null`: no AWS SDK v3 read-back reports a scalar attribute as `null`, and
|
|
25884
|
+
* a stored `null` takes the resolver's "not `undefined`" hit branch exactly
|
|
25885
|
+
* like `''` does.
|
|
25886
|
+
*
|
|
25887
|
+
* Every other value is kept verbatim — INCLUDING an empty string AWS itself
|
|
25888
|
+
* reported (`false`, `0`, an empty array and an object likewise). The helper
|
|
25889
|
+
* stops cdkd MANUFACTURING `''` for a field it never read; a `''` that came
|
|
25890
|
+
* off the wire is a known value with a meaning the provider owns. The EC2
|
|
25891
|
+
* Instance provider is where that distinction is load-bearing: a `running`
|
|
25892
|
+
* instance with no public address is described with `PublicDnsName: ''` and
|
|
25893
|
+
* no `PublicIpAddress`, and CloudFormation answers `''` for both — a KNOWN
|
|
25894
|
+
* empty, recorded as such so a reference does not degrade to the instance id
|
|
25895
|
+
* on every resolution — while the same `''` on a `pending` instance means
|
|
25896
|
+
* "not yet", which that provider maps to `undefined` BEFORE calling this
|
|
25897
|
+
* helper (its `describedInstanceAttributes`). A caller that knows a `''`
|
|
25898
|
+
* means "unknown" is the one that must say so; this helper cannot tell.
|
|
25899
|
+
*
|
|
25900
|
+
* Deliberately NOT a general "compact this record" utility: it is scoped to
|
|
25901
|
+
* attribute maps. A property bag keeps its `undefined`-valued keys out by other
|
|
25902
|
+
* means (`.claude/rules/provider-property-fidelity.md`, "Remove the key rather
|
|
25903
|
+
* than setting it to `undefined`").
|
|
25904
|
+
*
|
|
25905
|
+
* A LEAF module (imports nothing) so every provider can take it without adding
|
|
25906
|
+
* an edge to the provider import ring.
|
|
25907
|
+
*/
|
|
25908
|
+
/**
|
|
25909
|
+
* Build an attribute map from read-back values, omitting every key whose value
|
|
25910
|
+
* is `undefined` or `null`.
|
|
25911
|
+
*/
|
|
25912
|
+
function definedAttributes(entries) {
|
|
25913
|
+
const out = {};
|
|
25914
|
+
for (const [key, value] of Object.entries(entries)) {
|
|
25915
|
+
if (value === void 0 || value === null) continue;
|
|
25916
|
+
out[key] = value;
|
|
25917
|
+
}
|
|
25918
|
+
return out;
|
|
25919
|
+
}
|
|
25920
|
+
/**
|
|
25921
|
+
* `String(value)` for a numeric read-back whose CloudFormation attribute is a
|
|
25922
|
+
* string (`Endpoint.Port`), or `undefined` when the field is unassigned — so
|
|
25923
|
+
* `definedAttributes` drops the key instead of recording the literal
|
|
25924
|
+
* `'undefined'`, which is what `String(described?.Port ?? '')` yields once its
|
|
25925
|
+
* `?? ''` is merely deleted.
|
|
25926
|
+
*/
|
|
25927
|
+
function stringifyIfAssigned(value) {
|
|
25928
|
+
if (value === void 0 || value === null) return void 0;
|
|
25929
|
+
return String(value);
|
|
25930
|
+
}
|
|
25931
|
+
|
|
25850
25932
|
//#endregion
|
|
25851
25933
|
//#region src/provisioning/providers/eventbridge-bus-provider.ts
|
|
25852
25934
|
/**
|
|
@@ -25909,14 +25991,14 @@ var EventBridgeBusProvider = class {
|
|
|
25909
25991
|
const dlcCreate = sanitizeDeadLetterConfig(properties["DeadLetterConfig"]);
|
|
25910
25992
|
if (dlcCreate) createParams.DeadLetterConfig = dlcCreate;
|
|
25911
25993
|
if (properties["LogConfig"] !== void 0) createParams.LogConfig = properties["LogConfig"];
|
|
25912
|
-
const
|
|
25994
|
+
const response = await this.eventBridgeClient.send(new CreateEventBusCommand(createParams));
|
|
25913
25995
|
if (properties["Policy"]) {}
|
|
25914
25996
|
return {
|
|
25915
25997
|
physicalId: name,
|
|
25916
|
-
attributes: {
|
|
25917
|
-
Arn:
|
|
25998
|
+
attributes: definedAttributes({
|
|
25999
|
+
Arn: response.EventBusArn,
|
|
25918
26000
|
Name: name
|
|
25919
|
-
}
|
|
26001
|
+
})
|
|
25920
26002
|
};
|
|
25921
26003
|
} catch (error) {
|
|
25922
26004
|
const cause = error instanceof Error ? error : void 0;
|
|
@@ -26549,6 +26631,59 @@ function canonicalizeSgInlineRuleProtocols(properties) {
|
|
|
26549
26631
|
* - AWS::EC2::SecurityGroupIngress
|
|
26550
26632
|
* - AWS::EC2::Instance
|
|
26551
26633
|
*/
|
|
26634
|
+
/**
|
|
26635
|
+
* The `AWS::EC2::Instance` attribute map for a `DescribeInstances` read-back,
|
|
26636
|
+
* shared by `createInstance` and `updateInstance` so the two cannot answer
|
|
26637
|
+
* the same instance differently (issue #3077).
|
|
26638
|
+
*
|
|
26639
|
+
* The map distinguishes UNKNOWN from KNOWN-EMPTY, and the instance STATE is
|
|
26640
|
+
* what tells them apart:
|
|
26641
|
+
*
|
|
26642
|
+
* - `pending` (a `--no-wait` create, or an update racing one): the private
|
|
26643
|
+
* address, private DNS name and AZ are assigned at launch and are recorded
|
|
26644
|
+
* when present; the PUBLIC pair may simply not exist yet — the API
|
|
26645
|
+
* reports `PublicDnsName: ''` and no `PublicIpAddress` in that window — so
|
|
26646
|
+
* an empty or absent public member is UNKNOWN and its key is OMITTED. A
|
|
26647
|
+
* persisted `''` would shadow the resolver's live re-read for the life of
|
|
26648
|
+
* the record (the defect the issue reports); an absent key sends the next
|
|
26649
|
+
* `Fn::GetAtt` back to AWS.
|
|
26650
|
+
* - any settled state (`running`, `stopped`, ...): what AWS reports IS the
|
|
26651
|
+
* answer. A running instance in a private subnet is described exactly like
|
|
26652
|
+
* the pending window above — `PublicDnsName: ''`, no `PublicIpAddress` —
|
|
26653
|
+
* and CloudFormation answers `''` for both attributes, so the pair is
|
|
26654
|
+
* recorded as the known empty string rather than omitted: omitted, every
|
|
26655
|
+
* resolution would take the live arm, find nothing, and degrade to the
|
|
26656
|
+
* instance id with a warning, permanently, on an ordinary private-subnet
|
|
26657
|
+
* stack (review of the first cut).
|
|
26658
|
+
* - no `State` at all (a read-back that returned no instance, or a shape
|
|
26659
|
+
* without one): treated like `pending` — whatever members are present are
|
|
26660
|
+
* recorded, and an empty or absent public member is omitted, since nothing
|
|
26661
|
+
* says the instance has settled.
|
|
26662
|
+
*
|
|
26663
|
+
* `definedAttributes` then drops the `undefined` members; it keeps `''`, so the
|
|
26664
|
+
* pending-window normalization has to happen HERE, where the state is known.
|
|
26665
|
+
*
|
|
26666
|
+
* The residual that follows from the pending rule: a `--no-wait` create of an
|
|
26667
|
+
* instance in a PRIVATE subnet omits the public pair, and nothing later writes
|
|
26668
|
+
* it -- a no-change deploy's auto-refresh touches `observedProperties`, never
|
|
26669
|
+
* `attributes` -- so `Fn::GetAtt [.., PublicIp]` takes the resolver's live arm,
|
|
26670
|
+
* finds no address, and degrades to the instance id with a warning until the
|
|
26671
|
+
* next `update()` of that instance records the known-empty pair. Tracked on
|
|
26672
|
+
* go-to-k/cdkd#3096.
|
|
26673
|
+
*/
|
|
26674
|
+
function describedInstanceAttributes(instanceId, instance) {
|
|
26675
|
+
const stateName = instance?.State?.Name;
|
|
26676
|
+
const settled = stateName !== void 0 && stateName !== "pending";
|
|
26677
|
+
const publicMember = (value) => settled ? value ?? "" : value || void 0;
|
|
26678
|
+
return definedAttributes({
|
|
26679
|
+
InstanceId: instanceId,
|
|
26680
|
+
PrivateIp: instance?.PrivateIpAddress,
|
|
26681
|
+
PublicIp: publicMember(instance?.PublicIpAddress),
|
|
26682
|
+
PrivateDnsName: instance?.PrivateDnsName,
|
|
26683
|
+
PublicDnsName: publicMember(instance?.PublicDnsName),
|
|
26684
|
+
AvailabilityZone: instance?.Placement?.AvailabilityZone
|
|
26685
|
+
});
|
|
26686
|
+
}
|
|
26552
26687
|
var EC2Provider = class {
|
|
26553
26688
|
ec2Client;
|
|
26554
26689
|
logger = getLogger().child("EC2Provider");
|
|
@@ -26762,7 +26897,7 @@ var EC2Provider = class {
|
|
|
26762
26897
|
CidrBlock: cidrBlock,
|
|
26763
26898
|
InstanceTenancy: properties["InstanceTenancy"] ?? void 0
|
|
26764
26899
|
}))).Vpc.VpcId;
|
|
26765
|
-
let defaultSgId
|
|
26900
|
+
let defaultSgId;
|
|
26766
26901
|
try {
|
|
26767
26902
|
if (properties["EnableDnsHostnames"] === true || properties["EnableDnsHostnames"] === "true") await this.ec2Client.send(new ModifyVpcAttributeCommand({
|
|
26768
26903
|
VpcId: vpcId,
|
|
@@ -26781,7 +26916,7 @@ var EC2Provider = class {
|
|
|
26781
26916
|
}, {
|
|
26782
26917
|
Name: "group-name",
|
|
26783
26918
|
Values: ["default"]
|
|
26784
|
-
}] }))).SecurityGroups?.[0]?.GroupId
|
|
26919
|
+
}] }))).SecurityGroups?.[0]?.GroupId;
|
|
26785
26920
|
} catch {
|
|
26786
26921
|
this.logger.debug(`Failed to get default SG for VPC ${vpcId}`);
|
|
26787
26922
|
}
|
|
@@ -26797,12 +26932,11 @@ var EC2Provider = class {
|
|
|
26797
26932
|
this.logger.debug(`Successfully created VPC ${logicalId}: ${vpcId}`);
|
|
26798
26933
|
return {
|
|
26799
26934
|
physicalId: vpcId,
|
|
26800
|
-
attributes: {
|
|
26935
|
+
attributes: definedAttributes({
|
|
26801
26936
|
VpcId: vpcId,
|
|
26802
26937
|
CidrBlock: cidrBlock,
|
|
26803
|
-
DefaultNetworkAcl: "",
|
|
26804
26938
|
DefaultSecurityGroup: defaultSgId
|
|
26805
|
-
}
|
|
26939
|
+
})
|
|
26806
26940
|
};
|
|
26807
26941
|
} catch (error) {
|
|
26808
26942
|
const cause = error instanceof Error ? error : void 0;
|
|
@@ -28008,14 +28142,7 @@ var EC2Provider = class {
|
|
|
28008
28142
|
} else await this.ensureIamInstanceProfileAssociated(instanceId, iamInstanceProfile.arn, iamInstanceProfile.name, logicalId);
|
|
28009
28143
|
}
|
|
28010
28144
|
const runningInstance = (await this.ec2Client.send(new DescribeInstancesCommand({ InstanceIds: [instanceId] }))).Reservations?.[0]?.Instances?.[0];
|
|
28011
|
-
const attributes =
|
|
28012
|
-
InstanceId: instanceId,
|
|
28013
|
-
PrivateIp: runningInstance?.PrivateIpAddress ?? "",
|
|
28014
|
-
PublicIp: runningInstance?.PublicIpAddress ?? "",
|
|
28015
|
-
PrivateDnsName: runningInstance?.PrivateDnsName ?? "",
|
|
28016
|
-
PublicDnsName: runningInstance?.PublicDnsName ?? "",
|
|
28017
|
-
AvailabilityZone: runningInstance?.Placement?.AvailabilityZone ?? ""
|
|
28018
|
-
};
|
|
28145
|
+
const attributes = describedInstanceAttributes(instanceId, runningInstance);
|
|
28019
28146
|
this.logger.debug(`Successfully created EC2 Instance ${logicalId}: ${instanceId}`);
|
|
28020
28147
|
runInstancesToken.release();
|
|
28021
28148
|
return {
|
|
@@ -28180,14 +28307,7 @@ var EC2Provider = class {
|
|
|
28180
28307
|
return {
|
|
28181
28308
|
physicalId,
|
|
28182
28309
|
wasReplaced: false,
|
|
28183
|
-
attributes:
|
|
28184
|
-
InstanceId: physicalId,
|
|
28185
|
-
PrivateIp: instance?.PrivateIpAddress ?? "",
|
|
28186
|
-
PublicIp: instance?.PublicIpAddress ?? "",
|
|
28187
|
-
PrivateDnsName: instance?.PrivateDnsName ?? "",
|
|
28188
|
-
PublicDnsName: instance?.PublicDnsName ?? "",
|
|
28189
|
-
AvailabilityZone: instance?.Placement?.AvailabilityZone ?? ""
|
|
28190
|
-
}
|
|
28310
|
+
attributes: describedInstanceAttributes(physicalId, instance)
|
|
28191
28311
|
};
|
|
28192
28312
|
} catch (error) {
|
|
28193
28313
|
const cause = error instanceof Error ? error : void 0;
|
|
@@ -33631,7 +33751,7 @@ var CloudFrontDistributionProvider = class {
|
|
|
33631
33751
|
DistributionConfig: sdkConfig
|
|
33632
33752
|
}));
|
|
33633
33753
|
const getResponse = await this.cloudFrontClient.send(new GetDistributionCommand({ Id: physicalId }));
|
|
33634
|
-
const domainName = getResponse.Distribution?.DomainName
|
|
33754
|
+
const domainName = getResponse.Distribution?.DomainName;
|
|
33635
33755
|
const arn = getResponse.Distribution?.ARN;
|
|
33636
33756
|
await this.applyTagDiff(arn, previousProperties["Tags"], properties["Tags"], physicalId, logicalId, resourceType);
|
|
33637
33757
|
await this.settleDistribution(logicalId, physicalId);
|
|
@@ -33639,11 +33759,11 @@ var CloudFrontDistributionProvider = class {
|
|
|
33639
33759
|
return {
|
|
33640
33760
|
physicalId,
|
|
33641
33761
|
wasReplaced: false,
|
|
33642
|
-
attributes: {
|
|
33762
|
+
attributes: definedAttributes({
|
|
33643
33763
|
Id: physicalId,
|
|
33644
33764
|
DistributionId: physicalId,
|
|
33645
33765
|
DomainName: domainName
|
|
33646
|
-
}
|
|
33766
|
+
})
|
|
33647
33767
|
};
|
|
33648
33768
|
} catch (error) {
|
|
33649
33769
|
if (error instanceof CdkdError) throw error;
|
|
@@ -34631,11 +34751,11 @@ var AgentCoreRuntimeProvider = class {
|
|
|
34631
34751
|
* (issue #1179).
|
|
34632
34752
|
*/
|
|
34633
34753
|
buildAttributes(response, agentRuntimeName) {
|
|
34634
|
-
const attributes = {
|
|
34754
|
+
const attributes = definedAttributes({
|
|
34635
34755
|
AgentRuntimeArn: response.agentRuntimeArn,
|
|
34636
34756
|
AgentRuntimeId: response.agentRuntimeId,
|
|
34637
34757
|
AgentRuntimeName: agentRuntimeName
|
|
34638
|
-
};
|
|
34758
|
+
});
|
|
34639
34759
|
if (response.agentRuntimeVersion !== void 0) attributes["AgentRuntimeVersion"] = response.agentRuntimeVersion;
|
|
34640
34760
|
if (response.status !== void 0) attributes["Status"] = response.status;
|
|
34641
34761
|
if (response.createdAt !== void 0) attributes["CreatedAt"] = response.createdAt.toISOString();
|
|
@@ -34749,7 +34869,7 @@ var AgentCoreRuntimeProvider = class {
|
|
|
34749
34869
|
const resp = await this.client.send(new GetAgentRuntimeCommand({ agentRuntimeId: physicalId }));
|
|
34750
34870
|
return {
|
|
34751
34871
|
physicalId,
|
|
34752
|
-
attributes: this.buildAttributes(resp, resp.agentRuntimeName
|
|
34872
|
+
attributes: this.buildAttributes(resp, resp.agentRuntimeName)
|
|
34753
34873
|
};
|
|
34754
34874
|
} catch (err) {
|
|
34755
34875
|
this.logger.debug(`Could not enrich imported BedrockAgentCore Runtime ${physicalId} attributes (${err instanceof Error ? err.message : String(err)}); recording AgentRuntimeId only (Fn::GetAtt resolves live via getAttribute)`);
|
|
@@ -34814,12 +34934,12 @@ var AgentCoreBrowserProvider = class {
|
|
|
34814
34934
|
this.logger.debug(`Adopted default browser ${DEFAULT_BROWSER_ID} (${browserArn})`);
|
|
34815
34935
|
return {
|
|
34816
34936
|
physicalId: browserArn,
|
|
34817
|
-
attributes: {
|
|
34937
|
+
attributes: definedAttributes({
|
|
34818
34938
|
BrowserArn: browserArn,
|
|
34819
34939
|
BrowserId: response.browserId ?? "aws.browser.v1",
|
|
34820
|
-
Name: response.name
|
|
34821
|
-
Status: response.status
|
|
34822
|
-
}
|
|
34940
|
+
Name: response.name,
|
|
34941
|
+
Status: response.status
|
|
34942
|
+
})
|
|
34823
34943
|
};
|
|
34824
34944
|
} catch (error) {
|
|
34825
34945
|
const cause = error instanceof Error ? error : void 0;
|
|
@@ -34872,12 +34992,12 @@ var AgentCoreBrowserProvider = class {
|
|
|
34872
34992
|
const response = await this.client.send(new GetBrowserCommand({ browserId: DEFAULT_BROWSER_ID }));
|
|
34873
34993
|
return {
|
|
34874
34994
|
physicalId: response.browserArn,
|
|
34875
|
-
attributes: {
|
|
34995
|
+
attributes: definedAttributes({
|
|
34876
34996
|
BrowserArn: response.browserArn,
|
|
34877
34997
|
BrowserId: response.browserId ?? "aws.browser.v1",
|
|
34878
|
-
Name: response.name
|
|
34879
|
-
Status: response.status
|
|
34880
|
-
}
|
|
34998
|
+
Name: response.name,
|
|
34999
|
+
Status: response.status
|
|
35000
|
+
})
|
|
34881
35001
|
};
|
|
34882
35002
|
}
|
|
34883
35003
|
};
|
|
@@ -34929,11 +35049,11 @@ var AgentCoreCodeInterpreterProvider = class {
|
|
|
34929
35049
|
this.logger.debug(`Adopted default code interpreter ${DEFAULT_CODE_INTERPRETER_ID} (${codeInterpreterArn})`);
|
|
34930
35050
|
return {
|
|
34931
35051
|
physicalId: codeInterpreterArn,
|
|
34932
|
-
attributes: {
|
|
35052
|
+
attributes: definedAttributes({
|
|
34933
35053
|
CodeInterpreterArn: codeInterpreterArn,
|
|
34934
35054
|
CodeInterpreterId: response.codeInterpreterId ?? "aws.codeinterpreter.v1",
|
|
34935
|
-
Status: response.status
|
|
34936
|
-
}
|
|
35055
|
+
Status: response.status
|
|
35056
|
+
})
|
|
34937
35057
|
};
|
|
34938
35058
|
} catch (error) {
|
|
34939
35059
|
const cause = error instanceof Error ? error : void 0;
|
|
@@ -34984,11 +35104,11 @@ var AgentCoreCodeInterpreterProvider = class {
|
|
|
34984
35104
|
const response = await this.client.send(new GetCodeInterpreterCommand({ codeInterpreterId: DEFAULT_CODE_INTERPRETER_ID }));
|
|
34985
35105
|
return {
|
|
34986
35106
|
physicalId: response.codeInterpreterArn,
|
|
34987
|
-
attributes: {
|
|
35107
|
+
attributes: definedAttributes({
|
|
34988
35108
|
CodeInterpreterArn: response.codeInterpreterArn,
|
|
34989
35109
|
CodeInterpreterId: response.codeInterpreterId ?? "aws.codeinterpreter.v1",
|
|
34990
|
-
Status: response.status
|
|
34991
|
-
}
|
|
35110
|
+
Status: response.status
|
|
35111
|
+
})
|
|
34992
35112
|
};
|
|
34993
35113
|
}
|
|
34994
35114
|
};
|
|
@@ -35100,12 +35220,12 @@ var AgentCoreEvaluatorProvider = class {
|
|
|
35100
35220
|
this.logger.debug(`Created BedrockAgentCore Evaluator: ${evaluatorId} (${evaluatorArn})`);
|
|
35101
35221
|
return {
|
|
35102
35222
|
physicalId: evaluatorArn,
|
|
35103
|
-
attributes: {
|
|
35223
|
+
attributes: definedAttributes({
|
|
35104
35224
|
EvaluatorArn: evaluatorArn,
|
|
35105
35225
|
EvaluatorId: evaluatorId,
|
|
35106
|
-
Status: response.status
|
|
35107
|
-
CreatedAt: response.createdAt?.toISOString()
|
|
35108
|
-
}
|
|
35226
|
+
Status: response.status,
|
|
35227
|
+
CreatedAt: response.createdAt?.toISOString()
|
|
35228
|
+
})
|
|
35109
35229
|
};
|
|
35110
35230
|
} catch (error) {
|
|
35111
35231
|
const cause = error instanceof Error ? error : void 0;
|
|
@@ -35135,12 +35255,12 @@ var AgentCoreEvaluatorProvider = class {
|
|
|
35135
35255
|
return {
|
|
35136
35256
|
physicalId: evaluatorArn,
|
|
35137
35257
|
wasReplaced: false,
|
|
35138
|
-
attributes: {
|
|
35258
|
+
attributes: definedAttributes({
|
|
35139
35259
|
EvaluatorArn: evaluatorArn,
|
|
35140
35260
|
EvaluatorId: response.evaluatorId ?? evaluatorIdFromArn(evaluatorArn),
|
|
35141
|
-
Status: response.status
|
|
35142
|
-
UpdatedAt: response.updatedAt?.toISOString()
|
|
35143
|
-
}
|
|
35261
|
+
Status: response.status,
|
|
35262
|
+
UpdatedAt: response.updatedAt?.toISOString()
|
|
35263
|
+
})
|
|
35144
35264
|
};
|
|
35145
35265
|
} catch (error) {
|
|
35146
35266
|
const cause = error instanceof Error ? error : void 0;
|
|
@@ -39151,13 +39271,13 @@ var RDSProvider = class {
|
|
|
39151
39271
|
const described = await this.describeDBCluster(dbClusterIdentifier);
|
|
39152
39272
|
return {
|
|
39153
39273
|
physicalId: dbClusterIdentifier,
|
|
39154
|
-
attributes: {
|
|
39155
|
-
"Endpoint.Address": described?.Endpoint
|
|
39156
|
-
"Endpoint.Port":
|
|
39157
|
-
"ReadEndpoint.Address": described?.ReaderEndpoint
|
|
39158
|
-
Arn: described?.DBClusterArn
|
|
39159
|
-
DBClusterResourceId: described?.DbClusterResourceId
|
|
39160
|
-
}
|
|
39274
|
+
attributes: definedAttributes({
|
|
39275
|
+
"Endpoint.Address": described?.Endpoint,
|
|
39276
|
+
"Endpoint.Port": stringifyIfAssigned(described?.Port),
|
|
39277
|
+
"ReadEndpoint.Address": described?.ReaderEndpoint,
|
|
39278
|
+
Arn: described?.DBClusterArn,
|
|
39279
|
+
DBClusterResourceId: described?.DbClusterResourceId
|
|
39280
|
+
})
|
|
39161
39281
|
};
|
|
39162
39282
|
} catch (innerError) {
|
|
39163
39283
|
try {
|
|
@@ -39219,13 +39339,13 @@ var RDSProvider = class {
|
|
|
39219
39339
|
return {
|
|
39220
39340
|
physicalId,
|
|
39221
39341
|
wasReplaced: false,
|
|
39222
|
-
attributes: {
|
|
39223
|
-
"Endpoint.Address": described?.Endpoint
|
|
39224
|
-
"Endpoint.Port":
|
|
39225
|
-
"ReadEndpoint.Address": described?.ReaderEndpoint
|
|
39226
|
-
Arn: described?.DBClusterArn
|
|
39227
|
-
DBClusterResourceId: described?.DbClusterResourceId
|
|
39228
|
-
}
|
|
39342
|
+
attributes: definedAttributes({
|
|
39343
|
+
"Endpoint.Address": described?.Endpoint,
|
|
39344
|
+
"Endpoint.Port": stringifyIfAssigned(described?.Port),
|
|
39345
|
+
"ReadEndpoint.Address": described?.ReaderEndpoint,
|
|
39346
|
+
Arn: described?.DBClusterArn,
|
|
39347
|
+
DBClusterResourceId: described?.DbClusterResourceId
|
|
39348
|
+
})
|
|
39229
39349
|
};
|
|
39230
39350
|
} catch (error) {
|
|
39231
39351
|
const cause = error instanceof Error ? error : void 0;
|
|
@@ -39304,11 +39424,11 @@ var RDSProvider = class {
|
|
|
39304
39424
|
const described = await this.describeDBInstance(dbInstanceIdentifier);
|
|
39305
39425
|
return {
|
|
39306
39426
|
physicalId: dbInstanceIdentifier,
|
|
39307
|
-
attributes: {
|
|
39308
|
-
"Endpoint.Address": described?.Endpoint?.Address
|
|
39309
|
-
"Endpoint.Port":
|
|
39310
|
-
Arn: described?.DBInstanceArn
|
|
39311
|
-
}
|
|
39427
|
+
attributes: definedAttributes({
|
|
39428
|
+
"Endpoint.Address": described?.Endpoint?.Address,
|
|
39429
|
+
"Endpoint.Port": stringifyIfAssigned(described?.Endpoint?.Port),
|
|
39430
|
+
Arn: described?.DBInstanceArn
|
|
39431
|
+
})
|
|
39312
39432
|
};
|
|
39313
39433
|
} catch (error) {
|
|
39314
39434
|
if (error instanceof ProvisioningError) throw error;
|
|
@@ -39349,11 +39469,11 @@ var RDSProvider = class {
|
|
|
39349
39469
|
return {
|
|
39350
39470
|
physicalId,
|
|
39351
39471
|
wasReplaced: false,
|
|
39352
|
-
attributes: {
|
|
39353
|
-
"Endpoint.Address": described?.Endpoint?.Address
|
|
39354
|
-
"Endpoint.Port":
|
|
39355
|
-
Arn: described?.DBInstanceArn
|
|
39356
|
-
}
|
|
39472
|
+
attributes: definedAttributes({
|
|
39473
|
+
"Endpoint.Address": described?.Endpoint?.Address,
|
|
39474
|
+
"Endpoint.Port": stringifyIfAssigned(described?.Endpoint?.Port),
|
|
39475
|
+
Arn: described?.DBInstanceArn
|
|
39476
|
+
})
|
|
39357
39477
|
};
|
|
39358
39478
|
} catch (error) {
|
|
39359
39479
|
const cause = error instanceof Error ? error : void 0;
|
|
@@ -39824,11 +39944,11 @@ var RDSDBProxyProvider = class {
|
|
|
39824
39944
|
if (!endpoint || !dbProxyArn) throw new ProvisioningError(`Timed out waiting for DBProxy ${dbProxyName} to become available (last status: ${status ?? "unknown"})`, resourceType, logicalId, dbProxyName);
|
|
39825
39945
|
return {
|
|
39826
39946
|
physicalId: dbProxyName,
|
|
39827
|
-
attributes: {
|
|
39947
|
+
attributes: definedAttributes({
|
|
39828
39948
|
DBProxyArn: dbProxyArn,
|
|
39829
39949
|
Endpoint: endpoint,
|
|
39830
|
-
VpcId: vpcId
|
|
39831
|
-
}
|
|
39950
|
+
VpcId: vpcId
|
|
39951
|
+
})
|
|
39832
39952
|
};
|
|
39833
39953
|
}
|
|
39834
39954
|
async update(logicalId, physicalId, resourceType, properties, previousProperties) {
|
|
@@ -40156,12 +40276,12 @@ var RDSDBProxyEndpointProvider = class {
|
|
|
40156
40276
|
if (!endpoint || !arn) throw new ProvisioningError(`Timed out waiting for DBProxyEndpoint ${dbProxyEndpointName} to become available (last status: ${status ?? "unknown"})`, resourceType, logicalId, dbProxyEndpointName);
|
|
40157
40277
|
return {
|
|
40158
40278
|
physicalId: dbProxyEndpointName,
|
|
40159
|
-
attributes: {
|
|
40279
|
+
attributes: definedAttributes({
|
|
40160
40280
|
Endpoint: endpoint,
|
|
40161
40281
|
DBProxyEndpointArn: arn,
|
|
40162
40282
|
IsDefault: isDefault ?? false,
|
|
40163
|
-
VpcId: vpcId
|
|
40164
|
-
}
|
|
40283
|
+
VpcId: vpcId
|
|
40284
|
+
})
|
|
40165
40285
|
};
|
|
40166
40286
|
}
|
|
40167
40287
|
async update(logicalId, physicalId, resourceType, properties, previousProperties) {
|
|
@@ -40853,13 +40973,13 @@ var DocDBProvider = class {
|
|
|
40853
40973
|
const described = await this.describeDBCluster(dbClusterIdentifier);
|
|
40854
40974
|
return {
|
|
40855
40975
|
physicalId: dbClusterIdentifier,
|
|
40856
|
-
attributes: {
|
|
40857
|
-
"Endpoint.Address": described?.Endpoint
|
|
40858
|
-
"Endpoint.Port":
|
|
40859
|
-
"ReadEndpoint.Address": described?.ReaderEndpoint
|
|
40860
|
-
Arn: described?.DBClusterArn
|
|
40861
|
-
ClusterResourceId: described?.DbClusterResourceId
|
|
40862
|
-
}
|
|
40976
|
+
attributes: definedAttributes({
|
|
40977
|
+
"Endpoint.Address": described?.Endpoint,
|
|
40978
|
+
"Endpoint.Port": stringifyIfAssigned(described?.Port),
|
|
40979
|
+
"ReadEndpoint.Address": described?.ReaderEndpoint,
|
|
40980
|
+
Arn: described?.DBClusterArn,
|
|
40981
|
+
ClusterResourceId: described?.DbClusterResourceId
|
|
40982
|
+
})
|
|
40863
40983
|
};
|
|
40864
40984
|
} catch (error) {
|
|
40865
40985
|
if (error instanceof ProvisioningError) throw error;
|
|
@@ -40891,13 +41011,13 @@ var DocDBProvider = class {
|
|
|
40891
41011
|
return {
|
|
40892
41012
|
physicalId,
|
|
40893
41013
|
wasReplaced: false,
|
|
40894
|
-
attributes: {
|
|
40895
|
-
"Endpoint.Address": described?.Endpoint
|
|
40896
|
-
"Endpoint.Port":
|
|
40897
|
-
"ReadEndpoint.Address": described?.ReaderEndpoint
|
|
40898
|
-
Arn: described?.DBClusterArn
|
|
40899
|
-
ClusterResourceId: described?.DbClusterResourceId
|
|
40900
|
-
}
|
|
41014
|
+
attributes: definedAttributes({
|
|
41015
|
+
"Endpoint.Address": described?.Endpoint,
|
|
41016
|
+
"Endpoint.Port": stringifyIfAssigned(described?.Port),
|
|
41017
|
+
"ReadEndpoint.Address": described?.ReaderEndpoint,
|
|
41018
|
+
Arn: described?.DBClusterArn,
|
|
41019
|
+
ClusterResourceId: described?.DbClusterResourceId
|
|
41020
|
+
})
|
|
40901
41021
|
};
|
|
40902
41022
|
} catch (error) {
|
|
40903
41023
|
const cause = error instanceof Error ? error : void 0;
|
|
@@ -40962,11 +41082,11 @@ var DocDBProvider = class {
|
|
|
40962
41082
|
const described = await this.describeDBInstance(dbInstanceIdentifier);
|
|
40963
41083
|
return {
|
|
40964
41084
|
physicalId: dbInstanceIdentifier,
|
|
40965
|
-
attributes: {
|
|
40966
|
-
"Endpoint.Address": described?.Endpoint?.Address
|
|
40967
|
-
"Endpoint.Port":
|
|
40968
|
-
Arn: described?.DBInstanceArn
|
|
40969
|
-
}
|
|
41085
|
+
attributes: definedAttributes({
|
|
41086
|
+
"Endpoint.Address": described?.Endpoint?.Address,
|
|
41087
|
+
"Endpoint.Port": stringifyIfAssigned(described?.Endpoint?.Port),
|
|
41088
|
+
Arn: described?.DBInstanceArn
|
|
41089
|
+
})
|
|
40970
41090
|
};
|
|
40971
41091
|
} catch (error) {
|
|
40972
41092
|
if (error instanceof ProvisioningError) throw error;
|
|
@@ -40990,11 +41110,11 @@ var DocDBProvider = class {
|
|
|
40990
41110
|
return {
|
|
40991
41111
|
physicalId,
|
|
40992
41112
|
wasReplaced: false,
|
|
40993
|
-
attributes: {
|
|
40994
|
-
"Endpoint.Address": described?.Endpoint?.Address
|
|
40995
|
-
"Endpoint.Port":
|
|
40996
|
-
Arn: described?.DBInstanceArn
|
|
40997
|
-
}
|
|
41113
|
+
attributes: definedAttributes({
|
|
41114
|
+
"Endpoint.Address": described?.Endpoint?.Address,
|
|
41115
|
+
"Endpoint.Port": stringifyIfAssigned(described?.Endpoint?.Port),
|
|
41116
|
+
Arn: described?.DBInstanceArn
|
|
41117
|
+
})
|
|
40998
41118
|
};
|
|
40999
41119
|
} catch (error) {
|
|
41000
41120
|
const cause = error instanceof Error ? error : void 0;
|
|
@@ -41492,12 +41612,12 @@ var NeptuneProvider = class {
|
|
|
41492
41612
|
const described = await this.describeDBCluster(dbClusterIdentifier);
|
|
41493
41613
|
return {
|
|
41494
41614
|
physicalId: dbClusterIdentifier,
|
|
41495
|
-
attributes: {
|
|
41496
|
-
"Endpoint.Address": described?.Endpoint
|
|
41497
|
-
"Endpoint.Port":
|
|
41498
|
-
"ReadEndpoint.Address": described?.ReaderEndpoint
|
|
41499
|
-
ClusterResourceId: described?.DbClusterResourceId
|
|
41500
|
-
}
|
|
41615
|
+
attributes: definedAttributes({
|
|
41616
|
+
"Endpoint.Address": described?.Endpoint,
|
|
41617
|
+
"Endpoint.Port": stringifyIfAssigned(described?.Port),
|
|
41618
|
+
"ReadEndpoint.Address": described?.ReaderEndpoint,
|
|
41619
|
+
ClusterResourceId: described?.DbClusterResourceId
|
|
41620
|
+
})
|
|
41501
41621
|
};
|
|
41502
41622
|
} catch (error) {
|
|
41503
41623
|
if (error instanceof ProvisioningError) throw error;
|
|
@@ -41529,12 +41649,12 @@ var NeptuneProvider = class {
|
|
|
41529
41649
|
return {
|
|
41530
41650
|
physicalId,
|
|
41531
41651
|
wasReplaced: false,
|
|
41532
|
-
attributes: {
|
|
41533
|
-
"Endpoint.Address": described?.Endpoint
|
|
41534
|
-
"Endpoint.Port":
|
|
41535
|
-
"ReadEndpoint.Address": described?.ReaderEndpoint
|
|
41536
|
-
ClusterResourceId: described?.DbClusterResourceId
|
|
41537
|
-
}
|
|
41652
|
+
attributes: definedAttributes({
|
|
41653
|
+
"Endpoint.Address": described?.Endpoint,
|
|
41654
|
+
"Endpoint.Port": stringifyIfAssigned(described?.Port),
|
|
41655
|
+
"ReadEndpoint.Address": described?.ReaderEndpoint,
|
|
41656
|
+
ClusterResourceId: described?.DbClusterResourceId
|
|
41657
|
+
})
|
|
41538
41658
|
};
|
|
41539
41659
|
} catch (error) {
|
|
41540
41660
|
const cause = error instanceof Error ? error : void 0;
|
|
@@ -41602,10 +41722,10 @@ var NeptuneProvider = class {
|
|
|
41602
41722
|
const described = await this.describeDBInstance(dbInstanceIdentifier);
|
|
41603
41723
|
return {
|
|
41604
41724
|
physicalId: dbInstanceIdentifier,
|
|
41605
|
-
attributes: {
|
|
41606
|
-
"Endpoint.Address": described?.Endpoint?.Address
|
|
41607
|
-
"Endpoint.Port":
|
|
41608
|
-
}
|
|
41725
|
+
attributes: definedAttributes({
|
|
41726
|
+
"Endpoint.Address": described?.Endpoint?.Address,
|
|
41727
|
+
"Endpoint.Port": stringifyIfAssigned(described?.Endpoint?.Port)
|
|
41728
|
+
})
|
|
41609
41729
|
};
|
|
41610
41730
|
} catch (error) {
|
|
41611
41731
|
if (error instanceof ProvisioningError) throw error;
|
|
@@ -41631,10 +41751,10 @@ var NeptuneProvider = class {
|
|
|
41631
41751
|
return {
|
|
41632
41752
|
physicalId,
|
|
41633
41753
|
wasReplaced: false,
|
|
41634
|
-
attributes: {
|
|
41635
|
-
"Endpoint.Address": described?.Endpoint?.Address
|
|
41636
|
-
"Endpoint.Port":
|
|
41637
|
-
}
|
|
41754
|
+
attributes: definedAttributes({
|
|
41755
|
+
"Endpoint.Address": described?.Endpoint?.Address,
|
|
41756
|
+
"Endpoint.Port": stringifyIfAssigned(described?.Endpoint?.Port)
|
|
41757
|
+
})
|
|
41638
41758
|
};
|
|
41639
41759
|
} catch (error) {
|
|
41640
41760
|
const cause = error instanceof Error ? error : void 0;
|
|
@@ -45052,12 +45172,13 @@ var ElastiCacheProvider = class {
|
|
|
45052
45172
|
const attributes = {};
|
|
45053
45173
|
if (described?.CacheNodes?.[0]?.Endpoint) {
|
|
45054
45174
|
const endpoint = described.CacheNodes[0].Endpoint;
|
|
45055
|
-
attributes["RedisEndpoint.Address"] = endpoint.Address
|
|
45056
|
-
attributes["RedisEndpoint.Port"] = String(endpoint.Port
|
|
45175
|
+
if (endpoint.Address !== void 0) attributes["RedisEndpoint.Address"] = endpoint.Address;
|
|
45176
|
+
if (endpoint.Port !== void 0) attributes["RedisEndpoint.Port"] = String(endpoint.Port);
|
|
45057
45177
|
}
|
|
45058
45178
|
if (described?.ConfigurationEndpoint) {
|
|
45059
|
-
|
|
45060
|
-
attributes["ConfigurationEndpoint.
|
|
45179
|
+
const configurationEndpoint = described.ConfigurationEndpoint;
|
|
45180
|
+
if (configurationEndpoint.Address !== void 0) attributes["ConfigurationEndpoint.Address"] = configurationEndpoint.Address;
|
|
45181
|
+
if (configurationEndpoint.Port !== void 0) attributes["ConfigurationEndpoint.Port"] = String(configurationEndpoint.Port);
|
|
45061
45182
|
}
|
|
45062
45183
|
return {
|
|
45063
45184
|
physicalId: cacheClusterId,
|
|
@@ -45100,12 +45221,13 @@ var ElastiCacheProvider = class {
|
|
|
45100
45221
|
const attributes = {};
|
|
45101
45222
|
if (described?.CacheNodes?.[0]?.Endpoint) {
|
|
45102
45223
|
const endpoint = described.CacheNodes[0].Endpoint;
|
|
45103
|
-
attributes["RedisEndpoint.Address"] = endpoint.Address
|
|
45104
|
-
attributes["RedisEndpoint.Port"] = String(endpoint.Port
|
|
45224
|
+
if (endpoint.Address !== void 0) attributes["RedisEndpoint.Address"] = endpoint.Address;
|
|
45225
|
+
if (endpoint.Port !== void 0) attributes["RedisEndpoint.Port"] = String(endpoint.Port);
|
|
45105
45226
|
}
|
|
45106
45227
|
if (described?.ConfigurationEndpoint) {
|
|
45107
|
-
|
|
45108
|
-
attributes["ConfigurationEndpoint.
|
|
45228
|
+
const configurationEndpoint = described.ConfigurationEndpoint;
|
|
45229
|
+
if (configurationEndpoint.Address !== void 0) attributes["ConfigurationEndpoint.Address"] = configurationEndpoint.Address;
|
|
45230
|
+
if (configurationEndpoint.Port !== void 0) attributes["ConfigurationEndpoint.Port"] = String(configurationEndpoint.Port);
|
|
45109
45231
|
}
|
|
45110
45232
|
return {
|
|
45111
45233
|
physicalId,
|
|
@@ -45898,11 +46020,11 @@ var ServiceDiscoveryProvider = class ServiceDiscoveryProvider {
|
|
|
45898
46020
|
}
|
|
45899
46021
|
return {
|
|
45900
46022
|
physicalId: serviceId,
|
|
45901
|
-
attributes: {
|
|
46023
|
+
attributes: definedAttributes({
|
|
45902
46024
|
Id: serviceId,
|
|
45903
|
-
Arn: service.Arn
|
|
45904
|
-
Name: service.Name || name
|
|
45905
|
-
}
|
|
46025
|
+
Arn: service.Arn,
|
|
46026
|
+
Name: service.Name || name
|
|
46027
|
+
})
|
|
45906
46028
|
};
|
|
45907
46029
|
} catch (error) {
|
|
45908
46030
|
const cause = error instanceof Error ? error : void 0;
|
|
@@ -47563,16 +47685,16 @@ var AppSyncProvider = class {
|
|
|
47563
47685
|
createdApiId = response.graphqlApi?.apiId;
|
|
47564
47686
|
const apiId = response.graphqlApi.apiId;
|
|
47565
47687
|
const arn = response.graphqlApi.arn;
|
|
47566
|
-
const graphQLUrl = response.graphqlApi.uris?.["GRAPHQL"]
|
|
47688
|
+
const graphQLUrl = response.graphqlApi.uris?.["GRAPHQL"];
|
|
47567
47689
|
await this.applyEnvironmentVariables(apiId, resourceType, logicalId, properties, void 0, context?.replayingState === true);
|
|
47568
47690
|
this.logger.debug(`Successfully created GraphQL API ${logicalId}: ${apiId}`);
|
|
47569
47691
|
return {
|
|
47570
47692
|
physicalId: apiId,
|
|
47571
|
-
attributes: {
|
|
47693
|
+
attributes: definedAttributes({
|
|
47572
47694
|
ApiId: apiId,
|
|
47573
47695
|
Arn: arn,
|
|
47574
47696
|
GraphQLUrl: graphQLUrl
|
|
47575
|
-
}
|
|
47697
|
+
})
|
|
47576
47698
|
};
|
|
47577
47699
|
} catch (error) {
|
|
47578
47700
|
if (createdApiId) try {
|
|
@@ -58708,14 +58830,14 @@ var CodeCommitRepositoryProvider = class {
|
|
|
58708
58830
|
* resolver can recover CFn's `Ref` value (the repository ID) from state.
|
|
58709
58831
|
*/
|
|
58710
58832
|
toAttributes(metadata) {
|
|
58711
|
-
return {
|
|
58712
|
-
Arn: metadata?.Arn
|
|
58713
|
-
CloneUrlHttp: metadata?.cloneUrlHttp
|
|
58714
|
-
CloneUrlSsh: metadata?.cloneUrlSsh
|
|
58715
|
-
Name: metadata?.repositoryName
|
|
58716
|
-
KmsKeyId: metadata?.kmsKeyId
|
|
58717
|
-
RepositoryId: metadata?.repositoryId
|
|
58718
|
-
};
|
|
58833
|
+
return definedAttributes({
|
|
58834
|
+
Arn: metadata?.Arn,
|
|
58835
|
+
CloneUrlHttp: metadata?.cloneUrlHttp,
|
|
58836
|
+
CloneUrlSsh: metadata?.cloneUrlSsh,
|
|
58837
|
+
Name: metadata?.repositoryName,
|
|
58838
|
+
KmsKeyId: metadata?.kmsKeyId,
|
|
58839
|
+
RepositoryId: metadata?.repositoryId
|
|
58840
|
+
});
|
|
58719
58841
|
}
|
|
58720
58842
|
/**
|
|
58721
58843
|
* Create a CodeCommit Repository
|
|
@@ -59527,18 +59649,18 @@ var S3VectorsProvider = class {
|
|
|
59527
59649
|
const tagRecord = this.cfnTagsToRecord(properties["Tags"]);
|
|
59528
59650
|
const tags = Object.keys(tagRecord).length > 0 ? tagRecord : void 0;
|
|
59529
59651
|
try {
|
|
59530
|
-
const
|
|
59652
|
+
const result = await this.getClient().send(new CreateVectorBucketCommand({
|
|
59531
59653
|
vectorBucketName,
|
|
59532
59654
|
encryptionConfiguration: encryptionConfiguration ? {
|
|
59533
59655
|
sseType: encryptionConfiguration["SseType"],
|
|
59534
59656
|
kmsKeyArn: encryptionConfiguration["KmsKeyArn"]
|
|
59535
59657
|
} : void 0,
|
|
59536
59658
|
...tags && Object.keys(tags).length > 0 ? { tags } : {}
|
|
59537
|
-
}))
|
|
59659
|
+
}));
|
|
59538
59660
|
this.logger.debug(`Successfully created S3 VectorBucket ${logicalId}: ${vectorBucketName}`);
|
|
59539
59661
|
return {
|
|
59540
59662
|
physicalId: vectorBucketName,
|
|
59541
|
-
attributes: { VectorBucketArn: vectorBucketArn }
|
|
59663
|
+
attributes: definedAttributes({ VectorBucketArn: result.vectorBucketArn })
|
|
59542
59664
|
};
|
|
59543
59665
|
} catch (error) {
|
|
59544
59666
|
const cause = error instanceof Error ? error : void 0;
|
|
@@ -61000,8 +61122,6 @@ var ECRProvider = class {
|
|
|
61000
61122
|
...tags ? { tags } : {}
|
|
61001
61123
|
}))).repository;
|
|
61002
61124
|
if (!repo?.repositoryName) throw new Error("CreateRepository did not return repository name");
|
|
61003
|
-
const arn = repo.repositoryArn ?? "";
|
|
61004
|
-
const repositoryUri = repo.repositoryUri ?? "";
|
|
61005
61125
|
const lifecyclePolicy = properties["LifecyclePolicy"];
|
|
61006
61126
|
if (lifecyclePolicy?.LifecyclePolicyText) {
|
|
61007
61127
|
await this.getClient().send(new PutLifecyclePolicyCommand({
|
|
@@ -61022,10 +61142,10 @@ var ECRProvider = class {
|
|
|
61022
61142
|
this.logger.debug(`Successfully created ECR Repository ${logicalId}: ${repo.repositoryName}`);
|
|
61023
61143
|
return {
|
|
61024
61144
|
physicalId: repo.repositoryName,
|
|
61025
|
-
attributes: {
|
|
61026
|
-
Arn:
|
|
61027
|
-
RepositoryUri: repositoryUri
|
|
61028
|
-
}
|
|
61145
|
+
attributes: definedAttributes({
|
|
61146
|
+
Arn: repo.repositoryArn,
|
|
61147
|
+
RepositoryUri: repo.repositoryUri
|
|
61148
|
+
})
|
|
61029
61149
|
};
|
|
61030
61150
|
} catch (error) {
|
|
61031
61151
|
const cause = error instanceof Error ? error : void 0;
|
|
@@ -61119,10 +61239,10 @@ var ECRProvider = class {
|
|
|
61119
61239
|
return {
|
|
61120
61240
|
physicalId,
|
|
61121
61241
|
wasReplaced: false,
|
|
61122
|
-
attributes: {
|
|
61123
|
-
Arn: repo?.repositoryArn
|
|
61124
|
-
RepositoryUri: repo?.repositoryUri
|
|
61125
|
-
}
|
|
61242
|
+
attributes: definedAttributes({
|
|
61243
|
+
Arn: repo?.repositoryArn,
|
|
61244
|
+
RepositoryUri: repo?.repositoryUri
|
|
61245
|
+
})
|
|
61126
61246
|
};
|
|
61127
61247
|
} catch (error) {
|
|
61128
61248
|
const cause = error instanceof Error ? error : void 0;
|
|
@@ -92057,4 +92177,4 @@ function buildProgram() {
|
|
|
92057
92177
|
|
|
92058
92178
|
//#endregion
|
|
92059
92179
|
export { buildProgram };
|
|
92060
|
-
//# sourceMappingURL=program-
|
|
92180
|
+
//# sourceMappingURL=program-CnTfNj2k.js.map
|