@go-to-k/cdkd 0.296.9 → 0.296.11

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.
@@ -1,13 +1,13 @@
1
1
  import { r as getAwsClients } from "./aws-clients-CnmtbrxD.js";
2
2
  import { A as displayIdent, F as plainIdentOr, I as safeMsg, M as displayStackName, N as isPasteableIdent, T as SECRET_REF_MAX_CODE_POINTS, _ as generateResourceNameWithFallback, g as generateResourceName, j as displaySafe, n as getLogger } from "./logger-DAaB7GFO.js";
3
- import { $ as compositeIdFormatMessage, $n as markRedactedCause, A as isTerminalDeleteFailure, B as WITHHELD_AWS_COMMAND, C as refusalTypeShown, D as ProtectionFlipRegistry, Dn as shellQuote, H as pasteableAwsCommand, Ht as AccountIdUnavailableError, J as isInterruptedWaitError, Jn as safeStringify, Kn as describeAwsFailure, L as userPoolProtectionSite, Ln as markNameCollision, Lt as withPasteableAwsProfile, M as observeThenDisableProtection, Mt as injectiveKey, N as protectionFlipKey, Nt as injectiveKeyPrefix, On as withheldTargetClause, P as rdsFamilyProtectionSite, Q as canonicalizeRoute53QueryName, Qn as markNonRetryable, Rn as markReplayMayCollide, Rt as ambientClientDefaults, S as quotedRemedyLogicalId, Sn as pasteableCommand, T as resolveExplicitPhysicalId, U as protectedReplacementAdvice, Un as isRetryableTransientError, V as isAwsCliLiteral, Vn as isAmbiguousOutcomeError, Vt as credentialFingerprint, W as renderDisableCommand, Wn as isTransientServerError, Wt as CdkdError, X as ElapsedBudgetRegistry, Xn as isMarkedNonRetryable, Y as startInterruptWatch, Yn as THROTTLING_ERROR_NAMES, Zn as isThrottlingError, _ as VALUE_NOT_SHOWN, a as onlySecretDerived, at as segmentAfterAnchor, b as isQuotableImportValue, bn as hasClauseBreak, bt as markAuxiliaryFailure, c as recordedPrincipalsRepair, ct as createMaskedRetryLogger, dt as maskerOrIdentity, er as wrapMaskedAwsError, et as compositeIdSeparatorRefusal, ft as withDerivedNameMasks, g as assertRegionMatch, h as RESOURCE_NOT_FOUND, ht as clearCreatedBeforeFailure, i as holdsSecretDerivedEntry, in as ProvisioningError, j as logGroupProtectionSite, k as deleteWithProtectionCompensation, lt as isSecretDerivedValue, nt as logicalIdShown, o as readPrincipalLists, on as ResourceUpdateNotSupportedError, ot as stateOrphanRecordRemedy, p as withRemovalDefaults, qn as isAwsAuthoredFailure, r as SECRET_DERIVED_READ_LIVE, rt as packCompositeId, st as createMaskedLogSinks, tt as compositeIdSkipResult, u as clearOnUpdateRemoval, ut as maskDeep, v as isPlainImportJson, w as remedyLogicalId, wn as plainOrDescribed, x as normalizeAwsTagsToCfn, xn as isInertUnquoted, xt as markCreatedBeforeFailure, y as isPlainImportValue, yn as commandHole, z as UNNAMEABLE_ID_CLAUSE, zt as ambientCredentialConfig } from "./iam-policy-targets-BREzwsG6.js";
3
+ import { $ as compositeIdFormatMessage, $n as markRedactedCause, A as isTerminalDeleteFailure, B as WITHHELD_AWS_COMMAND, Bt as clientDefaultsFor, C as refusalTypeShown, D as ProtectionFlipRegistry, Dn as shellQuote, H as pasteableAwsCommand, Ht as AccountIdUnavailableError, J as isInterruptedWaitError, Jn as safeStringify, Kn as describeAwsFailure, L as userPoolProtectionSite, Ln as markNameCollision, Lt as withPasteableAwsProfile, M as observeThenDisableProtection, Mt as injectiveKey, N as protectionFlipKey, Nt as injectiveKeyPrefix, On as withheldTargetClause, P as rdsFamilyProtectionSite, Q as canonicalizeRoute53QueryName, Qn as markNonRetryable, Rn as markReplayMayCollide, Rt as ambientClientDefaults, S as quotedRemedyLogicalId, Sn as pasteableCommand, T as resolveExplicitPhysicalId, U as protectedReplacementAdvice, Un as isRetryableTransientError, V as isAwsCliLiteral, Vn as isAmbiguousOutcomeError, Vt as credentialFingerprint, W as renderDisableCommand, Wn as isTransientServerError, Wt as CdkdError, X as ElapsedBudgetRegistry, Xn as isMarkedNonRetryable, Y as startInterruptWatch, Yn as THROTTLING_ERROR_NAMES, Zn as isThrottlingError, _ as VALUE_NOT_SHOWN, a as onlySecretDerived, at as segmentAfterAnchor, b as isQuotableImportValue, bn as hasClauseBreak, bt as markAuxiliaryFailure, c as recordedPrincipalsRepair, ct as createMaskedRetryLogger, dt as maskerOrIdentity, er as wrapMaskedAwsError, et as compositeIdSeparatorRefusal, ft as withDerivedNameMasks, g as assertRegionMatch, h as RESOURCE_NOT_FOUND, ht as clearCreatedBeforeFailure, i as holdsSecretDerivedEntry, in as ProvisioningError, j as logGroupProtectionSite, k as deleteWithProtectionCompensation, lt as isSecretDerivedValue, nt as logicalIdShown, o as readPrincipalLists, on as ResourceUpdateNotSupportedError, ot as stateOrphanRecordRemedy, p as withRemovalDefaults, qn as isAwsAuthoredFailure, r as SECRET_DERIVED_READ_LIVE, rt as packCompositeId, st as createMaskedLogSinks, tt as compositeIdSkipResult, u as clearOnUpdateRemoval, ut as maskDeep, v as isPlainImportJson, w as remedyLogicalId, wn as plainOrDescribed, x as normalizeAwsTagsToCfn, xn as isInertUnquoted, xt as markCreatedBeforeFailure, y as isPlainImportValue, yn as commandHole, z as UNNAMEABLE_ID_CLAUSE, zt as ambientCredentialConfig } from "./iam-policy-targets-BREzwsG6.js";
4
4
  import { s as ambientRegion } from "./aws-client-defaults-D0q0z4dG.js";
5
- import { $n as deleteSkipReason, $r as accountArgs, A as resolveDynamoDbDeleteBudgetClock, Aa as replayWarn, An as acquireIdempotencyToken, Ar as s3BucketWebsiteUrl, B as getPriorAttempts, Ba as sameLambdaFunctionAddress, Ca as toFiniteNumber, Ct as getStackRecords, D as beginDeleteWait, Da as configIntegerRefusal, Dr as s3BucketDomainName, E as DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS, Ea as configBooleanRefusal, En as earliestDefined, Er as s3BucketArn, F as waitForIndexesSettled, Fn as refuseMalformedDesiredTags, Gn as getCurrentResourceSecrets, I as ECR_AUTO_DELETE_IMAGES_TAG, In as tagMapAsList, It as REDACTED_DELETE_ADDRESS_SKIP_REASON, Ji as refuseMalformedResourcesForDestroy, Jn as slowCcOperationTimeoutMs, Ka as hasMaskableValues, Ko as stringifyValue, L as S3_AUTO_DELETE_OBJECTS_TAG, La as withRetry, Ln as tagPlanWarning, Lt as isRedactedRecordedValue, M as DELETE_INDEX_WAIT_PROCEED_NOTE, Ma as requireConfigObject, Mn as DBPROXY_TAG_OPTIONS, N as INDEX_SETTLE_POLL_INTERVAL_MS, Na as requireConfigString, Nn as planTagDiff, O as compensateRemovedDeletionProtection, Oa as configStringRefusal, Oi as refuseMalformedNestedChildOutputs, On as reserveStackCreateToken, Or as s3BucketDualStackDomainName, P as deleteTableWithIndexBusyRetry, Pn as readTagList, Pr as getAccountInfo, Pt as getCurrentProducerRegions, R as hasCdkAutoDeleteTag, Ra as canonicalLambdaFunctionName, Rn as definedAttributes, Rt as redactedDeleteAddressFields, Sa as toCfnInteger, T as DynamoDBGlobalTableProvider, Ta as coerceCfnInteger, Tr as isSettledInstanceState, V as markRefusedBeforeApplying, Wr as parseWebACLArn, Xn as unchangedBehindSecretReference, Zo as rewriteTemplateAssetReferences, Zs as decodeListingKey, _t as getCurrentNestedStackContext, a as findNestedTemplateTreeDefect, ar as isTerminationProtectionPropagationError, ba as coerceWarmThroughput$1, c as renderNestedTemplateTreeDefect, ca as findSilentDropProperties, cr as reEnableInstanceApiTermination, dc as describeFileReadFailure, dt as getNestedRevertRun, ec as canonicalizeRegion, er as withIndeterminateGuard, fc as displayAssemblyPath, fo as recoverMaskedOutput, io as redactSecretsForState, ir as ec2InstanceProtectionSite, j as resolveDynamoDbDeleteBudgetMs, ja as requireConfigArray, jn as DBPROXY_TAGS_WHAT, k as deleteBudgetKey, ka as readConfigString, kr as s3BucketRegionalDomainName, mc as resolveAssemblyPath, mo as carriesSecretMask, mt as revertNestedChildFromJournal, nr as markWaitAbandoned, o as isAbsoluteAssetPath, oa as withheldAccountClause, or as observeThenDisableInstanceApiTermination, pc as renderAssemblyPathEscape, qr as passedParameterClassesOf, ro as markSameGenerationBag, s as listNestedTemplateRows, so as dynamicReferenceTokens, sr as reDisableInstanceApiTermination, t as DeployEngine, tc as derivePartitionAndUrlSuffix, tr as isWaitAbandonedError, ua as withoutSilentDropProperties, vt as withNestedStackContext, wa as coerceCfnBoolean, xa as isWarmThroughputDecrease, xt as awaitInFlightSibling, ya as WARM_THROUGHPUT_MEMBERS, z as isTruthyCfnBoolean, za as lambdaFunctionNameForMask, zn as stringifyIfAssigned, zt as redactedDeleteAddressSkip } from "./deploy-engine-B-oaHd2t.js";
6
- import { a as AmbiguousCreateLatch, c as isInsideWindow, i as AMBIGUOUS_LATCH_TTL_MS, l as setBounded, n as collectInlinePolicyNamesManagedBySiblings, o as RecentIdSet, r as IamCreateClientCache, s as createAttemptKey, t as IAMRoleProvider, u as withoutServerErrorRetries } from "./iam-role-provider-DsJM0NT3.js";
7
- import { a as canonicalizeIpProtocolValue, i as resolveSecretDerivedPrincipals, n as runDestroyForStack, o as resolvedResourceTimeoutMs, r as isResolvableSecretPrincipalList, t as canonicalizeIpv4Cidr } from "./program-DTXVCX29.js";
8
- import { RDSProvider } from "./rds-provider-B0YTjZKU.js";
9
- import { NeptuneProvider } from "./neptune-provider-DGaKBQxm.js";
10
- import { ASGProvider } from "./asg-provider-B0IrI6EW.js";
5
+ import { $n as deleteSkipReason, $r as accountArgs, A as resolveDynamoDbDeleteBudgetClock, Aa as replayWarn, An as acquireIdempotencyToken, Ar as s3BucketWebsiteUrl, B as getPriorAttempts, Ba as sameLambdaFunctionAddress, Ca as toFiniteNumber, Ct as getStackRecords, D as beginDeleteWait, Da as configIntegerRefusal, Dr as s3BucketDomainName, E as DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS, Ea as configBooleanRefusal, En as earliestDefined, Er as s3BucketArn, F as waitForIndexesSettled, Fn as refuseMalformedDesiredTags, Gn as getCurrentResourceSecrets, I as ECR_AUTO_DELETE_IMAGES_TAG, In as tagMapAsList, It as REDACTED_DELETE_ADDRESS_SKIP_REASON, Ji as refuseMalformedResourcesForDestroy, Jn as slowCcOperationTimeoutMs, Ka as hasMaskableValues, Ko as stringifyValue, L as S3_AUTO_DELETE_OBJECTS_TAG, La as withRetry, Ln as tagPlanWarning, Lt as isRedactedRecordedValue, M as DELETE_INDEX_WAIT_PROCEED_NOTE, Ma as requireConfigObject, Mn as DBPROXY_TAG_OPTIONS, N as INDEX_SETTLE_POLL_INTERVAL_MS, Na as requireConfigString, Nn as planTagDiff, O as compensateRemovedDeletionProtection, Oa as configStringRefusal, Oi as refuseMalformedNestedChildOutputs, On as reserveStackCreateToken, Or as s3BucketDualStackDomainName, P as deleteTableWithIndexBusyRetry, Pn as readTagList, Pr as getAccountInfo, Pt as getCurrentProducerRegions, R as hasCdkAutoDeleteTag, Ra as canonicalLambdaFunctionName, Rn as definedAttributes, Rt as redactedDeleteAddressFields, Sa as toCfnInteger, T as DynamoDBGlobalTableProvider, Ta as coerceCfnInteger, Tr as isSettledInstanceState, V as markRefusedBeforeApplying, Wr as parseWebACLArn, Xn as unchangedBehindSecretReference, Zo as rewriteTemplateAssetReferences, Zs as decodeListingKey, _t as getCurrentNestedStackContext, a as findNestedTemplateTreeDefect, ar as isTerminationProtectionPropagationError, ba as coerceWarmThroughput$1, c as renderNestedTemplateTreeDefect, ca as findSilentDropProperties, cr as reEnableInstanceApiTermination, dc as describeFileReadFailure, dt as getNestedRevertRun, ec as canonicalizeRegion, er as withIndeterminateGuard, fc as displayAssemblyPath, fo as recoverMaskedOutput, io as redactSecretsForState, ir as ec2InstanceProtectionSite, j as resolveDynamoDbDeleteBudgetMs, ja as requireConfigArray, jn as DBPROXY_TAGS_WHAT, k as deleteBudgetKey, ka as readConfigString, kr as s3BucketRegionalDomainName, mc as resolveAssemblyPath, mo as carriesSecretMask, mt as revertNestedChildFromJournal, nr as markWaitAbandoned, o as isAbsoluteAssetPath, oa as withheldAccountClause, or as observeThenDisableInstanceApiTermination, pc as renderAssemblyPathEscape, qr as passedParameterClassesOf, ro as markSameGenerationBag, s as listNestedTemplateRows, so as dynamicReferenceTokens, sr as reDisableInstanceApiTermination, t as DeployEngine, tc as derivePartitionAndUrlSuffix, tr as isWaitAbandonedError, ua as withoutSilentDropProperties, vt as withNestedStackContext, wa as coerceCfnBoolean, xa as isWarmThroughputDecrease, xt as awaitInFlightSibling, ya as WARM_THROUGHPUT_MEMBERS, z as isTruthyCfnBoolean, za as lambdaFunctionNameForMask, zn as stringifyIfAssigned, zt as redactedDeleteAddressSkip } from "./deploy-engine-aXeTL7rk.js";
6
+ import { a as AmbiguousCreateLatch, c as isInsideWindow, i as AMBIGUOUS_LATCH_TTL_MS, l as setBounded, n as collectInlinePolicyNamesManagedBySiblings, o as RecentIdSet, r as IamCreateClientCache, s as createAttemptKey, t as IAMRoleProvider, u as withoutServerErrorRetries } from "./iam-role-provider-B8gFSZcy.js";
7
+ import { a as canonicalizeIpProtocolValue, i as resolveSecretDerivedPrincipals, n as runDestroyForStack, o as resolvedResourceTimeoutMs, r as isResolvableSecretPrincipalList, t as canonicalizeIpv4Cidr } from "./program-w_06Pj_g.js";
8
+ import { RDSProvider } from "./rds-provider-CUN4EuIb.js";
9
+ import { NeptuneProvider } from "./neptune-provider-xf0xgelu.js";
10
+ import { ASGProvider } from "./asg-provider-HvY_p4Yc.js";
11
11
  import { createHash, randomUUID } from "node:crypto";
12
12
  import { 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, PutBucketAccelerateConfigurationCommand, PutBucketAnalyticsConfigurationCommand, PutBucketCorsCommand, PutBucketEncryptionCommand, PutBucketIntelligentTieringConfigurationCommand, PutBucketInventoryConfigurationCommand, PutBucketLifecycleConfigurationCommand, PutBucketLoggingCommand, PutBucketMetricsConfigurationCommand, PutBucketNotificationConfigurationCommand, PutBucketOwnershipControlsCommand, PutBucketPolicyCommand, PutBucketReplicationCommand, PutBucketTaggingCommand, PutBucketVersioningCommand, PutBucketWebsiteCommand, PutObjectLockConfigurationCommand, PutPublicAccessBlockCommand, S3Client } from "@aws-sdk/client-s3";
13
13
  import { AddRoleToInstanceProfileCommand, AddUserToGroupCommand, AttachGroupPolicyCommand, AttachRolePolicyCommand, AttachUserPolicyCommand, CreateAccessKeyCommand, CreateGroupCommand, CreateInstanceProfileCommand, CreateLoginProfileCommand, CreatePolicyCommand, CreatePolicyVersionCommand, CreateUserCommand, DeleteAccessKeyCommand, DeleteGroupCommand, DeleteGroupPolicyCommand, DeleteInstanceProfileCommand, DeleteLoginProfileCommand, DeletePolicyCommand, DeletePolicyVersionCommand, DeleteRolePolicyCommand, DeleteUserCommand, DeleteUserPermissionsBoundaryCommand, DeleteUserPolicyCommand, DetachGroupPolicyCommand, DetachRolePolicyCommand, DetachUserPolicyCommand, GetAccessKeyLastUsedCommand, GetGroupCommand, GetGroupPolicyCommand, GetInstanceProfileCommand, GetPolicyCommand, GetPolicyVersionCommand, GetRolePolicyCommand, GetUserCommand, GetUserPolicyCommand, IAMClient, ListAccessKeysCommand, ListAttachedGroupPoliciesCommand, ListAttachedUserPoliciesCommand, ListEntitiesForPolicyCommand, ListGroupPoliciesCommand, ListGroupsForUserCommand, ListPoliciesCommand, ListPolicyTagsCommand, ListPolicyVersionsCommand, ListUserPoliciesCommand, NoSuchEntityException, PutGroupPolicyCommand, PutRolePolicyCommand, PutUserPermissionsBoundaryCommand, PutUserPolicyCommand, RemoveRoleFromInstanceProfileCommand, RemoveUserFromGroupCommand, TagPolicyCommand, TagUserCommand, UntagPolicyCommand, UntagUserCommand, UpdateAccessKeyCommand, UpdateLoginProfileCommand } from "@aws-sdk/client-iam";
@@ -12159,6 +12159,7 @@ var CloudWatchAlarmProvider = class {
12159
12159
 
12160
12160
  //#endregion
12161
12161
  //#region src/provisioning/providers/cloudwatch-anomaly-detector-provider.ts
12162
+ const ID_ATTRIBUTES = ["AnomalyDetectorId", "Id"];
12162
12163
  var CloudWatchAnomalyDetectorProvider = class {
12163
12164
  cloudWatchClient;
12164
12165
  logger = getLogger().child("CloudWatchAnomalyDetectorProvider");
@@ -12187,7 +12188,10 @@ var CloudWatchAnomalyDetectorProvider = class {
12187
12188
  this.logger.debug(`Successfully created CloudWatch anomaly detector ${logicalId}: ${physicalId}`);
12188
12189
  return {
12189
12190
  physicalId,
12190
- attributes: { Id: physicalId }
12191
+ attributes: {
12192
+ AnomalyDetectorId: physicalId,
12193
+ Id: physicalId
12194
+ }
12191
12195
  };
12192
12196
  } catch (error) {
12193
12197
  const cause = error instanceof Error ? error : void 0;
@@ -12202,7 +12206,10 @@ var CloudWatchAnomalyDetectorProvider = class {
12202
12206
  return {
12203
12207
  physicalId,
12204
12208
  wasReplaced: false,
12205
- attributes: { Id: physicalId }
12209
+ attributes: {
12210
+ AnomalyDetectorId: physicalId,
12211
+ Id: physicalId
12212
+ }
12206
12213
  };
12207
12214
  } catch (error) {
12208
12215
  const cause = error instanceof Error ? error : void 0;
@@ -12236,13 +12243,16 @@ var CloudWatchAnomalyDetectorProvider = class {
12236
12243
  }
12237
12244
  }
12238
12245
  async getAttribute(physicalId, resourceType, attributeName, logicalId) {
12239
- if (attributeName === "Id") return physicalId;
12240
- throw new ProvisioningError(`Unknown attribute ${attributeName} for ${resourceType} (only 'Id' is defined)`, resourceType, logicalId, physicalId);
12246
+ if (ID_ATTRIBUTES.includes(attributeName)) return physicalId;
12247
+ throw new ProvisioningError(`Unknown attribute ${attributeName} for ${resourceType} (only 'AnomalyDetectorId' and 'Id' are defined)`, resourceType, logicalId, physicalId);
12241
12248
  }
12242
12249
  async import(input) {
12243
12250
  if (input.knownPhysicalId) return {
12244
12251
  physicalId: input.knownPhysicalId,
12245
- attributes: { Id: input.knownPhysicalId }
12252
+ attributes: {
12253
+ AnomalyDetectorId: input.knownPhysicalId,
12254
+ Id: input.knownPhysicalId
12255
+ }
12246
12256
  };
12247
12257
  return null;
12248
12258
  }
@@ -31440,8 +31450,21 @@ function makeCallerAccountResolver(region) {
31440
31450
  return cached;
31441
31451
  };
31442
31452
  }
31453
+ function newGlueClients(region) {
31454
+ return {
31455
+ client: new GlueClient({
31456
+ ...ambientClientDefaults(),
31457
+ ...region ? { region } : {}
31458
+ }),
31459
+ createClient: withoutServerErrorRetries(new GlueClient({
31460
+ ...ambientClientDefaults(),
31461
+ ...region ? { region } : {}
31462
+ }))
31463
+ };
31464
+ }
31443
31465
  var GlueProvider = class {
31444
31466
  client;
31467
+ createClient;
31445
31468
  providerRegion = ambientRegion();
31446
31469
  callerAccountId = makeCallerAccountResolver(this.providerRegion);
31447
31470
  logger = getLogger().child("GlueProvider");
@@ -31460,12 +31483,13 @@ var GlueProvider = class {
31460
31483
  "OpenTableFormatInput"
31461
31484
  ])]]);
31462
31485
  getClient() {
31463
- if (!this.client) this.client = new GlueClient({
31464
- ...ambientClientDefaults(),
31465
- ...this.providerRegion ? { region: this.providerRegion } : {}
31466
- });
31486
+ if (!this.client) ({client: this.client, createClient: this.createClient} = newGlueClients(this.providerRegion));
31467
31487
  return this.client;
31468
31488
  }
31489
+ getCreateClient() {
31490
+ this.getClient();
31491
+ return this.createClient;
31492
+ }
31469
31493
  async create(logicalId, resourceType, properties, context) {
31470
31494
  switch (resourceType) {
31471
31495
  case "AWS::Glue::Database": return this.createDatabase(logicalId, resourceType, properties, context);
@@ -31501,7 +31525,7 @@ var GlueProvider = class {
31501
31525
  if (!databaseName) throw new ProvisioningError(`DatabaseInput.Name or top-level DatabaseName is required for Glue Database ${logicalId}`, resourceType, logicalId);
31502
31526
  const catalogId = properties["CatalogId"];
31503
31527
  try {
31504
- await this.getClient().send(new CreateDatabaseCommand({
31528
+ await this.getCreateClient().send(new CreateDatabaseCommand({
31505
31529
  CatalogId: catalogId,
31506
31530
  DatabaseInput: this.buildDatabaseInput(databaseInput, databaseName, { ...replayWarn(log, context) })
31507
31531
  }));
@@ -31622,7 +31646,7 @@ var GlueProvider = class {
31622
31646
  for (const [field, value] of [["DatabaseName", databaseName], ["TableInput.Name", tableName]]) if (typeof value !== "string") throw new ProvisioningError(`Glue Table ${logicalId}: ${field} must be a string, got ${describeUnresolvedName(value, log.mask)}. Set it to the ${field === "DatabaseName" ? "database" : "table"} name.`, resourceType, logicalId);
31623
31647
  const physicalId = `${databaseName}|${tableName}`;
31624
31648
  try {
31625
- await this.getClient().send(new CreateTableCommand$1({
31649
+ await this.getCreateClient().send(new CreateTableCommand$1({
31626
31650
  CatalogId: catalogId,
31627
31651
  DatabaseName: databaseName,
31628
31652
  TableInput: this.buildTableInput(tableInput, tableName),
@@ -32107,6 +32131,7 @@ var GlueProvider = class {
32107
32131
  };
32108
32132
  var GlueWorkflowProvider = class {
32109
32133
  client;
32134
+ createClient;
32110
32135
  stsClient;
32111
32136
  cachedAccountId;
32112
32137
  providerRegion = ambientRegion();
@@ -32122,12 +32147,13 @@ var GlueWorkflowProvider = class {
32122
32147
  "Tags"
32123
32148
  ])]]);
32124
32149
  getClient() {
32125
- if (!this.client) this.client = new GlueClient({
32126
- ...ambientClientDefaults(),
32127
- ...this.providerRegion ? { region: this.providerRegion } : {}
32128
- });
32150
+ if (!this.client) ({client: this.client, createClient: this.createClient} = newGlueClients(this.providerRegion));
32129
32151
  return this.client;
32130
32152
  }
32153
+ getCreateClient() {
32154
+ this.getClient();
32155
+ return this.createClient;
32156
+ }
32131
32157
  async create(logicalId, resourceType, properties, context) {
32132
32158
  const log = glueOperationSinks(this.logger, context?.maskSecrets, secretNamePairs([properties["Name"]]));
32133
32159
  const { value: v } = log;
@@ -32136,7 +32162,7 @@ var GlueWorkflowProvider = class {
32136
32162
  if (!name) throw new ProvisioningError(`Name is required for Glue Workflow ${logicalId}`, resourceType, logicalId);
32137
32163
  const tags = desiredGlueTags(properties["Tags"], resourceType, logicalId);
32138
32164
  try {
32139
- await this.getClient().send(new CreateWorkflowCommand({
32165
+ await this.getCreateClient().send(new CreateWorkflowCommand({
32140
32166
  Name: name,
32141
32167
  ...properties["Description"] !== void 0 && { Description: properties["Description"] },
32142
32168
  ...properties["DefaultRunProperties"] !== void 0 && { DefaultRunProperties: properties["DefaultRunProperties"] },
@@ -32261,6 +32287,7 @@ var GlueWorkflowProvider = class {
32261
32287
  };
32262
32288
  var GlueSecurityConfigurationProvider = class {
32263
32289
  client;
32290
+ createClient;
32264
32291
  providerRegion = ambientRegion();
32265
32292
  logger = getLogger().child("GlueSecurityConfigurationProvider");
32266
32293
  wrapMaskedError(mask, error, build) {
@@ -32268,12 +32295,13 @@ var GlueSecurityConfigurationProvider = class {
32268
32295
  }
32269
32296
  handledProperties = /* @__PURE__ */ new Map([["AWS::Glue::SecurityConfiguration", /* @__PURE__ */ new Set(["Name", "EncryptionConfiguration"])]]);
32270
32297
  getClient() {
32271
- if (!this.client) this.client = new GlueClient({
32272
- ...ambientClientDefaults(),
32273
- ...this.providerRegion ? { region: this.providerRegion } : {}
32274
- });
32298
+ if (!this.client) ({client: this.client, createClient: this.createClient} = newGlueClients(this.providerRegion));
32275
32299
  return this.client;
32276
32300
  }
32301
+ getCreateClient() {
32302
+ this.getClient();
32303
+ return this.createClient;
32304
+ }
32277
32305
  async create(logicalId, resourceType, properties, context) {
32278
32306
  const log = glueOperationSinks(this.logger, context?.maskSecrets, secretNamePairs([properties["Name"]]));
32279
32307
  const { value: v } = log;
@@ -32283,7 +32311,7 @@ var GlueSecurityConfigurationProvider = class {
32283
32311
  const encryptionConfiguration = properties["EncryptionConfiguration"];
32284
32312
  if (!encryptionConfiguration) throw new ProvisioningError(`EncryptionConfiguration is required for Glue SecurityConfiguration ${logicalId}`, resourceType, logicalId);
32285
32313
  try {
32286
- await this.getClient().send(new CreateSecurityConfigurationCommand({
32314
+ await this.getCreateClient().send(new CreateSecurityConfigurationCommand({
32287
32315
  Name: name,
32288
32316
  EncryptionConfiguration: buildEncryptionConfiguration(encryptionConfiguration)
32289
32317
  }));
@@ -32447,6 +32475,7 @@ async function fetchGlueTags(client, stsClient, resource, name, accountId, logge
32447
32475
  }
32448
32476
  var GlueJobProvider = class {
32449
32477
  client;
32478
+ createClient;
32450
32479
  stsClient;
32451
32480
  cachedAccountId;
32452
32481
  providerRegion = ambientRegion();
@@ -32481,12 +32510,13 @@ var GlueJobProvider = class {
32481
32510
  "Tags"
32482
32511
  ])]]);
32483
32512
  getClient() {
32484
- if (!this.client) this.client = new GlueClient({
32485
- ...ambientClientDefaults(),
32486
- ...this.providerRegion ? { region: this.providerRegion } : {}
32487
- });
32513
+ if (!this.client) ({client: this.client, createClient: this.createClient} = newGlueClients(this.providerRegion));
32488
32514
  return this.client;
32489
32515
  }
32516
+ getCreateClient() {
32517
+ this.getClient();
32518
+ return this.createClient;
32519
+ }
32490
32520
  getStsClient() {
32491
32521
  if (!this.stsClient) this.stsClient = new STSClient({
32492
32522
  ...ambientClientDefaults(),
@@ -32505,7 +32535,7 @@ var GlueJobProvider = class {
32505
32535
  if (!command) throw new ProvisioningError(`Command is required for Glue Job ${logicalId}`, resourceType, logicalId);
32506
32536
  const tags = desiredGlueTags(properties["Tags"], resourceType, logicalId);
32507
32537
  try {
32508
- await this.getClient().send(new CreateJobCommand({
32538
+ await this.getCreateClient().send(new CreateJobCommand({
32509
32539
  Name: name,
32510
32540
  Role: role,
32511
32541
  Command: buildJobCommand(command),
@@ -32738,6 +32768,7 @@ function pickDefined(obj) {
32738
32768
  }
32739
32769
  var GlueCrawlerProvider = class {
32740
32770
  client;
32771
+ createClient;
32741
32772
  stsClient;
32742
32773
  cachedAccountId;
32743
32774
  providerRegion = ambientRegion();
@@ -32763,12 +32794,13 @@ var GlueCrawlerProvider = class {
32763
32794
  "Tags"
32764
32795
  ])]]);
32765
32796
  getClient() {
32766
- if (!this.client) this.client = new GlueClient({
32767
- ...ambientClientDefaults(),
32768
- ...this.providerRegion ? { region: this.providerRegion } : {}
32769
- });
32797
+ if (!this.client) ({client: this.client, createClient: this.createClient} = newGlueClients(this.providerRegion));
32770
32798
  return this.client;
32771
32799
  }
32800
+ getCreateClient() {
32801
+ this.getClient();
32802
+ return this.createClient;
32803
+ }
32772
32804
  getStsClient() {
32773
32805
  if (!this.stsClient) this.stsClient = new STSClient({
32774
32806
  ...ambientClientDefaults(),
@@ -32787,7 +32819,7 @@ var GlueCrawlerProvider = class {
32787
32819
  if (!targets) throw new ProvisioningError(`Targets is required for Glue Crawler ${logicalId}`, resourceType, logicalId);
32788
32820
  const tags = desiredGlueTags(properties["Tags"], resourceType, logicalId);
32789
32821
  try {
32790
- await this.getClient().send(new CreateCrawlerCommand({
32822
+ await this.getCreateClient().send(new CreateCrawlerCommand({
32791
32823
  Name: name,
32792
32824
  Role: role,
32793
32825
  Targets: toSdkCrawlerTargets(targets),
@@ -32996,6 +33028,7 @@ function toCfnCrawlerTargets(targets) {
32996
33028
  }
32997
33029
  var GlueConnectionProvider = class {
32998
33030
  client;
33031
+ createClient;
32999
33032
  providerRegion = ambientRegion();
33000
33033
  callerAccountId = makeCallerAccountResolver(this.providerRegion);
33001
33034
  logger = getLogger().child("GlueConnectionProvider");
@@ -33004,12 +33037,13 @@ var GlueConnectionProvider = class {
33004
33037
  }
33005
33038
  handledProperties = /* @__PURE__ */ new Map([["AWS::Glue::Connection", /* @__PURE__ */ new Set(["ConnectionInput", "CatalogId"])]]);
33006
33039
  getClient() {
33007
- if (!this.client) this.client = new GlueClient({
33008
- ...ambientClientDefaults(),
33009
- ...this.providerRegion ? { region: this.providerRegion } : {}
33010
- });
33040
+ if (!this.client) ({client: this.client, createClient: this.createClient} = newGlueClients(this.providerRegion));
33011
33041
  return this.client;
33012
33042
  }
33043
+ getCreateClient() {
33044
+ this.getClient();
33045
+ return this.createClient;
33046
+ }
33013
33047
  async create(logicalId, resourceType, properties, context) {
33014
33048
  const log = glueOperationSinks(this.logger, context?.maskSecrets, secretNamePairs([asRecord$1(properties["ConnectionInput"])?.["Name"], properties["CatalogId"]]));
33015
33049
  const { value: v } = log;
@@ -33019,7 +33053,7 @@ var GlueConnectionProvider = class {
33019
33053
  const name = connectionInput["Name"] ?? logicalId;
33020
33054
  const catalogId = properties["CatalogId"];
33021
33055
  try {
33022
- await this.getClient().send(new CreateConnectionCommand({
33056
+ await this.getCreateClient().send(new CreateConnectionCommand({
33023
33057
  ...catalogId && { CatalogId: catalogId },
33024
33058
  ConnectionInput: buildConnectionInput(connectionInput, name)
33025
33059
  }));
@@ -33167,6 +33201,7 @@ function buildConnectionInput(ci, fallbackName) {
33167
33201
  }
33168
33202
  var GlueTriggerProvider = class {
33169
33203
  client;
33204
+ createClient;
33170
33205
  stsClient;
33171
33206
  cachedAccountId;
33172
33207
  providerRegion = ambientRegion();
@@ -33187,12 +33222,13 @@ var GlueTriggerProvider = class {
33187
33222
  "Tags"
33188
33223
  ])]]);
33189
33224
  getClient() {
33190
- if (!this.client) this.client = new GlueClient({
33191
- ...ambientClientDefaults(),
33192
- ...this.providerRegion ? { region: this.providerRegion } : {}
33193
- });
33225
+ if (!this.client) ({client: this.client, createClient: this.createClient} = newGlueClients(this.providerRegion));
33194
33226
  return this.client;
33195
33227
  }
33228
+ getCreateClient() {
33229
+ this.getClient();
33230
+ return this.createClient;
33231
+ }
33196
33232
  getStsClient() {
33197
33233
  if (!this.stsClient) this.stsClient = new STSClient({
33198
33234
  ...ambientClientDefaults(),
@@ -33211,7 +33247,7 @@ var GlueTriggerProvider = class {
33211
33247
  if (!actions) throw new ProvisioningError(`Actions is required for Glue Trigger ${logicalId}`, resourceType, logicalId);
33212
33248
  const tags = desiredGlueTags(properties["Tags"], resourceType, logicalId);
33213
33249
  try {
33214
- await this.getClient().send(new CreateTriggerCommand({
33250
+ await this.getCreateClient().send(new CreateTriggerCommand({
33215
33251
  Name: name,
33216
33252
  Type: type,
33217
33253
  Actions: actions,
@@ -34924,6 +34960,7 @@ function consumerArnParts(consumerArn) {
34924
34960
  }
34925
34961
  var KinesisStreamConsumerProvider = class {
34926
34962
  client;
34963
+ createClient;
34927
34964
  providerRegion = ambientRegion();
34928
34965
  logger = getLogger().child("KinesisStreamConsumerProvider");
34929
34966
  handledProperties = /* @__PURE__ */ new Map([["AWS::Kinesis::StreamConsumer", /* @__PURE__ */ new Set([
@@ -34932,12 +34969,22 @@ var KinesisStreamConsumerProvider = class {
34932
34969
  "Tags"
34933
34970
  ])]]);
34934
34971
  getClient() {
34935
- if (!this.client) this.client = new KinesisClient({
34936
- ...ambientClientDefaults(),
34937
- ...this.providerRegion ? { region: this.providerRegion } : {}
34938
- });
34972
+ if (!this.client) {
34973
+ this.client = new KinesisClient({
34974
+ ...ambientClientDefaults(),
34975
+ ...this.providerRegion ? { region: this.providerRegion } : {}
34976
+ });
34977
+ this.createClient = withoutServerErrorRetries(new KinesisClient({
34978
+ ...ambientClientDefaults(),
34979
+ ...this.providerRegion ? { region: this.providerRegion } : {}
34980
+ }));
34981
+ }
34939
34982
  return this.client;
34940
34983
  }
34984
+ getCreateClient() {
34985
+ this.getClient();
34986
+ return this.createClient;
34987
+ }
34941
34988
  async create(logicalId, resourceType, properties) {
34942
34989
  const tagList = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
34943
34990
  const consumerName = properties["ConsumerName"];
@@ -34948,7 +34995,7 @@ var KinesisStreamConsumerProvider = class {
34948
34995
  const tagMap = tagListToMap(tagList);
34949
34996
  let createdArn;
34950
34997
  try {
34951
- const consumer = (await this.getClient().send(new RegisterStreamConsumerCommand({
34998
+ const consumer = (await this.getCreateClient().send(new RegisterStreamConsumerCommand({
34952
34999
  StreamARN: streamArn,
34953
35000
  ConsumerName: consumerName,
34954
35001
  ...tagMap && Object.keys(tagMap).length > 0 ? { Tags: tagMap } : {}
@@ -35706,6 +35753,7 @@ function deleteFailureClassifier(resourceType, logicalId, physicalId) {
35706
35753
  }
35707
35754
  var PipesPipeProvider = class {
35708
35755
  client;
35756
+ createClient;
35709
35757
  providerRegion = ambientRegion();
35710
35758
  logger = getLogger().child("PipesPipeProvider");
35711
35759
  options;
@@ -35738,19 +35786,29 @@ var PipesPipeProvider = class {
35738
35786
  this.options = options;
35739
35787
  }
35740
35788
  getClient() {
35741
- if (!this.client) this.client = new PipesClient({
35742
- ...ambientClientDefaults(),
35743
- ...this.providerRegion ? { region: this.providerRegion } : {}
35744
- });
35789
+ if (!this.client) {
35790
+ this.client = new PipesClient({
35791
+ ...ambientClientDefaults(),
35792
+ ...this.providerRegion ? { region: this.providerRegion } : {}
35793
+ });
35794
+ this.createClient = withoutServerErrorRetries(new PipesClient({
35795
+ ...ambientClientDefaults(),
35796
+ ...this.providerRegion ? { region: this.providerRegion } : {}
35797
+ }));
35798
+ }
35745
35799
  return this.client;
35746
35800
  }
35801
+ getCreateClient() {
35802
+ this.getClient();
35803
+ return this.createClient;
35804
+ }
35747
35805
  async create(logicalId, resourceType, properties, context) {
35748
35806
  const mask = maskerOrIdentity(context?.maskSecrets);
35749
35807
  const name = properties["Name"] ?? generateResourceName(logicalId, { maxLength: 64 });
35750
35808
  const tags = desiredTagMap(properties["Tags"], logicalId);
35751
35809
  this.logger.debug(mask(`Creating Pipe ${logicalId}: ${name}`));
35752
35810
  try {
35753
- await this.getClient().send(new CreatePipeCommand({
35811
+ await this.getCreateClient().send(new CreatePipeCommand({
35754
35812
  Name: name,
35755
35813
  RoleArn: properties["RoleArn"],
35756
35814
  Source: properties["Source"],
@@ -35767,7 +35825,7 @@ var PipesPipeProvider = class {
35767
35825
  }));
35768
35826
  } catch (error) {
35769
35827
  const cause = error instanceof Error ? error : void 0;
35770
- throw new ProvisioningError(`Failed to create Pipe ${logicalId}: ${cause?.message ?? String(error)}`, resourceType, logicalId, void 0, cause);
35828
+ throw new ProvisioningError(`Failed to create Pipe ${logicalId}: ${mask(cause?.message ?? String(error))}`, resourceType, logicalId, void 0, cause);
35771
35829
  }
35772
35830
  let settled;
35773
35831
  try {
@@ -35839,7 +35897,7 @@ var PipesPipeProvider = class {
35839
35897
  if (error instanceof ProvisioningError) throw error;
35840
35898
  if (error instanceof NotFoundException$6) assertRegionMatch(await this.getClient().config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
35841
35899
  const cause = error instanceof Error ? error : void 0;
35842
- throw new ProvisioningError(`Failed to update Pipe ${logicalId}: ${cause?.message ?? String(error)}`, resourceType, logicalId, physicalId, cause);
35900
+ throw new ProvisioningError(`Failed to update Pipe ${logicalId}: ${mask(cause?.message ?? String(error))}`, resourceType, logicalId, physicalId, cause);
35843
35901
  }
35844
35902
  return {
35845
35903
  physicalId,
@@ -39178,6 +39236,7 @@ const FIREHOSE_DELETE_POLL_INTERVAL_MS = 5e3;
39178
39236
  const FIREHOSE_DELETE_MAX_WAIT_MS = 6e5;
39179
39237
  var FirehoseProvider = class {
39180
39238
  client;
39239
+ createClient;
39181
39240
  providerRegion = ambientRegion();
39182
39241
  logger = getLogger().child("FirehoseProvider");
39183
39242
  handledProperties = /* @__PURE__ */ new Map([["AWS::KinesisFirehose::DeliveryStream", /* @__PURE__ */ new Set([
@@ -39196,12 +39255,22 @@ var FirehoseProvider = class {
39196
39255
  "DeliveryStreamEncryptionConfigurationInput"
39197
39256
  ])]]);
39198
39257
  getClient() {
39199
- if (!this.client) this.client = new FirehoseClient({
39200
- ...ambientClientDefaults(),
39201
- ...this.providerRegion ? { region: this.providerRegion } : {}
39202
- });
39258
+ if (!this.client) {
39259
+ this.client = new FirehoseClient({
39260
+ ...ambientClientDefaults(),
39261
+ ...this.providerRegion ? { region: this.providerRegion } : {}
39262
+ });
39263
+ this.createClient = withoutServerErrorRetries(new FirehoseClient({
39264
+ ...ambientClientDefaults(),
39265
+ ...this.providerRegion ? { region: this.providerRegion } : {}
39266
+ }));
39267
+ }
39203
39268
  return this.client;
39204
39269
  }
39270
+ getCreateClient() {
39271
+ this.getClient();
39272
+ return this.createClient;
39273
+ }
39205
39274
  async create(logicalId, resourceType, properties) {
39206
39275
  this.logger.debug(`Creating Firehose delivery stream ${logicalId}`);
39207
39276
  const deliveryStreamName = properties["DeliveryStreamName"];
@@ -39334,7 +39403,7 @@ var FirehoseProvider = class {
39334
39403
  Key: t.Key,
39335
39404
  Value: t.Value
39336
39405
  }));
39337
- const response = await this.getClient().send(new CreateDeliveryStreamCommand(input));
39406
+ const response = await this.getCreateClient().send(new CreateDeliveryStreamCommand(input));
39338
39407
  const physicalId = deliveryStreamName || input.DeliveryStreamName || response.DeliveryStreamARN?.split("/").pop() || "";
39339
39408
  createdStreamName = physicalId;
39340
39409
  const arn = response.DeliveryStreamARN;
@@ -40045,6 +40114,7 @@ function describeValue(value) {
40045
40114
  }
40046
40115
  var CloudTrailProvider = class {
40047
40116
  client;
40117
+ createClient;
40048
40118
  providerRegion = ambientRegion();
40049
40119
  logger = getLogger().child("CloudTrailProvider");
40050
40120
  removalDefaults = /* @__PURE__ */ new Map([["AWS::CloudTrail::Trail", /* @__PURE__ */ new Map([["IsMultiRegionTrail", false], ["EnableLogFileValidation", false]])]]);
@@ -40066,12 +40136,22 @@ var CloudTrailProvider = class {
40066
40136
  "IsOrganizationTrail"
40067
40137
  ])]]);
40068
40138
  getClient() {
40069
- if (!this.client) this.client = new CloudTrailClient({
40070
- ...ambientClientDefaults(),
40071
- ...this.providerRegion ? { region: this.providerRegion } : {}
40072
- });
40139
+ if (!this.client) {
40140
+ this.client = new CloudTrailClient({
40141
+ ...ambientClientDefaults(),
40142
+ ...this.providerRegion ? { region: this.providerRegion } : {}
40143
+ });
40144
+ this.createClient = withoutServerErrorRetries(new CloudTrailClient({
40145
+ ...ambientClientDefaults(),
40146
+ ...this.providerRegion ? { region: this.providerRegion } : {}
40147
+ }));
40148
+ }
40073
40149
  return this.client;
40074
40150
  }
40151
+ getCreateClient() {
40152
+ this.getClient();
40153
+ return this.createClient;
40154
+ }
40075
40155
  async create(logicalId, resourceType, properties) {
40076
40156
  this.logger.debug(`Creating CloudTrail Trail ${logicalId}`);
40077
40157
  const desiredTags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
@@ -40093,7 +40173,7 @@ var CloudTrailProvider = class {
40093
40173
  let trailCreated = false;
40094
40174
  let createdTrailArn;
40095
40175
  try {
40096
- const result = await this.getClient().send(new CreateTrailCommand({
40176
+ const result = await this.getCreateClient().send(new CreateTrailCommand({
40097
40177
  Name: trailName ?? logicalId,
40098
40178
  S3BucketName: s3BucketName,
40099
40179
  S3KeyPrefix: s3KeyPrefix,
@@ -41579,6 +41659,7 @@ var DLMLifecyclePolicyProvider = class {
41579
41659
  //#region src/provisioning/providers/s3-vectors-provider.ts
41580
41660
  var S3VectorsProvider = class {
41581
41661
  client;
41662
+ createClient;
41582
41663
  providerRegion = ambientRegion();
41583
41664
  logger = getLogger().child("S3VectorsProvider");
41584
41665
  handledProperties = /* @__PURE__ */ new Map([["AWS::S3Vectors::VectorBucket", /* @__PURE__ */ new Set([
@@ -41590,12 +41671,22 @@ var S3VectorsProvider = class {
41590
41671
  return wrapMaskedAwsError(mask, error, build);
41591
41672
  }
41592
41673
  getClient() {
41593
- if (!this.client) this.client = new S3VectorsClient({
41594
- ...ambientClientDefaults(),
41595
- ...this.providerRegion ? { region: this.providerRegion } : {}
41596
- });
41674
+ if (!this.client) {
41675
+ this.client = new S3VectorsClient({
41676
+ ...ambientClientDefaults(),
41677
+ ...this.providerRegion ? { region: this.providerRegion } : {}
41678
+ });
41679
+ this.createClient = withoutServerErrorRetries(new S3VectorsClient({
41680
+ ...ambientClientDefaults(),
41681
+ ...this.providerRegion ? { region: this.providerRegion } : {}
41682
+ }));
41683
+ }
41597
41684
  return this.client;
41598
41685
  }
41686
+ getCreateClient() {
41687
+ this.getClient();
41688
+ return this.createClient;
41689
+ }
41599
41690
  async create(logicalId, resourceType, properties) {
41600
41691
  switch (resourceType) {
41601
41692
  case "AWS::S3Vectors::VectorBucket": return this.createVectorBucket(logicalId, resourceType, properties);
@@ -41670,7 +41761,7 @@ var S3VectorsProvider = class {
41670
41761
  const tagRecord = Object.fromEntries(desiredTags.map((t) => [t.Key, t.Value]));
41671
41762
  const tags = Object.keys(tagRecord).length > 0 ? tagRecord : void 0;
41672
41763
  try {
41673
- const result = await this.getClient().send(new CreateVectorBucketCommand({
41764
+ const result = await this.getCreateClient().send(new CreateVectorBucketCommand({
41674
41765
  vectorBucketName,
41675
41766
  encryptionConfiguration: encryptionConfiguration ? {
41676
41767
  sseType: encryptionConfiguration["SseType"],
@@ -41794,6 +41885,8 @@ function notEmptyRefusalMessage(bucketName) {
41794
41885
  }
41795
41886
  var S3DirectoryBucketProvider = class {
41796
41887
  s3Client;
41888
+ createClient;
41889
+ credentialConfig;
41797
41890
  stsClient;
41798
41891
  logger = getLogger().child("S3DirectoryBucketProvider");
41799
41892
  handledProperties = /* @__PURE__ */ new Map([["AWS::S3Express::DirectoryBucket", /* @__PURE__ */ new Set([
@@ -41809,6 +41902,17 @@ var S3DirectoryBucketProvider = class {
41809
41902
  const awsClients = getAwsClients();
41810
41903
  this.s3Client = awsClients.s3;
41811
41904
  this.stsClient = awsClients.sts;
41905
+ this.credentialConfig = awsClients.credentialConfig ?? {};
41906
+ }
41907
+ getCreateClient() {
41908
+ this.createClient ??= this.s3Client.config.region().then((region) => withoutServerErrorRetries(new S3Client({
41909
+ ...clientDefaultsFor(this.credentialConfig),
41910
+ region
41911
+ })), (error) => {
41912
+ this.createClient = void 0;
41913
+ throw error;
41914
+ });
41915
+ return this.createClient;
41812
41916
  }
41813
41917
  getEc2Client() {
41814
41918
  if (!this.ec2Client) this.ec2Client = new EC2Client({
@@ -41866,7 +41970,7 @@ var S3DirectoryBucketProvider = class {
41866
41970
  const includeTags = tags.length > 0;
41867
41971
  try {
41868
41972
  const attributes = await this.buildAttributes(bucketName);
41869
- await this.s3Client.send(new CreateBucketCommand({
41973
+ await (await this.getCreateClient()).send(new CreateBucketCommand({
41870
41974
  Bucket: bucketName,
41871
41975
  CreateBucketConfiguration: {
41872
41976
  Bucket: {
@@ -42076,6 +42180,7 @@ function tableIdentityFromGetTable(tableARN, namespace, name) {
42076
42180
  }
42077
42181
  var S3TablesProvider = class {
42078
42182
  client;
42183
+ createClient;
42079
42184
  providerRegion = ambientRegion();
42080
42185
  logger = getLogger().child("S3TablesProvider");
42081
42186
  handledProperties = /* @__PURE__ */ new Map([
@@ -42092,12 +42197,22 @@ var S3TablesProvider = class {
42092
42197
  ])]
42093
42198
  ]);
42094
42199
  getClient() {
42095
- if (!this.client) this.client = new S3TablesClient({
42096
- ...ambientClientDefaults(),
42097
- ...this.providerRegion ? { region: this.providerRegion } : {}
42098
- });
42200
+ if (!this.client) {
42201
+ this.client = new S3TablesClient({
42202
+ ...ambientClientDefaults(),
42203
+ ...this.providerRegion ? { region: this.providerRegion } : {}
42204
+ });
42205
+ this.createClient = withoutServerErrorRetries(new S3TablesClient({
42206
+ ...ambientClientDefaults(),
42207
+ ...this.providerRegion ? { region: this.providerRegion } : {}
42208
+ }));
42209
+ }
42099
42210
  return this.client;
42100
42211
  }
42212
+ getCreateClient() {
42213
+ this.getClient();
42214
+ return this.createClient;
42215
+ }
42101
42216
  async create(logicalId, resourceType, properties, context) {
42102
42217
  switch (resourceType) {
42103
42218
  case "AWS::S3Tables::TableBucket": return this.createTableBucket(logicalId, resourceType, properties);
@@ -42140,7 +42255,7 @@ var S3TablesProvider = class {
42140
42255
  if (!tableBucketName) throw new ProvisioningError(`TableBucketName is required for S3 Table Bucket ${logicalId}`, resourceType, logicalId);
42141
42256
  const tags = this.tagListToSdkMap(desiredTags);
42142
42257
  try {
42143
- const tableBucketARN = (await this.getClient().send(new CreateTableBucketCommand({
42258
+ const tableBucketARN = (await this.getCreateClient().send(new CreateTableBucketCommand({
42144
42259
  name: tableBucketName,
42145
42260
  ...tags !== void 0 && { tags }
42146
42261
  }))).arn;
@@ -42237,7 +42352,7 @@ var S3TablesProvider = class {
42237
42352
  ...context?.replayingState === true && { onRefusal: (message) => this.logger.warn(message) }
42238
42353
  });
42239
42354
  try {
42240
- await this.getClient().send(new CreateNamespaceCommand({
42355
+ await this.getCreateClient().send(new CreateNamespaceCommand({
42241
42356
  tableBucketARN,
42242
42357
  namespace: [namespaceName]
42243
42358
  }));
@@ -42303,7 +42418,7 @@ var S3TablesProvider = class {
42303
42418
  });
42304
42419
  let tableCreated = false;
42305
42420
  try {
42306
- const response = await this.getClient().send(new CreateTableCommand$2({
42421
+ const response = await this.getCreateClient().send(new CreateTableCommand$2({
42307
42422
  tableBucketARN,
42308
42423
  namespace,
42309
42424
  name,
@@ -43690,4 +43805,4 @@ var ACMCertificateProvider = class {
43690
43805
 
43691
43806
  //#endregion
43692
43807
  export { ACMCertificateProvider, ASGProvider, AgentCoreBrowserProvider, AgentCoreCodeInterpreterProvider, AgentCoreEvaluatorProvider, AgentCoreRuntimeProvider, ApiGatewayProvider, ApiGatewayV2Provider, AppSyncProvider, BudgetsBudgetProvider, CloudFrontDistributionProvider, CloudFrontOACProvider, CloudFrontOAIProvider, CloudTrailProvider, CloudWatchAlarmProvider, CloudWatchAnomalyDetectorProvider, CodeBuildProvider, CodeCommitRepositoryProvider, CognitoUserPoolProvider, DLMLifecyclePolicyProvider, DocDBProvider, DocDBSubnetGroupProvider, DynamoDBGlobalTableProvider, DynamoDBTableProvider, EC2Provider, ECRProvider, ECSProvider, EFSProvider, ELBv2Provider, EMRClusterProvider, EMRInstanceFleetConfigProvider, EMRInstanceGroupConfigProvider, ElastiCacheProvider, EventBridgeBusProvider, EventBridgeRuleProvider, FSxFileSystemProvider, FirehoseProvider, GlueConnectionProvider, GlueCrawlerProvider, GlueJobProvider, GlueProvider, GlueSecurityConfigurationProvider, GlueTriggerProvider, GlueWorkflowProvider, IAMAccessKeyProvider, IAMInstanceProfileProvider, IAMManagedPolicyProvider, IAMPolicyProvider, IAMRoleProvider, IAMUserGroupProvider, KMSProvider, KinesisStreamConsumerProvider, KinesisStreamProvider, LambdaEventInvokeConfigProvider, LambdaEventSourceMappingProvider, LambdaFunctionProvider, LambdaLayerVersionProvider, LambdaMicrovmImageProvider, LambdaPermissionProvider, LambdaUrlProvider, LogsLogGroupProvider, NeptuneProvider, NestedStackProvider, PipesPipeProvider, RDSDBProxyEndpointProvider, RDSDBProxyProvider, RDSDBProxyTargetGroupProvider, RDSProvider, Route53Provider, S3BucketPolicyProvider, S3BucketProvider, S3DirectoryBucketProvider, S3TablesProvider, S3VectorsProvider, SNSSubscriptionProvider, SNSTopicPolicyProvider, SNSTopicProvider, SQSQueuePolicyProvider, SQSQueueProvider, SSMParameterProvider, SchedulerScheduleProvider, SecretsManagerSecretProvider, ServiceDiscoveryProvider, StepFunctionsProvider, WAFv2WebACLProvider, WaitConditionHandleProvider };
43693
- //# sourceMappingURL=provider-classes-y-yYsSvB.js.map
43808
+ //# sourceMappingURL=provider-classes-4lVceW9g.js.map