@go-to-k/cdkd 0.301.15 → 0.302.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/dist/{asg-provider-ClDYCUia.js → asg-provider-BpRcm_UB.js} +5 -5
- package/dist/asg-provider-BpRcm_UB.js.map +1 -0
- package/dist/{aws-failure-text-CdgZn80O.js → aws-failure-text-e_ddrDDo.js} +313 -35
- package/dist/aws-failure-text-e_ddrDDo.js.map +1 -0
- package/dist/cli.js +2 -2
- package/dist/{deploy-engine-Dy7N7-Il.js → deploy-engine-CYVt2NQR.js} +2189 -1104
- package/dist/deploy-engine-CYVt2NQR.js.map +1 -0
- package/dist/{iam-policy-targets-Dap4bLyq.js → iam-policy-targets-CmHNH1DY.js} +17 -4
- package/dist/iam-policy-targets-CmHNH1DY.js.map +1 -0
- package/dist/{iam-role-provider-C8Icvrf7.js → iam-role-provider-R1GC6KcT.js} +14 -5
- package/dist/iam-role-provider-R1GC6KcT.js.map +1 -0
- package/dist/index.d.ts +32 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/{neptune-provider-CtnwSAGM.js → neptune-provider-DzTl6-74.js} +7 -16
- package/dist/neptune-provider-DzTl6-74.js.map +1 -0
- package/dist/{program-CXvao3wc.js → program-CvRs5pV_.js} +172 -30
- package/dist/program-CvRs5pV_.js.map +1 -0
- package/dist/{provider-classes-CBbWGsK0.js → provider-classes-B2_u4Fg0.js} +268 -150
- package/dist/provider-classes-B2_u4Fg0.js.map +1 -0
- package/dist/{rds-provider-BMQvQTTS.js → rds-provider-CmKbYAvr.js} +7 -16
- package/dist/rds-provider-CmKbYAvr.js.map +1 -0
- package/dist/{version-DadUoJjK.js → version-CaejipV3.js} +2 -2
- package/dist/{version-DadUoJjK.js.map → version-CaejipV3.js.map} +1 -1
- package/package.json +1 -1
- package/dist/asg-provider-ClDYCUia.js.map +0 -1
- package/dist/aws-failure-text-CdgZn80O.js.map +0 -1
- package/dist/deploy-engine-Dy7N7-Il.js.map +0 -1
- package/dist/iam-policy-targets-Dap4bLyq.js.map +0 -1
- package/dist/iam-role-provider-C8Icvrf7.js.map +0 -1
- package/dist/neptune-provider-CtnwSAGM.js.map +0 -1
- package/dist/program-CXvao3wc.js.map +0 -1
- package/dist/provider-classes-CBbWGsK0.js.map +0 -1
- package/dist/rds-provider-BMQvQTTS.js.map +0 -1
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { r as getAwsClients } from "./aws-clients-B_CEQGE1.js";
|
|
2
|
-
import {
|
|
3
|
-
import { $ as protectedReplacementAdvice, $
|
|
2
|
+
import { B as SECRET_REF_MAX_CODE_POINTS, C as generateResourceName, D as getCurrentStackInstanceId, J as displayStackName, K as displayIdent, M as recordedGeneratedNameKept, Q as safeMsg, T as generatedNameFor, Y as isPasteableIdent, Z as plainIdentOr, a as safeStringify, i as isAwsAuthoredFailure, k as isBeforeStateRead, n as describeAwsFailure, q as displaySafe, r as describeAwsStatusReason, s as getLogger, w as generateResourceNameWithFallback } from "./aws-failure-text-e_ddrDDo.js";
|
|
3
|
+
import { $ as protectedReplacementAdvice, $t as ambientCredentialConfig, A as isQuotableImportValue, B as isTerminalDeleteFailure, Bn as plainOrDescribed, C as setBounded, D as VALUE_NOT_SHOWN, E as assertRegionMatch, F as resolveExplicitPhysicalId, Fn as commandHole, H as observeThenDisableProtection, In as hasClauseBreak, Kt as injectiveKey, L as ProtectionFlipRegistry, Ln as isInertUnquoted, M as quotedRemedyLogicalId, Mt as markCreatedBeforeFailure, N as refusalTypeShown, Nt as markSupersedesEarlierCreate, O as isPlainImportJson, P as remedyLogicalId, Q as pasteableAwsCommand, Qt as ambientClientDefaults, Rn as pasteableCommand, S as replayedSendWindow, St as withDerivedNameMasks, T as RESOURCE_NOT_FOUND, Tt as clearCreatedBeforeFailure, U as protectionFlipKey, Un as shellQuote, V as logGroupProtectionSite, W as rdsFamilyProtectionSite, Wn as withheldTargetClause, X as WITHHELD_AWS_COMMAND, Y as UNNAMEABLE_ID_CLAUSE, Yn as isNameCollisionError, Z as isAwsCliLiteral, Zt as withPasteableAwsProfile, _ as RecentIdSet, _r as isThrottlingError, _t as createMaskedLogSinks, a as onlySecretDerived, at as startInterruptWatch, b as isInsideWindow, br as wrapMaskedAwsError, bt as maskDeep, c as recordedPrincipalsRepair, ct as canonicalizeRoute53QueryName, dt as compositeIdSkipResult, en as clientDefaultsFor, er as markNameCollision, et as renderDisableCommand, fr as isRetryableTransientError, ft as logicalIdShown, g as AmbiguousCreateLatch, gr as isMarkedNonRetryable, gt as stateOrphanRecordRemedy, h as AMBIGUOUS_LATCH_TTL_MS, hr as THROTTLING_ERROR_NAMES, ht as segmentAfterAnchor, i as holdsSecretDerivedEntry, in as CdkdError, it as isInterruptedWaitError, j as normalizeAwsTagsToCfn, jt as markAuxiliaryFailure, k as isPlainImportValue, lr as isAmbiguousOutcomeError, lt as compositeIdFormatMessage, nn as AccountIdUnavailableError, nr as relayedNameCollision, o as readPrincipalLists, or as explicitDenyPolicyKind, ot as ElapsedBudgetRegistry, p as withRemovalDefaults, pr as isTransientServerError, pt as packCompositeId, q as userPoolProtectionSite, qt as injectiveKeyPrefix, r as SECRET_DERIVED_READ_LIVE, tn as credentialFingerprint, tr as markReplayMayCollide, u as clearOnUpdateRemoval, ur as isExplicitDenyError, ut as compositeIdSeparatorRefusal, v as ambiguousAttemptLead, vr as markNonRetryable, vt as createMaskedRetryLogger, w as withoutServerErrorRetries, x as replayFollowedAmbiguousAttempt, xn as ResourceUpdateNotSupportedError, xt as maskerOrIdentity, y as createAttemptKey, yn as ProvisioningError, yr as markRedactedCause, yt as isSecretDerivedValue, z as deleteWithProtectionCompensation } from "./iam-policy-targets-CmHNH1DY.js";
|
|
4
4
|
import { s as ambientRegion } from "./aws-client-defaults-DBXBcg0J.js";
|
|
5
|
-
import {
|
|
6
|
-
import { n as collectInlinePolicyNamesManagedBySiblings, r as IamCreateClientCache, t as IAMRoleProvider } from "./iam-role-provider-
|
|
7
|
-
import { a as resolveSecretDerivedPrincipals, i as isResolvableSecretPrincipalList, n as runDestroyForStack, o as canonicalizeIpProtocolValue, r as holdsUnprovenSecretPrincipalToken, s as resolvedResourceTimeoutMs, t as canonicalizeIpv4Cidr } from "./program-
|
|
8
|
-
import { RDSProvider } from "./rds-provider-
|
|
9
|
-
import { NeptuneProvider } from "./neptune-provider-
|
|
10
|
-
import { ASGProvider } from "./asg-provider-
|
|
5
|
+
import { Ar as markDeleteStarted, Bo as toCfnInteger, C as hasCdkAutoDeleteTag, Ci as s3BucketDomainName, Cr as reserveStackCreateToken, Cs as redactForState, Dt as withApiLimit, E as markRefusedBeforeApplying, Ei as s3BucketWebsiteUrl, Eo as findSilentDropProperties, Et as lookupEachName, F as findNestedTemplateTreeDefect, Fr as refuseMalformedDesiredTags, Go as configIntegerRefusal, Gr as waitForLambdaFunctionActive, Ho as coerceCfnBoolean, Hs as withoutPhysicalNameCopies, I as isAbsoluteAssetPath, Ir as tagMapAsList, Jo as replayWarn, Jt as redactedDeleteAddressFields, Ka as refuseMalformedNestedChildOutputs, Kl as canonicalizeRegion, Ko as configStringRefusal, Kt as REDACTED_DELETE_ADDRESS_SKIP_REASON, L as listNestedTemplateRows, Lo as WARM_THROUGHPUT_MEMBERS, Lr as tagPlanWarning, Mr as DBPROXY_TAG_OPTIONS, Nn as replacedDeleteFailureVerdict, Nr as planTagDiff, Oo as withoutSilentDropProperties, Os as hasMaskableValues, Pr as readTagList, Qs as recordAttributeIdCopy, R as renderNestedTemplateTreeDefect, Ro as coerceWarmThroughput$1, Rr as definedAttributes, S as S3_AUTO_DELETE_OBJECTS_TAG, Si as s3BucketArn, Ss as markSameGenerationBag, T as getPriorAttempts, Ti as s3BucketRegionalDomainName, Tr as acquireIdempotencyToken, Ts as snapshotPassProvenance, Tt as isAccessDeniedError, Ul as decodeListingKey, Uo as coerceCfnInteger, Vo as toFiniteNumber, Wc as rewriteTemplateAssetReferences, Wo as configBooleanRefusal, Ws as dynamicReferenceTokens, Wt as getCurrentProducerRegions, Xo as requireConfigObject, Xs as recoverMaskedOutput, Yo as requireConfigArray, Yr as getCurrentResourceSecrets, Yt as redactedDeleteAddressSkip, Zi as getAccountInfo, Zo as requireConfigString, Zs as physicalNameCopiesOf, _ as deleteTableWithIndexBusyRetry, _a as accountArgs, au as renderAssemblyPathEscape, b as waitForIndexesSettled, c as DynamoDBGlobalTableProvider, ci as withIndeterminateGuard, cr as secretNamedAttributeNamesOf, d as compensateRemovedDeletionProtection, f as deleteBudgetKey, fi as ec2InstanceProtectionSite, fo as refuseMalformedResourcesForDestroy, g as INDEX_SETTLE_POLL_INTERVAL_MS, gi as reEnableInstanceApiTermination, gs as passedNoEchoParametersOf, h as DELETE_INDEX_WAIT_PROCEED_NOTE, hi as reDisableInstanceApiTermination, is as sameLambdaFunctionAddress, iu as displayAssemblyPath, ji as outputReferenceProvenanceOf, jn as getStackRecords, jr as DBPROXY_TAGS_WHAT, kn as awaitInFlightSibling, kr as isRefusedByName, l as DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS, li as isWaitAbandonedError, lt as revertNestedChildFromJournal, m as resolveDynamoDbDeleteBudgetMs, mi as observeThenDisableInstanceApiTermination, mt as withNestedStackContext, ni as unchangedBehindSecretReference, ns as canonicalLambdaFunctionName, ot as getNestedRevertRun, ou as resolveAssemblyPath, p as resolveDynamoDbDeleteBudgetClock, pi as isTerminationProtectionPropagationError, pt as getCurrentNestedStackContext, ql as derivePartitionAndUrlSuffix, qo as readConfigString, qt as isRedactedRecordedValue, rs as lambdaFunctionNameForMask, ru as describeFileReadFailure, sa as parseWebACLArn, si as deleteSkipReason, t as DeployEngine, tc as carriesSecretMask, ti as slowCcOperationTimeoutMs, ts as withRetry, u as beginDeleteWait, ua as passedParameterClassesOf, ui as markWaitAbandoned, v as maskedLogger, w as isTruthyCfnBoolean, wi as s3BucketDualStackDomainName, wo as withheldAccountClause, ws as recordReferenceProvenanceEntry, wt as chunks, x as ECR_AUTO_DELETE_IMAGES_TAG, xi as isSettledInstanceState, xr as earliestDefined, y as relayedIndexBusyDelete, zc as stringifyValue, zo as isWarmThroughputDecrease, zr as stringifyIfAssigned } from "./deploy-engine-CYVt2NQR.js";
|
|
6
|
+
import { n as collectInlinePolicyNamesManagedBySiblings, r as IamCreateClientCache, t as IAMRoleProvider } from "./iam-role-provider-R1GC6KcT.js";
|
|
7
|
+
import { a as resolveSecretDerivedPrincipals, i as isResolvableSecretPrincipalList, n as runDestroyForStack, o as canonicalizeIpProtocolValue, r as holdsUnprovenSecretPrincipalToken, s as resolvedResourceTimeoutMs, t as canonicalizeIpv4Cidr } from "./program-CvRs5pV_.js";
|
|
8
|
+
import { RDSProvider } from "./rds-provider-CmKbYAvr.js";
|
|
9
|
+
import { NeptuneProvider } from "./neptune-provider-DzTl6-74.js";
|
|
10
|
+
import { ASGProvider } from "./asg-provider-BpRcm_UB.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, ListBucketsCommand, 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";
|
|
@@ -17,7 +17,7 @@ import { AddPermissionCommand, CreateEventSourceMappingCommand, CreateFunctionCo
|
|
|
17
17
|
import { GetCallerIdentityCommand, STSClient } from "@aws-sdk/client-sts";
|
|
18
18
|
import { AllocateAddressCommand, AssociateAddressCommand, AssociateIamInstanceProfileCommand, AssociateRouteTableCommand, AttachInternetGatewayCommand, AuthorizeSecurityGroupEgressCommand, AuthorizeSecurityGroupIngressCommand, CreateInternetGatewayCommand, CreateNatGatewayCommand, CreateNetworkAclCommand, CreateNetworkAclEntryCommand, CreateRouteCommand, CreateRouteTableCommand, CreateSecurityGroupCommand, CreateSubnetCommand, CreateTagsCommand, CreateVpcCommand, DeleteInternetGatewayCommand, DeleteNatGatewayCommand, DeleteNetworkAclCommand, DeleteNetworkAclEntryCommand, DeleteNetworkInterfaceCommand, DeleteRouteCommand, DeleteRouteTableCommand, DeleteSecurityGroupCommand, DeleteSubnetCommand, DeleteTagsCommand, DeleteVpcCommand, DescribeAddressesCommand, DescribeAvailabilityZonesCommand, DescribeIamInstanceProfileAssociationsCommand, DescribeInstanceAttributeCommand, DescribeInstanceCreditSpecificationsCommand, DescribeInstancesCommand, DescribeInternetGatewaysCommand, DescribeNatGatewaysCommand, DescribeNetworkAclsCommand, DescribeNetworkInterfacesCommand, DescribeRouteTablesCommand, DescribeSecurityGroupRulesCommand, DescribeSecurityGroupsCommand, DescribeSubnetsCommand, DescribeVolumesCommand, DescribeVpcAttributeCommand, DescribeVpcsCommand, DetachInternetGatewayCommand, DisassociateAddressCommand, DisassociateRouteTableCommand, EC2Client, ModifyInstanceAttributeCommand, ModifyInstanceCreditSpecificationCommand, ModifyInstanceMetadataOptionsCommand, ModifySubnetAttributeCommand, ModifyVpcAttributeCommand, MonitorInstancesCommand, ReleaseAddressCommand, ReplaceNetworkAclAssociationCommand, ReplaceNetworkAclEntryCommand, ReplaceRouteCommand, RevokeSecurityGroupEgressCommand, RevokeSecurityGroupIngressCommand, RunInstancesCommand, TerminateInstancesCommand, UnmonitorInstancesCommand, waitUntilInstanceRunning, waitUntilInstanceTerminated, waitUntilNatGatewayAvailable, waitUntilNatGatewayDeleted } from "@aws-sdk/client-ec2";
|
|
19
19
|
import { CreateTableCommand, DeleteResourcePolicyCommand, DeleteTableCommand, DescribeContinuousBackupsCommand, DescribeContributorInsightsCommand, DescribeKinesisStreamingDestinationCommand, DescribeTableCommand, DescribeTimeToLiveCommand, DisableKinesisStreamingDestinationCommand, DynamoDBClient, EnableKinesisStreamingDestinationCommand, GetResourcePolicyCommand, ListTagsOfResourceCommand, PolicyNotFoundException, PutResourcePolicyCommand, ResourceNotFoundException as ResourceNotFoundException$1, TagResourceCommand as TagResourceCommand$2, UntagResourceCommand as UntagResourceCommand$2, UpdateContinuousBackupsCommand, UpdateContributorInsightsCommand, UpdateTableCommand, UpdateTimeToLiveCommand } from "@aws-sdk/client-dynamodb";
|
|
20
|
-
import { APIGatewayClient, CreateAuthorizerCommand, CreateDeploymentCommand, CreateResourceCommand, CreateStageCommand, DeleteAuthorizerCommand, DeleteDeploymentCommand, DeleteMethodCommand, DeleteResourceCommand, DeleteStageCommand, GetAccountCommand, GetAuthorizerCommand, GetAuthorizersCommand, GetDeploymentCommand, GetDeploymentsCommand, GetMethodCommand, GetResourceCommand, GetStageCommand, NotFoundException as NotFoundException$1, PutIntegrationCommand, PutIntegrationResponseCommand, PutMethodCommand, PutMethodResponseCommand, TagResourceCommand as TagResourceCommand$3, UntagResourceCommand as UntagResourceCommand$3, UpdateAccountCommand, UpdateAuthorizerCommand, UpdateMethodCommand, UpdateStageCommand } from "@aws-sdk/client-api-gateway";
|
|
20
|
+
import { APIGatewayClient, CreateAuthorizerCommand, CreateDeploymentCommand, CreateResourceCommand, CreateStageCommand, DeleteAuthorizerCommand, DeleteDeploymentCommand, DeleteIntegrationCommand, DeleteIntegrationResponseCommand, DeleteMethodCommand, DeleteMethodResponseCommand, DeleteResourceCommand, DeleteStageCommand, GetAccountCommand, GetAuthorizerCommand, GetAuthorizersCommand, GetDeploymentCommand, GetDeploymentsCommand, GetMethodCommand, GetResourceCommand, GetStageCommand, NotFoundException as NotFoundException$1, PutIntegrationCommand, PutIntegrationResponseCommand, PutMethodCommand, PutMethodResponseCommand, TagResourceCommand as TagResourceCommand$3, UntagResourceCommand as UntagResourceCommand$3, UpdateAccountCommand, UpdateAuthorizerCommand, UpdateMethodCommand, UpdateStageCommand } from "@aws-sdk/client-api-gateway";
|
|
21
21
|
import { CreateEventBusCommand, DeleteEventBusCommand, DeleteRuleCommand, DescribeEventBusCommand, DescribeRuleCommand, EventBridgeClient, ListRulesCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$1, ListTargetsByRuleCommand, PutPermissionCommand, PutRuleCommand, PutTargetsCommand, RemoveTargetsCommand, ResourceNotFoundException as ResourceNotFoundException$2, TagResourceCommand as TagResourceCommand$4, UntagResourceCommand as UntagResourceCommand$4, UpdateEventBusCommand } from "@aws-sdk/client-eventbridge";
|
|
22
22
|
import { CreateSecretCommand, DeleteSecretCommand, DescribeSecretCommand, RemoveRegionsFromReplicationCommand, ReplicateSecretToRegionsCommand, ResourceNotFoundException as ResourceNotFoundException$3, SecretsManagerClient, TagResourceCommand as TagResourceCommand$5, UntagResourceCommand as UntagResourceCommand$5, UpdateSecretCommand } from "@aws-sdk/client-secrets-manager";
|
|
23
23
|
import { AddTagsToResourceCommand, DeleteParameterCommand, DescribeParametersCommand, GetParameterCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$2, ParameterNotFound, PutParameterCommand, RemoveTagsFromResourceCommand, SSMClient } from "@aws-sdk/client-ssm";
|
|
@@ -39,7 +39,7 @@ import { CreateRepositoryCommand, DeleteLifecyclePolicyCommand, DeleteRepository
|
|
|
39
39
|
import { isDeepStrictEqual } from "node:util";
|
|
40
40
|
import { AddTagsToResourceCommand as AddTagsToResourceCommand$2, CreateDBProxyCommand, CreateDBProxyEndpointCommand, DBProxyEndpointNotFoundFault, DBProxyNotFoundFault, DBProxyTargetGroupNotFoundFault, DBProxyTargetNotFoundFault, DeleteDBProxyCommand, DeleteDBProxyEndpointCommand, DeregisterDBProxyTargetsCommand, DescribeDBProxiesCommand, DescribeDBProxyEndpointsCommand, DescribeDBProxyTargetGroupsCommand, DescribeDBProxyTargetsCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$10, ModifyDBProxyCommand, ModifyDBProxyEndpointCommand, ModifyDBProxyTargetGroupCommand, RDSClient, RegisterDBProxyTargetsCommand, RemoveTagsFromResourceCommand as RemoveTagsFromResourceCommand$2 } from "@aws-sdk/client-rds";
|
|
41
41
|
import * as zlib from "node:zlib";
|
|
42
|
-
import { ApiGatewayV2Client, CreateApiCommand, CreateAuthorizerCommand as CreateAuthorizerCommand$1, CreateIntegrationCommand, CreateRouteCommand as CreateRouteCommand$1, CreateStageCommand as CreateStageCommand$1, DeleteAccessLogSettingsCommand, DeleteApiCommand, DeleteAuthorizerCommand as DeleteAuthorizerCommand$1, DeleteCorsConfigurationCommand, DeleteIntegrationCommand, DeleteRouteCommand as DeleteRouteCommand$1, DeleteRouteRequestParameterCommand, DeleteRouteSettingsCommand, DeleteStageCommand as DeleteStageCommand$1, GetApiCommand, GetApisCommand, GetAuthorizerCommand as GetAuthorizerCommand$1, GetAuthorizersCommand as GetAuthorizersCommand$1, GetIntegrationCommand, GetIntegrationsCommand, GetRouteCommand, GetStageCommand as GetStageCommand$1, NotFoundException as NotFoundException$3, UpdateApiCommand, UpdateAuthorizerCommand as UpdateAuthorizerCommand$1, UpdateIntegrationCommand, UpdateRouteCommand, UpdateStageCommand as UpdateStageCommand$1 } from "@aws-sdk/client-apigatewayv2";
|
|
42
|
+
import { ApiGatewayV2Client, CreateApiCommand, CreateAuthorizerCommand as CreateAuthorizerCommand$1, CreateIntegrationCommand, CreateRouteCommand as CreateRouteCommand$1, CreateStageCommand as CreateStageCommand$1, DeleteAccessLogSettingsCommand, DeleteApiCommand, DeleteAuthorizerCommand as DeleteAuthorizerCommand$1, DeleteCorsConfigurationCommand, DeleteIntegrationCommand as DeleteIntegrationCommand$1, DeleteRouteCommand as DeleteRouteCommand$1, DeleteRouteRequestParameterCommand, DeleteRouteSettingsCommand, DeleteStageCommand as DeleteStageCommand$1, GetApiCommand, GetApisCommand, GetAuthorizerCommand as GetAuthorizerCommand$1, GetAuthorizersCommand as GetAuthorizersCommand$1, GetIntegrationCommand, GetIntegrationsCommand, GetRouteCommand, GetStageCommand as GetStageCommand$1, NotFoundException as NotFoundException$3, UpdateApiCommand, UpdateAuthorizerCommand as UpdateAuthorizerCommand$1, UpdateIntegrationCommand, UpdateRouteCommand, UpdateStageCommand as UpdateStageCommand$1 } from "@aws-sdk/client-apigatewayv2";
|
|
43
43
|
import { CreateStateMachineCommand, DeleteStateMachineCommand, DescribeStateMachineCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$11, SFNClient, StateMachineDoesNotExist, TagResourceCommand as TagResourceCommand$13, UntagResourceCommand as UntagResourceCommand$13, UpdateStateMachineCommand } from "@aws-sdk/client-sfn";
|
|
44
44
|
import { CreateClusterCommand, CreateServiceCommand, DeleteClusterCommand, DeleteServiceCommand, DeregisterTaskDefinitionCommand, DescribeClustersCommand, DescribeServicesCommand, DescribeTaskDefinitionCommand, ECSClient, ListTaskDefinitionsCommand, PutClusterCapacityProvidersCommand, RegisterTaskDefinitionCommand, TagResourceCommand as TagResourceCommand$14, UntagResourceCommand as UntagResourceCommand$14, UpdateClusterCommand, UpdateServiceCommand, waitUntilServicesStable } from "@aws-sdk/client-ecs";
|
|
45
45
|
import { AddTagsToResourceCommand as AddTagsToResourceCommand$3, CreateDBClusterCommand as CreateDBClusterCommand$1, CreateDBInstanceCommand as CreateDBInstanceCommand$1, CreateDBSubnetGroupCommand as CreateDBSubnetGroupCommand$1, DeleteDBClusterCommand as DeleteDBClusterCommand$1, DeleteDBInstanceCommand as DeleteDBInstanceCommand$1, DeleteDBSubnetGroupCommand as DeleteDBSubnetGroupCommand$1, DescribeDBClustersCommand as DescribeDBClustersCommand$1, DescribeDBInstancesCommand as DescribeDBInstancesCommand$1, DescribeDBSubnetGroupsCommand as DescribeDBSubnetGroupsCommand$1, DocDBClient, ListTagsForResourceCommand as ListTagsForResourceCommand$12, ModifyDBClusterCommand as ModifyDBClusterCommand$1, ModifyDBInstanceCommand as ModifyDBInstanceCommand$1, ModifyDBSubnetGroupCommand as ModifyDBSubnetGroupCommand$1, RemoveTagsFromResourceCommand as RemoveTagsFromResourceCommand$3 } from "@aws-sdk/client-docdb";
|
|
@@ -133,7 +133,7 @@ var IAMPolicyProvider = class {
|
|
|
133
133
|
const log = createMaskedLogSinks(this.logger, context?.maskSecrets);
|
|
134
134
|
const { value: v } = log;
|
|
135
135
|
log.debug(`Creating IAM policy ${logicalId}`);
|
|
136
|
-
const policyName = properties["PolicyName"] ||
|
|
136
|
+
const policyName = properties["PolicyName"] || generatedNameFor("AWS::IAM::Policy", logicalId);
|
|
137
137
|
const policyDocument = properties["PolicyDocument"];
|
|
138
138
|
const targets = readPolicyTargetLists(properties);
|
|
139
139
|
if ("malformed" in targets) throw new ProvisioningError(`${targets.malformed.join(" / ")} of IAM policy ${logicalId} is not a list of IAM names — no inline policy was attached`, resourceType, logicalId);
|
|
@@ -239,7 +239,15 @@ var IAMPolicyProvider = class {
|
|
|
239
239
|
const log = withDerivedNameMasks(this.logger, createMaskedLogSinks(this.logger, context?.maskSecrets), [[previousProperties["PolicyName"], oldPolicyName]]);
|
|
240
240
|
const { value: v } = log;
|
|
241
241
|
log.debug(`Updating IAM policy ${logicalId}: ${v(physicalId)}`);
|
|
242
|
-
const
|
|
242
|
+
const derivedPolicyName = properties["PolicyName"] || generatedNameFor("AWS::IAM::Policy", logicalId);
|
|
243
|
+
const newPolicyName = oldPolicyName !== void 0 && recordedGeneratedNameKept({
|
|
244
|
+
recorded: oldPolicyName,
|
|
245
|
+
derived: derivedPolicyName,
|
|
246
|
+
declaredName: properties["PolicyName"],
|
|
247
|
+
previousDeclaredName: previousProperties["PolicyName"],
|
|
248
|
+
logicalId,
|
|
249
|
+
options: { maxLength: 64 }
|
|
250
|
+
}) ? oldPolicyName : derivedPolicyName;
|
|
243
251
|
const recordedPolicyName = previousProperties["PolicyName"];
|
|
244
252
|
const oldPolicyNames = [...new Set([oldPolicyName, recordedPolicyName].filter((name) => typeof name === "string" && IAM_POLICY_NAME.test(name)))];
|
|
245
253
|
const newTargets = readPolicyTargetLists(properties);
|
|
@@ -675,7 +683,16 @@ var IAMManagedPolicyProvider = class {
|
|
|
675
683
|
log.debug(`Updating IAM managed policy ${logicalId}: ${v(physicalId)}`);
|
|
676
684
|
const revertKeepsName = context?.desiredFromAwsReadback === true && derivedPolicyName !== oldPolicyName;
|
|
677
685
|
if (revertKeepsName) log.warn(`IAM managed policy ${logicalId}: ManagedPolicyName is not reverted — the policy ${v(oldPolicyName)} keeps its name (the reverted properties derive ${v(derivedPolicyName)}), since a drift revert never replaces a policy. 'cdkd drift' keeps reporting the name until 'cdkd drift --accept' records the live one; only a deploy renames the policy.`);
|
|
678
|
-
const
|
|
686
|
+
const generatedNameKept = recordedGeneratedNameKept({
|
|
687
|
+
recorded: oldPolicyName,
|
|
688
|
+
derived: derivedPolicyName,
|
|
689
|
+
declaredName: properties["ManagedPolicyName"],
|
|
690
|
+
previousDeclaredName: previousProperties["ManagedPolicyName"],
|
|
691
|
+
logicalId,
|
|
692
|
+
options: { maxLength: 128 }
|
|
693
|
+
});
|
|
694
|
+
if (generatedNameKept) log.debug(`IAM managed policy ${logicalId}: keeping its generated name ${v(oldPolicyName)} (the template names no policy)`);
|
|
695
|
+
const newPolicyName = revertKeepsName || generatedNameKept ? oldPolicyName : derivedPolicyName;
|
|
679
696
|
const newPrincipals = principalsOf(properties);
|
|
680
697
|
const oldPrincipals = principalsOf(previousProperties);
|
|
681
698
|
const liveKinds = !("malformed" in newPrincipals) && onlySecretDerived(oldPrincipals) ? oldPrincipals.malformed : [];
|
|
@@ -5403,11 +5420,7 @@ var S3BucketProvider = class S3BucketProvider {
|
|
|
5403
5420
|
}
|
|
5404
5421
|
generatedCreateName(_resourceType, logicalId, properties) {
|
|
5405
5422
|
if (properties["BucketName"]) return void 0;
|
|
5406
|
-
return
|
|
5407
|
-
maxLength: 63,
|
|
5408
|
-
lowercase: true,
|
|
5409
|
-
allowedPattern: /[^a-z0-9.-]/g
|
|
5410
|
-
});
|
|
5423
|
+
return generatedNameFor("AWS::S3::Bucket", logicalId);
|
|
5411
5424
|
}
|
|
5412
5425
|
async import(input) {
|
|
5413
5426
|
const explicit = resolveExplicitPhysicalId(input, "BucketName");
|
|
@@ -5754,7 +5767,7 @@ var SQSQueueProvider = class {
|
|
|
5754
5767
|
}
|
|
5755
5768
|
generatedCreateName(_resourceType, logicalId, properties) {
|
|
5756
5769
|
if (properties["QueueName"]) return void 0;
|
|
5757
|
-
return
|
|
5770
|
+
return generatedNameFor("AWS::SQS::Queue", logicalId);
|
|
5758
5771
|
}
|
|
5759
5772
|
async holderCreatedAt(_resourceType, physicalId) {
|
|
5760
5773
|
const resp = await this.sqsClient.send(new GetQueueAttributesCommand({
|
|
@@ -5835,7 +5848,7 @@ var SQSQueueProvider = class {
|
|
|
5835
5848
|
QueueUrl: physicalId,
|
|
5836
5849
|
AttributeNames: ["QueueArn"]
|
|
5837
5850
|
}));
|
|
5838
|
-
const queueName = properties["QueueName"] ||
|
|
5851
|
+
const queueName = properties["QueueName"] || physicalId.split("/").pop() || generatedNameFor("AWS::SQS::Queue", logicalId);
|
|
5839
5852
|
return {
|
|
5840
5853
|
physicalId,
|
|
5841
5854
|
wasReplaced: false,
|
|
@@ -6845,7 +6858,7 @@ var SNSTopicProvider = class {
|
|
|
6845
6858
|
}
|
|
6846
6859
|
generatedCreateName(_resourceType, logicalId, properties) {
|
|
6847
6860
|
if (properties["TopicName"]) return void 0;
|
|
6848
|
-
return
|
|
6861
|
+
return generatedNameFor("AWS::SNS::Topic", logicalId);
|
|
6849
6862
|
}
|
|
6850
6863
|
async import(input) {
|
|
6851
6864
|
if (input.knownPhysicalId) try {
|
|
@@ -7837,7 +7850,7 @@ var LambdaFunctionProvider = class {
|
|
|
7837
7850
|
this.ec2Client = awsClients.ec2;
|
|
7838
7851
|
}
|
|
7839
7852
|
async create(logicalId, resourceType, properties, context) {
|
|
7840
|
-
const functionName = properties["FunctionName"] ||
|
|
7853
|
+
const functionName = properties["FunctionName"] || generatedNameFor("AWS::Lambda::Function", logicalId);
|
|
7841
7854
|
const log = lambdaOperationSinks(this.logger, context?.maskSecrets, [[properties["FunctionName"], functionName]], properties);
|
|
7842
7855
|
log.debug(`Creating Lambda function ${logicalId}`);
|
|
7843
7856
|
const desiredTags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
|
|
@@ -8596,13 +8609,7 @@ var LambdaPermissionProvider = class {
|
|
|
8596
8609
|
if (!action) throw new ProvisioningError(`Action is required for Lambda permission ${logicalId}`, resourceType, logicalId);
|
|
8597
8610
|
const principal = properties["Principal"];
|
|
8598
8611
|
if (!principal) throw new ProvisioningError(`Principal is required for Lambda permission ${logicalId}`, resourceType, logicalId);
|
|
8599
|
-
|
|
8600
|
-
if (statementId.length > 100) {
|
|
8601
|
-
let hashNum = 0;
|
|
8602
|
-
for (let i = 0; i < logicalId.length; i++) hashNum = (hashNum << 5) - hashNum + logicalId.charCodeAt(i) | 0;
|
|
8603
|
-
const hash = Math.abs(hashNum).toString(16).padStart(8, "0").substring(0, 8);
|
|
8604
|
-
statementId = `${statementId.substring(0, 91)}-${hash}`;
|
|
8605
|
-
}
|
|
8612
|
+
const statementId = permissionStatementId(logicalId);
|
|
8606
8613
|
try {
|
|
8607
8614
|
const addParams = {
|
|
8608
8615
|
FunctionName: functionName,
|
|
@@ -8768,6 +8775,20 @@ var LambdaPermissionProvider = class {
|
|
|
8768
8775
|
return null;
|
|
8769
8776
|
}
|
|
8770
8777
|
};
|
|
8778
|
+
function permissionStatementId(logicalId) {
|
|
8779
|
+
if (getCurrentStackInstanceId() !== void 0 || isBeforeStateRead()) return generateResourceName(logicalId, {
|
|
8780
|
+
maxLength: 100,
|
|
8781
|
+
allowedPattern: /[^a-zA-Z0-9_-]/g
|
|
8782
|
+
});
|
|
8783
|
+
let statementId = logicalId.replace(/[^a-zA-Z0-9_-]/g, "");
|
|
8784
|
+
if (statementId.length > 100) {
|
|
8785
|
+
let hashNum = 0;
|
|
8786
|
+
for (let i = 0; i < logicalId.length; i++) hashNum = (hashNum << 5) - hashNum + logicalId.charCodeAt(i) | 0;
|
|
8787
|
+
const hash = Math.abs(hashNum).toString(16).padStart(8, "0").substring(0, 8);
|
|
8788
|
+
statementId = `${statementId.substring(0, 91)}-${hash}`;
|
|
8789
|
+
}
|
|
8790
|
+
return statementId;
|
|
8791
|
+
}
|
|
8771
8792
|
|
|
8772
8793
|
//#endregion
|
|
8773
8794
|
//#region src/provisioning/providers/lambda-url-provider.ts
|
|
@@ -9576,7 +9597,7 @@ var LambdaLayerVersionProvider = class {
|
|
|
9576
9597
|
});
|
|
9577
9598
|
}
|
|
9578
9599
|
async create(logicalId, resourceType, properties, context) {
|
|
9579
|
-
const layerName = properties["LayerName"] ||
|
|
9600
|
+
const layerName = properties["LayerName"] || generatedNameFor("AWS::Lambda::LayerVersion", logicalId);
|
|
9580
9601
|
const log = withDerivedNameMasks(this.logger, createMaskedLogSinks(this.logger, context?.maskSecrets), [[properties["LayerName"], layerName], [properties["LayerName"], layerNameSegment(layerName)]]);
|
|
9581
9602
|
log.debug(`Creating Lambda layer version ${logicalId}`);
|
|
9582
9603
|
const content = properties["Content"];
|
|
@@ -11080,7 +11101,7 @@ var LambdaNetworkConnectorProvider = class {
|
|
|
11080
11101
|
async create(logicalId, resourceType, properties, context) {
|
|
11081
11102
|
this.logger.debug(safeMsg`Creating Lambda network connector ${logicalId}`);
|
|
11082
11103
|
const tagList = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
|
|
11083
|
-
const name = typeof properties["Name"] === "string" && properties["Name"] !== "" ? properties["Name"] :
|
|
11104
|
+
const name = typeof properties["Name"] === "string" && properties["Name"] !== "" ? properties["Name"] : generatedNameFor("AWS::Lambda::NetworkConnector", logicalId);
|
|
11084
11105
|
const vpc = this.readVpcEgress(properties, logicalId, resourceType, void 0);
|
|
11085
11106
|
const createToken = acquireIdempotencyToken({
|
|
11086
11107
|
scope: "CreateNetworkConnector",
|
|
@@ -11964,6 +11985,10 @@ const deleteTableRetryDelays = {};
|
|
|
11964
11985
|
function maskLeafValue(value, maskSecrets) {
|
|
11965
11986
|
return maskDeep(value, maskSecrets);
|
|
11966
11987
|
}
|
|
11988
|
+
const tableNameReleaseWait = {
|
|
11989
|
+
maxPolls: 600,
|
|
11990
|
+
intervalMs: INDEX_SETTLE_POLL_INTERVAL_MS
|
|
11991
|
+
};
|
|
11967
11992
|
var DynamoDBTableProvider = class {
|
|
11968
11993
|
dynamoDBClient;
|
|
11969
11994
|
createClient;
|
|
@@ -12024,7 +12049,7 @@ var DynamoDBTableProvider = class {
|
|
|
12024
12049
|
const debug = (message) => this.logger.debug(maskSecrets(message));
|
|
12025
12050
|
this.logger.debug(`Creating DynamoDB table ${logicalId}`);
|
|
12026
12051
|
const desiredTags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
|
|
12027
|
-
const tableName = properties["TableName"] ||
|
|
12052
|
+
const tableName = properties["TableName"] || generatedNameFor("AWS::DynamoDB::Table", logicalId);
|
|
12028
12053
|
const keySchema = properties["KeySchema"];
|
|
12029
12054
|
const attributeDefinitions = properties["AttributeDefinitions"];
|
|
12030
12055
|
if (!keySchema) throw new ProvisioningError(`KeySchema is required for DynamoDB table ${logicalId}`, resourceType, logicalId);
|
|
@@ -12372,6 +12397,22 @@ var DynamoDBTableProvider = class {
|
|
|
12372
12397
|
throw this.wrapCaughtError(maskSecrets, error, (text) => new ProvisioningError(`Failed to update DynamoDB table ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
|
|
12373
12398
|
}
|
|
12374
12399
|
}
|
|
12400
|
+
async waitForNameReleased(logicalId, physicalId, _resourceType, context) {
|
|
12401
|
+
const mask = context.maskSecrets ?? ((text) => text);
|
|
12402
|
+
this.logger.info(mask(` Waiting for the deleted DynamoDB table ${physicalId} to release its name...`));
|
|
12403
|
+
for (let poll = 0; poll < tableNameReleaseWait.maxPolls; poll++) {
|
|
12404
|
+
if (context.isInterrupted()) return;
|
|
12405
|
+
try {
|
|
12406
|
+
await this.dynamoDBClient.send(new DescribeTableCommand({ TableName: physicalId }));
|
|
12407
|
+
} catch (error) {
|
|
12408
|
+
if (error instanceof ResourceNotFoundException$1) return;
|
|
12409
|
+
this.logger.debug(mask(`DynamoDB table ${logicalId}: name-release check failed: ${describeAwsFailure(error).detail}`));
|
|
12410
|
+
if (!isThrottlingError(error) && !isTransientServerError(error)) return;
|
|
12411
|
+
}
|
|
12412
|
+
await new Promise((resolve) => setTimeout(resolve, tableNameReleaseWait.intervalMs));
|
|
12413
|
+
}
|
|
12414
|
+
this.logger.debug(mask(`DynamoDB table ${logicalId} (${physicalId}) still held its name after the wait`));
|
|
12415
|
+
}
|
|
12375
12416
|
async delete(logicalId, physicalId, resourceType, _properties, context) {
|
|
12376
12417
|
const flip = this.protectionFlips.acquire(deleteBudgetKey(physicalId, context?.expectedRegion), DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS, resolveDynamoDbDeleteBudgetClock());
|
|
12377
12418
|
try {
|
|
@@ -13433,10 +13474,7 @@ var LogsLogGroupProvider = class {
|
|
|
13433
13474
|
}
|
|
13434
13475
|
generatedCreateName(_resourceType, logicalId, properties) {
|
|
13435
13476
|
if (properties["LogGroupName"]) return void 0;
|
|
13436
|
-
return
|
|
13437
|
-
maxLength: 506,
|
|
13438
|
-
allowedPattern: /[^a-zA-Z0-9-/_]/g
|
|
13439
|
-
})}`;
|
|
13477
|
+
return generatedNameFor("AWS::Logs::LogGroup", logicalId);
|
|
13440
13478
|
}
|
|
13441
13479
|
async holderCreatedAt(_resourceType, physicalId) {
|
|
13442
13480
|
const group = (await this.logsClient.send(new DescribeLogGroupsCommand({ logGroupNamePrefix: physicalId }))).logGroups?.find((g) => g.logGroupName === physicalId);
|
|
@@ -14127,7 +14165,7 @@ var CloudWatchAlarmProvider = class {
|
|
|
14127
14165
|
}
|
|
14128
14166
|
generatedCreateName(_resourceType, logicalId, properties) {
|
|
14129
14167
|
if (properties["AlarmName"]) return void 0;
|
|
14130
|
-
return
|
|
14168
|
+
return generatedNameFor("AWS::CloudWatch::Alarm", logicalId);
|
|
14131
14169
|
}
|
|
14132
14170
|
async lookupNames(_resourceType, names) {
|
|
14133
14171
|
const wanted = new Set(names);
|
|
@@ -14446,10 +14484,7 @@ var SecretsManagerSecretProvider = class {
|
|
|
14446
14484
|
const { value: v } = log;
|
|
14447
14485
|
log.debug(`Creating secret ${logicalId}`);
|
|
14448
14486
|
const desiredTags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
|
|
14449
|
-
const name = properties["Name"] ||
|
|
14450
|
-
maxLength: 512,
|
|
14451
|
-
allowedPattern: /[^a-zA-Z0-9-/_]/g
|
|
14452
|
-
});
|
|
14487
|
+
const name = properties["Name"] || generatedNameFor("AWS::SecretsManager::Secret", logicalId);
|
|
14453
14488
|
try {
|
|
14454
14489
|
let secretString;
|
|
14455
14490
|
const rawGenerate = properties["GenerateSecretString"];
|
|
@@ -14800,10 +14835,7 @@ var SSMParameterProvider = class SSMParameterProvider {
|
|
|
14800
14835
|
const ssmTags = SSMParameterProvider.desiredSsmTags(properties["Tags"], resourceType, logicalId);
|
|
14801
14836
|
const debug = (message) => this.logger.debug(mask(message));
|
|
14802
14837
|
debug(`Creating SSM parameter ${displaySafe(logicalId)}`);
|
|
14803
|
-
const name = properties["Name"] ||
|
|
14804
|
-
maxLength: 1023,
|
|
14805
|
-
allowedPattern: /[^a-zA-Z0-9-/_]/g
|
|
14806
|
-
})}`;
|
|
14838
|
+
const name = properties["Name"] || generatedNameFor("AWS::SSM::Parameter", logicalId);
|
|
14807
14839
|
const type = properties["Type"] || "String";
|
|
14808
14840
|
const value = properties["Value"];
|
|
14809
14841
|
if (!value) throw new ProvisioningError(`Value is required for SSM parameter ${displaySafe(logicalId)}`, resourceType, logicalId);
|
|
@@ -15191,7 +15223,8 @@ var EventBridgeRuleProvider = class {
|
|
|
15191
15223
|
this.logger.debug(`Updating EventBridge rule ${logicalId}: ${physicalId}`);
|
|
15192
15224
|
assertRegionMatch(context?.expectedRegion ? await this.eventBridgeClient.config.region() : void 0, context?.expectedRegion, resourceType, logicalId, physicalId, "pre-update");
|
|
15193
15225
|
refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId, physicalId);
|
|
15194
|
-
const
|
|
15226
|
+
const recordedRuleName = physicalId.split("/").pop() ?? "";
|
|
15227
|
+
const ruleName = properties["Name"] || recordedRuleName || generatedNameFor("AWS::Events::Rule", logicalId);
|
|
15195
15228
|
const newTargets = properties["Targets"];
|
|
15196
15229
|
const oldTargets = previousProperties["Targets"];
|
|
15197
15230
|
try {
|
|
@@ -15354,7 +15387,7 @@ var EventBridgeRuleProvider = class {
|
|
|
15354
15387
|
}
|
|
15355
15388
|
generatedCreateName(_resourceType, logicalId, properties) {
|
|
15356
15389
|
if (properties["Name"]) return void 0;
|
|
15357
|
-
return
|
|
15390
|
+
return generatedNameFor("AWS::Events::Rule", logicalId);
|
|
15358
15391
|
}
|
|
15359
15392
|
lookupNeedsResolvedProperties(_resourceType, properties) {
|
|
15360
15393
|
const bus = properties["EventBusName"];
|
|
@@ -17289,7 +17322,7 @@ var EC2Provider = class {
|
|
|
17289
17322
|
try {
|
|
17290
17323
|
const createClient = await this.getCreateClient();
|
|
17291
17324
|
const { response, tagsApplied } = await this.sendTaggedCreate(logicalId, "security-group", desiredTags, (TagSpecifications) => createClient.send(new CreateSecurityGroupCommand({
|
|
17292
|
-
GroupName: properties["GroupName"] ?? logicalId,
|
|
17325
|
+
GroupName: properties["GroupName"] ?? generatedNameFor("AWS::EC2::SecurityGroup", logicalId),
|
|
17293
17326
|
Description: groupDescription,
|
|
17294
17327
|
VpcId: properties["VpcId"] ?? void 0,
|
|
17295
17328
|
...TagSpecifications && { TagSpecifications }
|
|
@@ -20330,53 +20363,24 @@ var ApiGatewayProvider = class ApiGatewayProvider {
|
|
|
20330
20363
|
}));
|
|
20331
20364
|
try {
|
|
20332
20365
|
const integration = properties["Integration"];
|
|
20333
|
-
if (integration) await this.apiGatewayClient.send(new PutIntegrationCommand({
|
|
20366
|
+
if (integration) await this.apiGatewayClient.send(new PutIntegrationCommand(putIntegrationInput({
|
|
20334
20367
|
restApiId,
|
|
20335
20368
|
resourceId,
|
|
20336
|
-
httpMethod
|
|
20337
|
-
|
|
20338
|
-
integrationHttpMethod: integration["IntegrationHttpMethod"],
|
|
20339
|
-
uri: integration["Uri"],
|
|
20340
|
-
connectionType: integration["ConnectionType"],
|
|
20341
|
-
connectionId: integration["ConnectionId"],
|
|
20342
|
-
credentials: integration["Credentials"],
|
|
20343
|
-
requestParameters: integration["RequestParameters"],
|
|
20344
|
-
requestTemplates: integration["RequestTemplates"],
|
|
20345
|
-
passthroughBehavior: integration["PassthroughBehavior"],
|
|
20346
|
-
contentHandling: integration["ContentHandling"],
|
|
20347
|
-
timeoutInMillis: integration["TimeoutInMillis"],
|
|
20348
|
-
cacheNamespace: integration["CacheNamespace"],
|
|
20349
|
-
cacheKeyParameters: integration["CacheKeyParameters"],
|
|
20350
|
-
tlsConfig: integration["TlsConfig"] ? { insecureSkipVerification: integration["TlsConfig"]["InsecureSkipVerification"] } : void 0,
|
|
20351
|
-
responseTransferMode: integration["ResponseTransferMode"]
|
|
20352
|
-
}));
|
|
20369
|
+
httpMethod
|
|
20370
|
+
}, integration)));
|
|
20353
20371
|
const methodResponses = properties["MethodResponses"];
|
|
20354
|
-
if (methodResponses) for (const resp of methodResponses) {
|
|
20355
|
-
|
|
20356
|
-
|
|
20357
|
-
|
|
20358
|
-
|
|
20359
|
-
httpMethod,
|
|
20360
|
-
statusCode,
|
|
20361
|
-
responseModels: resp["ResponseModels"],
|
|
20362
|
-
responseParameters: resp["ResponseParameters"]
|
|
20363
|
-
}));
|
|
20364
|
-
}
|
|
20372
|
+
if (methodResponses) for (const resp of methodResponses) await this.apiGatewayClient.send(new PutMethodResponseCommand(putMethodResponseInput({
|
|
20373
|
+
restApiId,
|
|
20374
|
+
resourceId,
|
|
20375
|
+
httpMethod
|
|
20376
|
+
}, resp)));
|
|
20365
20377
|
if (integration) {
|
|
20366
20378
|
const integrationResponses = integration["IntegrationResponses"];
|
|
20367
|
-
if (integrationResponses) for (const ir of integrationResponses) {
|
|
20368
|
-
|
|
20369
|
-
|
|
20370
|
-
|
|
20371
|
-
|
|
20372
|
-
httpMethod,
|
|
20373
|
-
statusCode,
|
|
20374
|
-
selectionPattern: ir["SelectionPattern"],
|
|
20375
|
-
responseParameters: ir["ResponseParameters"],
|
|
20376
|
-
responseTemplates: ir["ResponseTemplates"],
|
|
20377
|
-
contentHandling: ir["ContentHandling"]
|
|
20378
|
-
}));
|
|
20379
|
-
}
|
|
20379
|
+
if (integrationResponses) for (const ir of integrationResponses) await this.apiGatewayClient.send(new PutIntegrationResponseCommand(putIntegrationResponseInput({
|
|
20380
|
+
restApiId,
|
|
20381
|
+
resourceId,
|
|
20382
|
+
httpMethod
|
|
20383
|
+
}, ir)));
|
|
20380
20384
|
}
|
|
20381
20385
|
} catch (innerError) {
|
|
20382
20386
|
try {
|
|
@@ -20449,7 +20453,12 @@ var ApiGatewayProvider = class ApiGatewayProvider {
|
|
|
20449
20453
|
path: "/authorizationScopes",
|
|
20450
20454
|
value: (newScopes ?? []).join(",")
|
|
20451
20455
|
});
|
|
20452
|
-
|
|
20456
|
+
const childCalls = methodChildCalls({
|
|
20457
|
+
restApiId,
|
|
20458
|
+
resourceId,
|
|
20459
|
+
httpMethod
|
|
20460
|
+
}, properties, previousProperties);
|
|
20461
|
+
if (patchOperations.length === 0 && childCalls.length === 0) {
|
|
20453
20462
|
log.debug(`No changes detected for API Gateway Method ${logicalId}`);
|
|
20454
20463
|
return {
|
|
20455
20464
|
physicalId,
|
|
@@ -20457,13 +20466,18 @@ var ApiGatewayProvider = class ApiGatewayProvider {
|
|
|
20457
20466
|
};
|
|
20458
20467
|
}
|
|
20459
20468
|
try {
|
|
20460
|
-
await this.apiGatewayClient.send(new UpdateMethodCommand({
|
|
20469
|
+
if (patchOperations.length > 0) await this.apiGatewayClient.send(new UpdateMethodCommand({
|
|
20461
20470
|
restApiId,
|
|
20462
20471
|
resourceId,
|
|
20463
20472
|
httpMethod,
|
|
20464
20473
|
patchOperations
|
|
20465
20474
|
}));
|
|
20466
|
-
|
|
20475
|
+
for (const call of childCalls) try {
|
|
20476
|
+
await this.apiGatewayClient.send(call.command);
|
|
20477
|
+
} catch (error) {
|
|
20478
|
+
if (!(call.kind === "delete" && error instanceof NotFoundException$1)) throw error;
|
|
20479
|
+
}
|
|
20480
|
+
log.debug(`Successfully updated API Gateway Method ${logicalId} (${patchOperations.length} patch ops, ${childCalls.length} sub-resource calls)`);
|
|
20467
20481
|
return {
|
|
20468
20482
|
physicalId,
|
|
20469
20483
|
wasReplaced: false
|
|
@@ -20823,6 +20837,127 @@ function appendMapPatchOps(ops, basePath, next, prev) {
|
|
|
20823
20837
|
path: `${basePath}/${escape(key)}`
|
|
20824
20838
|
});
|
|
20825
20839
|
}
|
|
20840
|
+
function putIntegrationInput(ids, integration) {
|
|
20841
|
+
return {
|
|
20842
|
+
...ids,
|
|
20843
|
+
type: integration["Type"],
|
|
20844
|
+
integrationHttpMethod: integration["IntegrationHttpMethod"],
|
|
20845
|
+
uri: integration["Uri"],
|
|
20846
|
+
connectionType: integration["ConnectionType"],
|
|
20847
|
+
connectionId: integration["ConnectionId"],
|
|
20848
|
+
credentials: integration["Credentials"],
|
|
20849
|
+
requestParameters: integration["RequestParameters"],
|
|
20850
|
+
requestTemplates: integration["RequestTemplates"],
|
|
20851
|
+
passthroughBehavior: integration["PassthroughBehavior"],
|
|
20852
|
+
contentHandling: integration["ContentHandling"],
|
|
20853
|
+
timeoutInMillis: integration["TimeoutInMillis"],
|
|
20854
|
+
cacheNamespace: integration["CacheNamespace"],
|
|
20855
|
+
cacheKeyParameters: integration["CacheKeyParameters"],
|
|
20856
|
+
tlsConfig: integration["TlsConfig"] ? { insecureSkipVerification: integration["TlsConfig"]["InsecureSkipVerification"] } : void 0,
|
|
20857
|
+
responseTransferMode: integration["ResponseTransferMode"]
|
|
20858
|
+
};
|
|
20859
|
+
}
|
|
20860
|
+
function putMethodResponseInput(ids, resp) {
|
|
20861
|
+
return {
|
|
20862
|
+
...ids,
|
|
20863
|
+
statusCode: String(resp["StatusCode"]),
|
|
20864
|
+
responseModels: resp["ResponseModels"],
|
|
20865
|
+
responseParameters: resp["ResponseParameters"]
|
|
20866
|
+
};
|
|
20867
|
+
}
|
|
20868
|
+
function putIntegrationResponseInput(ids, ir) {
|
|
20869
|
+
return {
|
|
20870
|
+
...ids,
|
|
20871
|
+
statusCode: String(ir["StatusCode"]),
|
|
20872
|
+
selectionPattern: ir["SelectionPattern"],
|
|
20873
|
+
responseParameters: ir["ResponseParameters"],
|
|
20874
|
+
responseTemplates: ir["ResponseTemplates"],
|
|
20875
|
+
contentHandling: ir["ContentHandling"]
|
|
20876
|
+
};
|
|
20877
|
+
}
|
|
20878
|
+
function isCfnMethodChildShape(props) {
|
|
20879
|
+
const integration = integrationBlock(props["Integration"]);
|
|
20880
|
+
if (integration !== void 0 && !("Type" in integration)) return false;
|
|
20881
|
+
const responses = props["MethodResponses"];
|
|
20882
|
+
return responses === void 0 || Array.isArray(responses);
|
|
20883
|
+
}
|
|
20884
|
+
function responsesByStatus(value) {
|
|
20885
|
+
const out = /* @__PURE__ */ new Map();
|
|
20886
|
+
if (!Array.isArray(value)) return out;
|
|
20887
|
+
for (const entry of value) if (entry !== null && typeof entry === "object" && !Array.isArray(entry)) {
|
|
20888
|
+
const record = entry;
|
|
20889
|
+
out.set(String(record["StatusCode"]), record);
|
|
20890
|
+
}
|
|
20891
|
+
return out;
|
|
20892
|
+
}
|
|
20893
|
+
function integrationBlock(value) {
|
|
20894
|
+
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).length > 0 ? value : void 0;
|
|
20895
|
+
}
|
|
20896
|
+
function methodChildCalls(ids, desired, previous) {
|
|
20897
|
+
if (!isCfnMethodChildShape(desired) || !isCfnMethodChildShape(previous)) return [];
|
|
20898
|
+
const newInt = integrationBlock(desired["Integration"]);
|
|
20899
|
+
const oldInt = integrationBlock(previous["Integration"]);
|
|
20900
|
+
const newMr = responsesByStatus(desired["MethodResponses"]);
|
|
20901
|
+
const oldMr = responsesByStatus(previous["MethodResponses"]);
|
|
20902
|
+
const newIr = responsesByStatus(newInt?.["IntegrationResponses"]);
|
|
20903
|
+
const oldIr = responsesByStatus(oldInt?.["IntegrationResponses"]);
|
|
20904
|
+
const withoutResponses = (b) => {
|
|
20905
|
+
if (b === void 0) return void 0;
|
|
20906
|
+
const { IntegrationResponses: _dropped, ...rest } = b;
|
|
20907
|
+
return rest;
|
|
20908
|
+
};
|
|
20909
|
+
const integrationChanged = !isDeepStrictEqual(withoutResponses(newInt), withoutResponses(oldInt));
|
|
20910
|
+
const mrGoing = [...oldMr.keys()].filter((code) => !newMr.has(code) || !isDeepStrictEqual(newMr.get(code), oldMr.get(code)));
|
|
20911
|
+
const mrComing = [...newMr.keys()].filter((code) => !oldMr.has(code) || !isDeepStrictEqual(newMr.get(code), oldMr.get(code)));
|
|
20912
|
+
const calls = [];
|
|
20913
|
+
const liveIr = new Map(oldInt === void 0 ? [] : oldIr);
|
|
20914
|
+
if (oldInt !== void 0 && newInt === void 0) {
|
|
20915
|
+
calls.push({
|
|
20916
|
+
kind: "delete",
|
|
20917
|
+
command: new DeleteIntegrationCommand(ids)
|
|
20918
|
+
});
|
|
20919
|
+
liveIr.clear();
|
|
20920
|
+
} else if (oldInt !== void 0) {
|
|
20921
|
+
for (const code of oldIr.keys()) if (!newIr.has(code) || mrGoing.includes(code)) {
|
|
20922
|
+
calls.push({
|
|
20923
|
+
kind: "delete",
|
|
20924
|
+
command: new DeleteIntegrationResponseCommand({
|
|
20925
|
+
...ids,
|
|
20926
|
+
statusCode: code
|
|
20927
|
+
})
|
|
20928
|
+
});
|
|
20929
|
+
liveIr.delete(code);
|
|
20930
|
+
}
|
|
20931
|
+
}
|
|
20932
|
+
for (const code of mrGoing) calls.push({
|
|
20933
|
+
kind: "delete",
|
|
20934
|
+
command: new DeleteMethodResponseCommand({
|
|
20935
|
+
...ids,
|
|
20936
|
+
statusCode: code
|
|
20937
|
+
})
|
|
20938
|
+
});
|
|
20939
|
+
for (const code of mrComing) calls.push({
|
|
20940
|
+
kind: "put",
|
|
20941
|
+
command: new PutMethodResponseCommand(putMethodResponseInput(ids, newMr.get(code)))
|
|
20942
|
+
});
|
|
20943
|
+
if (newInt !== void 0) {
|
|
20944
|
+
if (integrationChanged) {
|
|
20945
|
+
calls.push({
|
|
20946
|
+
kind: "put",
|
|
20947
|
+
command: new PutIntegrationCommand(putIntegrationInput(ids, newInt))
|
|
20948
|
+
});
|
|
20949
|
+
liveIr.clear();
|
|
20950
|
+
}
|
|
20951
|
+
for (const [code, ir] of newIr) {
|
|
20952
|
+
if (liveIr.has(code) && isDeepStrictEqual(liveIr.get(code), ir)) continue;
|
|
20953
|
+
calls.push({
|
|
20954
|
+
kind: "put",
|
|
20955
|
+
command: new PutIntegrationResponseCommand(putIntegrationResponseInput(ids, ir))
|
|
20956
|
+
});
|
|
20957
|
+
}
|
|
20958
|
+
}
|
|
20959
|
+
return calls;
|
|
20960
|
+
}
|
|
20826
20961
|
|
|
20827
20962
|
//#endregion
|
|
20828
20963
|
//#region src/provisioning/providers/apigatewayv2-provider.ts
|
|
@@ -21247,7 +21382,7 @@ var ApiGatewayV2Provider = class {
|
|
|
21247
21382
|
const apiId = properties?.["ApiId"];
|
|
21248
21383
|
if (!apiId) throw new ProvisioningError(`ApiId is required to delete Integration ${logicalId}`, resourceType, logicalId, physicalId);
|
|
21249
21384
|
try {
|
|
21250
|
-
await this.getClient().send(new DeleteIntegrationCommand({
|
|
21385
|
+
await this.getClient().send(new DeleteIntegrationCommand$1({
|
|
21251
21386
|
ApiId: apiId,
|
|
21252
21387
|
IntegrationId: physicalId
|
|
21253
21388
|
}));
|
|
@@ -23852,7 +23987,7 @@ var StepFunctionsProvider = class {
|
|
|
23852
23987
|
}
|
|
23853
23988
|
generatedCreateName(_resourceType, logicalId, properties) {
|
|
23854
23989
|
if (properties["StateMachineName"]) return void 0;
|
|
23855
|
-
return
|
|
23990
|
+
return generatedNameFor("AWS::StepFunctions::StateMachine", logicalId);
|
|
23856
23991
|
}
|
|
23857
23992
|
async holderCreatedAt(_resourceType, physicalId) {
|
|
23858
23993
|
const resp = await this.getClient().send(new DescribeStateMachineCommand({ stateMachineArn: physicalId }));
|
|
@@ -24355,7 +24490,7 @@ var ECSProvider = class {
|
|
|
24355
24490
|
async createTaskDefinition(logicalId, resourceType, properties, log) {
|
|
24356
24491
|
log.debug(`Creating ECS task definition ${logicalId}`);
|
|
24357
24492
|
const desiredTags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
|
|
24358
|
-
const family = properties["Family"] ||
|
|
24493
|
+
const family = properties["Family"] || generatedNameFor("AWS::ECS::TaskDefinition", logicalId);
|
|
24359
24494
|
try {
|
|
24360
24495
|
const orphanWindow = registerTaskDefinitionLatch.take(logicalId);
|
|
24361
24496
|
if (orphanWindow !== void 0) await this.reportPossibleOrphanTaskDefinitions(logicalId, family, orphanWindow, log);
|
|
@@ -24432,7 +24567,7 @@ var ECSProvider = class {
|
|
|
24432
24567
|
log.debug(`Creating ECS service ${logicalId}`);
|
|
24433
24568
|
const desiredTags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
|
|
24434
24569
|
const client = this.getClient();
|
|
24435
|
-
const serviceName = properties["ServiceName"] ||
|
|
24570
|
+
const serviceName = properties["ServiceName"] || generatedNameFor("AWS::ECS::Service", logicalId);
|
|
24436
24571
|
let survivorArn;
|
|
24437
24572
|
try {
|
|
24438
24573
|
const heldBefore = process.env["CDKD_FULL_WAIT"] === "true" ? await nameHeldBefore(() => this.serviceNameHeld(properties["Cluster"], serviceName), (error) => hasErrorName(error, ["ClusterNotFoundException"])) : "free";
|
|
@@ -25368,7 +25503,7 @@ var ECSProvider = class {
|
|
|
25368
25503
|
}
|
|
25369
25504
|
generatedCreateName(resourceType, logicalId, properties) {
|
|
25370
25505
|
if (resourceType !== "AWS::ECS::Cluster" || properties["ClusterName"]) return void 0;
|
|
25371
|
-
return
|
|
25506
|
+
return generatedNameFor("AWS::ECS::Cluster", logicalId);
|
|
25372
25507
|
}
|
|
25373
25508
|
async lookupNames(resourceType, names) {
|
|
25374
25509
|
const found = /* @__PURE__ */ new Map();
|
|
@@ -26930,7 +27065,7 @@ var RDSDBProxyProvider = class {
|
|
|
26930
27065
|
}
|
|
26931
27066
|
async create(logicalId, resourceType, properties) {
|
|
26932
27067
|
const tags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId, void 0, "Tags", DBPROXY_TAGS_WHAT, DBPROXY_TAG_OPTIONS);
|
|
26933
|
-
const dbProxyName = properties["DBProxyName"] ??
|
|
27068
|
+
const dbProxyName = properties["DBProxyName"] ?? generatedNameFor("AWS::RDS::DBProxy", logicalId);
|
|
26934
27069
|
const engineFamily = properties["EngineFamily"];
|
|
26935
27070
|
if (!engineFamily) throw new ProvisioningError(`EngineFamily is required for AWS::RDS::DBProxy ${logicalId}`, resourceType, logicalId);
|
|
26936
27071
|
const auth = properties["Auth"];
|
|
@@ -27253,7 +27388,7 @@ var RDSDBProxyEndpointProvider = class {
|
|
|
27253
27388
|
const tags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId, void 0, "Tags", DBPROXY_TAGS_WHAT, DBPROXY_TAG_OPTIONS);
|
|
27254
27389
|
const dbProxyName = properties["DBProxyName"];
|
|
27255
27390
|
if (!dbProxyName) throw new ProvisioningError(`DBProxyName is required for AWS::RDS::DBProxyEndpoint ${logicalId}`, resourceType, logicalId);
|
|
27256
|
-
const dbProxyEndpointName = properties["DBProxyEndpointName"] ??
|
|
27391
|
+
const dbProxyEndpointName = properties["DBProxyEndpointName"] ?? generatedNameFor("AWS::RDS::DBProxyEndpoint", logicalId);
|
|
27257
27392
|
const vpcSubnetIds = properties["VpcSubnetIds"];
|
|
27258
27393
|
if (!vpcSubnetIds || vpcSubnetIds.length === 0) throw new ProvisioningError(`VpcSubnetIds (at least one) is required for AWS::RDS::DBProxyEndpoint ${logicalId}`, resourceType, logicalId);
|
|
27259
27394
|
const client = this.getClient();
|
|
@@ -28145,10 +28280,7 @@ var DocDBProvider = class {
|
|
|
28145
28280
|
async createDBCluster(logicalId, resourceType, properties) {
|
|
28146
28281
|
this.logger.debug(`Creating DocDB DBCluster ${logicalId}`);
|
|
28147
28282
|
const tags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
|
|
28148
|
-
const dbClusterIdentifier = properties["DBClusterIdentifier"] ||
|
|
28149
|
-
maxLength: 63,
|
|
28150
|
-
lowercase: true
|
|
28151
|
-
});
|
|
28283
|
+
const dbClusterIdentifier = properties["DBClusterIdentifier"] || generatedNameFor("AWS::DocDB::DBCluster", logicalId);
|
|
28152
28284
|
let clusterCreated = false;
|
|
28153
28285
|
let createdResourceId;
|
|
28154
28286
|
try {
|
|
@@ -28294,10 +28426,7 @@ var DocDBProvider = class {
|
|
|
28294
28426
|
async createDBInstance(logicalId, resourceType, properties) {
|
|
28295
28427
|
this.logger.debug(`Creating DocDB DBInstance ${logicalId}`);
|
|
28296
28428
|
const tags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
|
|
28297
|
-
const dbInstanceIdentifier = properties["DBInstanceIdentifier"] ||
|
|
28298
|
-
maxLength: 63,
|
|
28299
|
-
lowercase: true
|
|
28300
|
-
});
|
|
28429
|
+
const dbInstanceIdentifier = properties["DBInstanceIdentifier"] || generatedNameFor("AWS::DocDB::DBInstance", logicalId);
|
|
28301
28430
|
let instanceCreated = false;
|
|
28302
28431
|
let createdResourceId;
|
|
28303
28432
|
try {
|
|
@@ -28613,10 +28742,7 @@ var DocDBSubnetGroupProvider = class {
|
|
|
28613
28742
|
this.assertType(resourceType, logicalId);
|
|
28614
28743
|
this.logger.debug(safeMsg`Creating DocDB DBSubnetGroup ${logicalId}`);
|
|
28615
28744
|
const tags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
|
|
28616
|
-
const dbSubnetGroupName = properties["DBSubnetGroupName"] ||
|
|
28617
|
-
maxLength: 255,
|
|
28618
|
-
lowercase: true
|
|
28619
|
-
});
|
|
28745
|
+
const dbSubnetGroupName = properties["DBSubnetGroupName"] || generatedNameFor("AWS::DocDB::DBSubnetGroup", logicalId);
|
|
28620
28746
|
try {
|
|
28621
28747
|
await this.getCreateClient().send(new CreateDBSubnetGroupCommand$1({
|
|
28622
28748
|
DBSubnetGroupName: dbSubnetGroupName,
|
|
@@ -30024,7 +30150,7 @@ var WAFv2WebACLProvider = class {
|
|
|
30024
30150
|
async create(logicalId, resourceType, properties, context) {
|
|
30025
30151
|
this.logger.debug(`Creating WAFv2 WebACL ${logicalId}`);
|
|
30026
30152
|
const desiredTags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
|
|
30027
|
-
const name = properties["Name"] ||
|
|
30153
|
+
const name = properties["Name"] || generatedNameFor("AWS::WAFv2::WebACL", logicalId);
|
|
30028
30154
|
const scope = requireConfigString(properties["Scope"], "REGIONAL", "AWS::WAFv2::WebACL Scope", replayWarn(this.logger, context));
|
|
30029
30155
|
this.warnOnSdkUnsupportedRuleKeys(logicalId, properties["Rules"]);
|
|
30030
30156
|
try {
|
|
@@ -30563,7 +30689,7 @@ var CognitoUserPoolProvider = class {
|
|
|
30563
30689
|
}
|
|
30564
30690
|
async create(logicalId, resourceType, properties, context) {
|
|
30565
30691
|
this.logger.debug(`Creating Cognito User Pool ${logicalId}`);
|
|
30566
|
-
const poolName = properties["UserPoolName"] ||
|
|
30692
|
+
const poolName = properties["UserPoolName"] || generatedNameFor("AWS::Cognito::UserPool", logicalId);
|
|
30567
30693
|
let mfaConfiguration;
|
|
30568
30694
|
try {
|
|
30569
30695
|
mfaConfiguration = readDeclaredMfaConfiguration(properties["MfaConfiguration"], replayWarn(this.logger, context));
|
|
@@ -31326,10 +31452,7 @@ var ElastiCacheProvider = class {
|
|
|
31326
31452
|
async createSubnetGroup(logicalId, resourceType, properties) {
|
|
31327
31453
|
this.logger.debug(`Creating CacheSubnetGroup ${logicalId}`);
|
|
31328
31454
|
const tags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
|
|
31329
|
-
const cacheSubnetGroupName = properties["CacheSubnetGroupName"] ||
|
|
31330
|
-
maxLength: 255,
|
|
31331
|
-
lowercase: true
|
|
31332
|
-
});
|
|
31455
|
+
const cacheSubnetGroupName = properties["CacheSubnetGroupName"] || generatedNameFor("AWS::ElastiCache::SubnetGroup", logicalId);
|
|
31333
31456
|
try {
|
|
31334
31457
|
await this.getCreateClient().send(new CreateCacheSubnetGroupCommand({
|
|
31335
31458
|
CacheSubnetGroupName: cacheSubnetGroupName,
|
|
@@ -31393,10 +31516,7 @@ var ElastiCacheProvider = class {
|
|
|
31393
31516
|
async createCacheCluster(logicalId, resourceType, properties) {
|
|
31394
31517
|
this.logger.debug(`Creating CacheCluster ${logicalId}`);
|
|
31395
31518
|
const tags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
|
|
31396
|
-
const cacheClusterId = properties["ClusterName"] ||
|
|
31397
|
-
maxLength: 40,
|
|
31398
|
-
lowercase: true
|
|
31399
|
-
});
|
|
31519
|
+
const cacheClusterId = properties["ClusterName"] || generatedNameFor("AWS::ElastiCache::CacheCluster", logicalId);
|
|
31400
31520
|
let clusterCreated = false;
|
|
31401
31521
|
try {
|
|
31402
31522
|
await this.getCreateClient().send(new CreateCacheClusterCommand({
|
|
@@ -31861,7 +31981,7 @@ var ServiceDiscoveryProvider = class ServiceDiscoveryProvider {
|
|
|
31861
31981
|
case "AWS::ServiceDiscovery::PrivateDnsNamespace": return this.updateNamespace(logicalId, physicalId, resourceType, properties, previousProperties, context?.maskSecrets);
|
|
31862
31982
|
case "AWS::ServiceDiscovery::HttpNamespace": return this.updateHttpNamespace(logicalId, physicalId, resourceType, properties, previousProperties, context?.maskSecrets);
|
|
31863
31983
|
case "AWS::ServiceDiscovery::PublicDnsNamespace": return this.updatePublicDnsNamespace(logicalId, physicalId, resourceType, properties, previousProperties, context?.maskSecrets);
|
|
31864
|
-
case "AWS::ServiceDiscovery::Service": return this.updateService(logicalId, physicalId, resourceType, properties, previousProperties, context?.maskSecrets);
|
|
31984
|
+
case "AWS::ServiceDiscovery::Service": return this.updateService(logicalId, physicalId, resourceType, properties, previousProperties, context?.maskSecrets, context?.changedProperties);
|
|
31865
31985
|
default: throw new ProvisioningError(`Unsupported resource type: ${resourceType}`, resourceType, logicalId, physicalId);
|
|
31866
31986
|
}
|
|
31867
31987
|
}
|
|
@@ -32196,11 +32316,11 @@ var ServiceDiscoveryProvider = class ServiceDiscoveryProvider {
|
|
|
32196
32316
|
throw thrown;
|
|
32197
32317
|
}
|
|
32198
32318
|
}
|
|
32199
|
-
async updateService(logicalId, physicalId, resourceType, properties, previousProperties, maskSecrets) {
|
|
32319
|
+
async updateService(logicalId, physicalId, resourceType, properties, previousProperties, maskSecrets, changedProperties) {
|
|
32200
32320
|
this.logger.debug(`Updating service discovery service ${logicalId}: ${physicalId}`);
|
|
32201
32321
|
refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId, physicalId);
|
|
32202
32322
|
const client = this.getClient();
|
|
32203
|
-
const servicePlan = this.planServiceChange(properties, previousProperties);
|
|
32323
|
+
const servicePlan = this.planServiceChange(properties, previousProperties, changedProperties);
|
|
32204
32324
|
const serviceChange = servicePlan?.change ?? {};
|
|
32205
32325
|
const newAttrs = this.normalizeServiceAttributes(properties["ServiceAttributes"]);
|
|
32206
32326
|
const oldAttrs = this.normalizeServiceAttributes(previousProperties["ServiceAttributes"]);
|
|
@@ -32286,8 +32406,9 @@ var ServiceDiscoveryProvider = class ServiceDiscoveryProvider {
|
|
|
32286
32406
|
throw this.wrapMaskedError(maskerOrIdentity(maskSecrets), error, (text) => new ProvisioningError(`Failed to update service discovery service ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
|
|
32287
32407
|
}
|
|
32288
32408
|
}
|
|
32289
|
-
planServiceChange(properties, previousProperties) {
|
|
32290
|
-
const
|
|
32409
|
+
planServiceChange(properties, previousProperties, changedProperties) {
|
|
32410
|
+
const changed = (key) => changedProperties !== void 0 ? changedProperties.has(key) : !sameAsRecorded(properties[key], previousProperties[key]);
|
|
32411
|
+
const declaredDiffers = (key) => properties[key] !== void 0 && changed(key);
|
|
32291
32412
|
const change = {};
|
|
32292
32413
|
if (properties["Description"] !== void 0) change.Description = properties["Description"];
|
|
32293
32414
|
const desiredRecords = properties["DnsConfig"]?.DnsRecords;
|
|
@@ -32298,7 +32419,7 @@ var ServiceDiscoveryProvider = class ServiceDiscoveryProvider {
|
|
|
32298
32419
|
change,
|
|
32299
32420
|
keepRemovedFromLive: false
|
|
32300
32421
|
};
|
|
32301
|
-
if (desiredRecords !== void 0 && !sameAsRecorded(desiredRecords, previousRecords)) return {
|
|
32422
|
+
if (desiredRecords !== void 0 && (changedProperties === void 0 || changedProperties.has("DnsConfig")) && !sameAsRecorded(desiredRecords, previousRecords)) return {
|
|
32302
32423
|
change,
|
|
32303
32424
|
keepRemovedFromLive: true
|
|
32304
32425
|
};
|
|
@@ -35557,7 +35678,7 @@ var GlueJobProvider = class {
|
|
|
35557
35678
|
const log = glueOperationSinks(this.logger, context?.maskSecrets, secretNamePairs([properties["Name"]]));
|
|
35558
35679
|
const { value: v } = log;
|
|
35559
35680
|
log.debug(`Creating Glue Job ${logicalId}`);
|
|
35560
|
-
const name = properties["Name"] ?? logicalId;
|
|
35681
|
+
const name = properties["Name"] ?? generatedNameFor("AWS::Glue::Job", logicalId);
|
|
35561
35682
|
const role = properties["Role"];
|
|
35562
35683
|
const command = properties["Command"];
|
|
35563
35684
|
if (!role) throw new ProvisioningError(`Role is required for Glue Job ${logicalId}`, resourceType, logicalId);
|
|
@@ -35845,7 +35966,7 @@ var GlueCrawlerProvider = class {
|
|
|
35845
35966
|
const log = glueOperationSinks(this.logger, context?.maskSecrets, secretNamePairs([properties["Name"]]));
|
|
35846
35967
|
const { value: v } = log;
|
|
35847
35968
|
log.debug(`Creating Glue Crawler ${logicalId}`);
|
|
35848
|
-
const name = properties["Name"] ?? logicalId;
|
|
35969
|
+
const name = properties["Name"] ?? generatedNameFor("AWS::Glue::Crawler", logicalId);
|
|
35849
35970
|
const role = properties["Role"];
|
|
35850
35971
|
const targets = properties["Targets"];
|
|
35851
35972
|
if (!role) throw new ProvisioningError(`Role is required for Glue Crawler ${logicalId}`, resourceType, logicalId);
|
|
@@ -36095,7 +36216,7 @@ var GlueConnectionProvider = class {
|
|
|
36095
36216
|
log.debug(`Creating Glue Connection ${logicalId}`);
|
|
36096
36217
|
const connectionInput = properties["ConnectionInput"];
|
|
36097
36218
|
if (!connectionInput) throw new ProvisioningError(`ConnectionInput is required for Glue Connection ${logicalId}`, resourceType, logicalId);
|
|
36098
|
-
const name = connectionInput["Name"] ?? logicalId;
|
|
36219
|
+
const name = connectionInput["Name"] ?? generatedNameFor("AWS::Glue::Connection", logicalId);
|
|
36099
36220
|
const catalogId = properties["CatalogId"];
|
|
36100
36221
|
try {
|
|
36101
36222
|
await this.getCreateClient().send(new CreateConnectionCommand({
|
|
@@ -36300,7 +36421,7 @@ var GlueTriggerProvider = class {
|
|
|
36300
36421
|
const log = glueOperationSinks(this.logger, context?.maskSecrets, secretNamePairs([properties["Name"]]));
|
|
36301
36422
|
const { value: v } = log;
|
|
36302
36423
|
log.debug(`Creating Glue Trigger ${logicalId}`);
|
|
36303
|
-
const name = properties["Name"] ?? logicalId;
|
|
36424
|
+
const name = properties["Name"] ?? generatedNameFor("AWS::Glue::Trigger", logicalId);
|
|
36304
36425
|
const type = properties["Type"];
|
|
36305
36426
|
const actions = properties["Actions"];
|
|
36306
36427
|
if (!type) throw new ProvisioningError(`Type is required for Glue Trigger ${logicalId}`, resourceType, logicalId);
|
|
@@ -37709,7 +37830,7 @@ var KinesisStreamProvider = class {
|
|
|
37709
37830
|
const warn = (message) => this.logger.warn(mask(message));
|
|
37710
37831
|
this.logger.debug(`Creating Kinesis stream ${logicalId}`);
|
|
37711
37832
|
const desiredTags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
|
|
37712
|
-
const streamName = properties["Name"] ||
|
|
37833
|
+
const streamName = properties["Name"] || generatedNameFor("AWS::Kinesis::Stream", logicalId);
|
|
37713
37834
|
const desiredRead = readShardLevelMetrics(properties["DesiredShardLevelMetrics"], mask);
|
|
37714
37835
|
if (desiredRead.kind === "unusable") {
|
|
37715
37836
|
if (context?.replayingState === true) warn(`${desiredRead.reason}. Replaying a state record, so the shard-level metrics are left unset on ${streamName} rather than refusing the restore`);
|
|
@@ -38455,7 +38576,7 @@ var SchedulerScheduleProvider = class {
|
|
|
38455
38576
|
return result;
|
|
38456
38577
|
}
|
|
38457
38578
|
async create(logicalId, resourceType, properties) {
|
|
38458
|
-
const name = properties["Name"] ??
|
|
38579
|
+
const name = properties["Name"] ?? generatedNameFor("AWS::Scheduler::Schedule", logicalId);
|
|
38459
38580
|
const groupName = this.groupNameOf(properties);
|
|
38460
38581
|
this.logger.debug(`Creating Schedule ${logicalId}: ${name}${groupName ? ` (group: ${groupName})` : ""}`);
|
|
38461
38582
|
try {
|
|
@@ -38995,7 +39116,7 @@ var PipesPipeProvider = class {
|
|
|
38995
39116
|
}
|
|
38996
39117
|
async create(logicalId, resourceType, properties, context) {
|
|
38997
39118
|
const mask = maskerOrIdentity(context?.maskSecrets);
|
|
38998
|
-
const name = properties["Name"] ??
|
|
39119
|
+
const name = properties["Name"] ?? generatedNameFor("AWS::Pipes::Pipe", logicalId);
|
|
38999
39120
|
const tags = desiredTagMap(properties["Tags"], logicalId);
|
|
39000
39121
|
this.logger.debug(mask(`Creating Pipe ${logicalId}: ${name}`));
|
|
39001
39122
|
let createdIdentity;
|
|
@@ -41165,7 +41286,7 @@ const leftInPlaceWarning$1 = (logicalId, names, caller) => {
|
|
|
41165
41286
|
const one = names.length === 1;
|
|
41166
41287
|
const subject = one ? "property" : "properties";
|
|
41167
41288
|
const verb = one ? "is" : "are";
|
|
41168
|
-
return caller === "rollback" ? safeMsg`${logicalId} (AWS::EMR::Cluster): ${subject} ${names.join(", ")} ${verb} absent from the state being restored; ModifyCluster keeps a setting it is not sent, so the rollback leaves the value the failed deploy applied in place.` : safeMsg`${logicalId} (AWS::EMR::Cluster): ${subject} ${names.join(", ")} ${one ? "was" : "were"} removed from the template
|
|
41289
|
+
return caller === "rollback" ? safeMsg`${logicalId} (AWS::EMR::Cluster): ${subject} ${names.join(", ")} ${verb} absent from the state being restored; ModifyCluster keeps a setting it is not sent, so the rollback leaves the value the failed deploy applied in place.` : safeMsg`${logicalId} (AWS::EMR::Cluster): ${subject} ${names.join(", ")} ${one ? "was" : "were"} removed from the template and ${one ? "keeps its" : "keep their"} current AWS value, as CloudFormation leaves ${one ? "it" : "them"}; ModifyCluster keeps a setting it is not sent. Declare the intended value explicitly to change it.`;
|
|
41169
41290
|
};
|
|
41170
41291
|
const toNumber$2 = (v) => {
|
|
41171
41292
|
if (v === void 0) return void 0;
|
|
@@ -42297,7 +42418,7 @@ const leftInPlaceWarning = (logicalId, names, caller) => {
|
|
|
42297
42418
|
const one = names.length === 1;
|
|
42298
42419
|
const subject = one ? "property" : "properties";
|
|
42299
42420
|
const verb = one ? "is" : "are";
|
|
42300
|
-
return caller === "rollback" ? safeMsg`${logicalId} (AWS::EMR::InstanceFleetConfig): ${subject} ${names.join(", ")} ${verb} absent from the state being restored; ModifyInstanceFleet keeps a setting it is not sent, so the rollback leaves the value the failed deploy applied in place.` : safeMsg`${logicalId} (AWS::EMR::InstanceFleetConfig): ${subject} ${names.join(", ")} ${one ? "was" : "were"} removed from the template
|
|
42421
|
+
return caller === "rollback" ? safeMsg`${logicalId} (AWS::EMR::InstanceFleetConfig): ${subject} ${names.join(", ")} ${verb} absent from the state being restored; ModifyInstanceFleet keeps a setting it is not sent, so the rollback leaves the value the failed deploy applied in place.` : safeMsg`${logicalId} (AWS::EMR::InstanceFleetConfig): ${subject} ${names.join(", ")} ${one ? "was" : "were"} removed from the template and ${one ? "keeps its" : "keep their"} current AWS value, as CloudFormation leaves ${one ? "it" : "them"}; ModifyInstanceFleet keeps a setting it is not sent. Declare the intended value explicitly to change it.`;
|
|
42301
42422
|
};
|
|
42302
42423
|
const addInstanceFleetLatch = new AmbiguousCreateLatch("emr:AddInstanceFleet");
|
|
42303
42424
|
const fleetsCreatedByThisProcess = new RecentIdSet();
|
|
@@ -42682,7 +42803,7 @@ var FirehoseProvider = class {
|
|
|
42682
42803
|
let createdStreamName;
|
|
42683
42804
|
try {
|
|
42684
42805
|
const input = {
|
|
42685
|
-
DeliveryStreamName: deliveryStreamName || logicalId,
|
|
42806
|
+
DeliveryStreamName: deliveryStreamName || generatedNameFor("AWS::KinesisFirehose::DeliveryStream", logicalId),
|
|
42686
42807
|
DeliveryStreamType: deliveryStreamType
|
|
42687
42808
|
};
|
|
42688
42809
|
if (properties["S3DestinationConfiguration"]) {
|
|
@@ -43578,7 +43699,7 @@ var CloudTrailProvider = class {
|
|
|
43578
43699
|
let createdTrailArn;
|
|
43579
43700
|
try {
|
|
43580
43701
|
const result = await this.getCreateClient().send(new CreateTrailCommand({
|
|
43581
|
-
Name: trailName ?? logicalId,
|
|
43702
|
+
Name: trailName ?? generatedNameFor("AWS::CloudTrail::Trail", logicalId),
|
|
43582
43703
|
S3BucketName: s3BucketName,
|
|
43583
43704
|
S3KeyPrefix: s3KeyPrefix,
|
|
43584
43705
|
IsMultiRegionTrail: isMultiRegionTrail,
|
|
@@ -43923,8 +44044,8 @@ var CodeBuildProvider = class {
|
|
|
43923
44044
|
artifactIdentifier: artifacts["ArtifactIdentifier"]
|
|
43924
44045
|
};
|
|
43925
44046
|
}
|
|
43926
|
-
mapProperties(
|
|
43927
|
-
const name = properties["Name"] ??
|
|
44047
|
+
mapProperties(undeclaredName, properties) {
|
|
44048
|
+
const name = properties["Name"] ?? undeclaredName();
|
|
43928
44049
|
const source = properties["Source"];
|
|
43929
44050
|
const environment = properties["Environment"];
|
|
43930
44051
|
const sanitizeOptionalString = (value) => {
|
|
@@ -44053,7 +44174,7 @@ var CodeBuildProvider = class {
|
|
|
44053
44174
|
async create(logicalId, resourceType, properties) {
|
|
44054
44175
|
this.logger.debug(`Creating CodeBuild Project ${logicalId}`);
|
|
44055
44176
|
try {
|
|
44056
|
-
const input = this.mapProperties(logicalId, properties);
|
|
44177
|
+
const input = this.mapProperties(() => generatedNameFor("AWS::CodeBuild::Project", logicalId), properties);
|
|
44057
44178
|
const result = await this.getCreateClient().send(new CreateProjectCommand(input));
|
|
44058
44179
|
const projectName = result.project.name;
|
|
44059
44180
|
const projectArn = result.project.arn;
|
|
@@ -44071,7 +44192,7 @@ var CodeBuildProvider = class {
|
|
|
44071
44192
|
this.logger.debug(`Updating CodeBuild Project ${logicalId}: ${physicalId}`);
|
|
44072
44193
|
assertRegionMatch(context?.expectedRegion ? await this.getClient().config.region() : void 0, context?.expectedRegion, resourceType, logicalId, physicalId, "pre-update");
|
|
44073
44194
|
try {
|
|
44074
|
-
const input = this.mapProperties(
|
|
44195
|
+
const input = this.mapProperties(() => physicalId, properties);
|
|
44075
44196
|
input.name = physicalId;
|
|
44076
44197
|
if (properties["BuildBatchConfig"] == null && previousProperties["BuildBatchConfig"] != null) input.buildBatchConfig = {};
|
|
44077
44198
|
await this.getClient().send(new UpdateProjectCommand(input));
|
|
@@ -44425,7 +44546,7 @@ var CodeCommitRepositoryProvider = class {
|
|
|
44425
44546
|
}
|
|
44426
44547
|
async create(logicalId, resourceType, properties) {
|
|
44427
44548
|
this.logger.debug(`Creating CodeCommit Repository ${logicalId}`);
|
|
44428
|
-
const repositoryName = properties["RepositoryName"] ||
|
|
44549
|
+
const repositoryName = properties["RepositoryName"] || generatedNameFor("AWS::CodeCommit::Repository", logicalId);
|
|
44429
44550
|
const lists = this.readDesiredLists(logicalId, resourceType, {
|
|
44430
44551
|
Triggers: properties["Triggers"],
|
|
44431
44552
|
Tags: properties["Tags"]
|
|
@@ -45367,10 +45488,7 @@ var S3DirectoryBucketProvider = class {
|
|
|
45367
45488
|
const azName = properties["LocationName"]?.replace(/--x-s3$/, "") || "us-east-1a";
|
|
45368
45489
|
const azId = await this.getAzId(azName);
|
|
45369
45490
|
let bucketName = properties["BucketName"];
|
|
45370
|
-
if (!bucketName) bucketName =
|
|
45371
|
-
maxLength: 64,
|
|
45372
|
-
lowercase: true
|
|
45373
|
-
})}--${azId}--x-s3`;
|
|
45491
|
+
if (!bucketName) bucketName = generatedNameFor("AWS::S3Express::DirectoryBucket", logicalId, { zoneId: azId });
|
|
45374
45492
|
const tags = desiredTags;
|
|
45375
45493
|
const includeTags = tags.length > 0;
|
|
45376
45494
|
try {
|
|
@@ -46304,7 +46422,7 @@ var ECRProvider = class {
|
|
|
46304
46422
|
async create(logicalId, resourceType, properties) {
|
|
46305
46423
|
this.logger.debug(`Creating ECR Repository ${logicalId}`);
|
|
46306
46424
|
const desiredTags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
|
|
46307
|
-
const repositoryName = properties["RepositoryName"] ||
|
|
46425
|
+
const repositoryName = properties["RepositoryName"] || generatedNameFor("AWS::ECR::Repository", logicalId);
|
|
46308
46426
|
let repositoryCreated = false;
|
|
46309
46427
|
try {
|
|
46310
46428
|
const tags = properties["Tags"] !== void 0 && properties["Tags"] !== null ? desiredTags : void 0;
|
|
@@ -47292,4 +47410,4 @@ var ACMCertificateProvider = class {
|
|
|
47292
47410
|
|
|
47293
47411
|
//#endregion
|
|
47294
47412
|
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, LambdaNetworkConnectorProvider, LambdaPermissionProvider, LambdaUrlProvider, LambdaWebFunctionEndpointProvider, LambdaWebFunctionRevisionProvider, 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 };
|
|
47295
|
-
//# sourceMappingURL=provider-classes-
|
|
47413
|
+
//# sourceMappingURL=provider-classes-B2_u4Fg0.js.map
|