alchemy 0.22.4 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/lib/aws/bucket.d.ts.map +1 -1
  2. package/lib/aws/bucket.js +13 -12
  3. package/lib/aws/bucket.js.map +1 -1
  4. package/lib/aws/control/client.d.ts.map +1 -1
  5. package/lib/aws/control/client.js +5 -3
  6. package/lib/aws/control/client.js.map +1 -1
  7. package/lib/aws/control/properties.d.ts +11 -2
  8. package/lib/aws/control/properties.d.ts.map +1 -1
  9. package/lib/aws/control/properties.js +96 -19
  10. package/lib/aws/control/properties.js.map +1 -1
  11. package/lib/aws/control/resource.d.ts.map +1 -1
  12. package/lib/aws/control/resource.js +13 -4
  13. package/lib/aws/control/resource.js.map +1 -1
  14. package/lib/aws/control/types.d.ts +81069 -0
  15. package/lib/aws/control/types.d.ts.map +1 -0
  16. package/lib/aws/control/types.js +4 -0
  17. package/lib/aws/control/types.js.map +1 -0
  18. package/lib/aws/function.d.ts.map +1 -1
  19. package/lib/aws/function.js +51 -42
  20. package/lib/aws/function.js.map +1 -1
  21. package/lib/aws/index.d.ts +1 -0
  22. package/lib/aws/index.d.ts.map +1 -1
  23. package/lib/aws/index.js +1 -0
  24. package/lib/aws/index.js.map +1 -1
  25. package/lib/aws/policy-attachment.d.ts.map +1 -1
  26. package/lib/aws/policy-attachment.js +5 -4
  27. package/lib/aws/policy-attachment.js.map +1 -1
  28. package/lib/aws/policy.d.ts.map +1 -1
  29. package/lib/aws/policy.js +21 -20
  30. package/lib/aws/policy.js.map +1 -1
  31. package/lib/aws/queue.d.ts.map +1 -1
  32. package/lib/aws/queue.js +19 -15
  33. package/lib/aws/queue.js.map +1 -1
  34. package/lib/aws/retry.d.ts +5 -0
  35. package/lib/aws/retry.d.ts.map +1 -0
  36. package/lib/aws/retry.js +27 -0
  37. package/lib/aws/retry.js.map +1 -0
  38. package/lib/aws/role.d.ts.map +1 -1
  39. package/lib/aws/role.js +31 -30
  40. package/lib/aws/role.js.map +1 -1
  41. package/lib/aws/ses.d.ts.map +1 -1
  42. package/lib/aws/ses.js +27 -26
  43. package/lib/aws/ses.js.map +1 -1
  44. package/lib/aws/ssm-parameter.d.ts +150 -0
  45. package/lib/aws/ssm-parameter.d.ts.map +1 -0
  46. package/lib/aws/ssm-parameter.js +184 -0
  47. package/lib/aws/ssm-parameter.js.map +1 -0
  48. package/lib/aws/table.d.ts.map +1 -1
  49. package/lib/aws/table.js +9 -27
  50. package/lib/aws/table.js.map +1 -1
  51. package/lib/cloudflare/account-id.d.ts +1 -0
  52. package/lib/cloudflare/account-id.d.ts.map +1 -1
  53. package/lib/cloudflare/account-id.js.map +1 -1
  54. package/lib/cloudflare/api.d.ts.map +1 -1
  55. package/lib/cloudflare/api.js +22 -2
  56. package/lib/cloudflare/api.js.map +1 -1
  57. package/lib/cloudflare/bound.d.ts +1 -1
  58. package/lib/cloudflare/bound.d.ts.map +1 -1
  59. package/lib/cloudflare/index.d.ts +2 -1
  60. package/lib/cloudflare/index.d.ts.map +1 -1
  61. package/lib/cloudflare/index.js +2 -1
  62. package/lib/cloudflare/index.js.map +1 -1
  63. package/lib/cloudflare/queue-consumer.d.ts +7 -1
  64. package/lib/cloudflare/queue-consumer.d.ts.map +1 -1
  65. package/lib/cloudflare/queue-consumer.js +14 -0
  66. package/lib/cloudflare/queue-consumer.js.map +1 -1
  67. package/lib/cloudflare/queue.d.ts +27 -0
  68. package/lib/cloudflare/queue.d.ts.map +1 -1
  69. package/lib/cloudflare/queue.js +23 -0
  70. package/lib/cloudflare/queue.js.map +1 -1
  71. package/lib/cloudflare/route.d.ts +7 -0
  72. package/lib/cloudflare/route.d.ts.map +1 -1
  73. package/lib/cloudflare/route.js +44 -2
  74. package/lib/cloudflare/route.js.map +1 -1
  75. package/lib/cloudflare/worker-metadata.d.ts.map +1 -1
  76. package/lib/cloudflare/worker-metadata.js +1 -2
  77. package/lib/cloudflare/worker-metadata.js.map +1 -1
  78. package/lib/cloudflare/worker.d.ts +2 -1
  79. package/lib/cloudflare/worker.d.ts.map +1 -1
  80. package/lib/cloudflare/worker.js +20 -9
  81. package/lib/cloudflare/worker.js.map +1 -1
  82. package/lib/cloudflare/workflow.d.ts +7 -0
  83. package/lib/cloudflare/workflow.d.ts.map +1 -1
  84. package/lib/cloudflare/workflow.js +2 -0
  85. package/lib/cloudflare/workflow.js.map +1 -1
  86. package/lib/cloudflare/wrangler.json.d.ts +1 -0
  87. package/lib/cloudflare/wrangler.json.d.ts.map +1 -1
  88. package/lib/cloudflare/wrangler.json.js +1 -0
  89. package/lib/cloudflare/wrangler.json.js.map +1 -1
  90. package/lib/destroy.js +1 -1
  91. package/lib/destroy.js.map +1 -1
  92. package/lib/dns/godaddy.d.ts.map +1 -1
  93. package/lib/dns/godaddy.js +2 -1
  94. package/lib/dns/godaddy.js.map +1 -1
  95. package/lib/fs/file-system-state-store.d.ts.map +1 -1
  96. package/lib/fs/file-system-state-store.js +14 -2
  97. package/lib/fs/file-system-state-store.js.map +1 -1
  98. package/lib/github/secret.d.ts.map +1 -1
  99. package/lib/github/secret.js +1 -0
  100. package/lib/github/secret.js.map +1 -1
  101. package/lib/neon/api.d.ts.map +1 -1
  102. package/lib/neon/api.js +2 -1
  103. package/lib/neon/api.js.map +1 -1
  104. package/lib/runtime/shims.d.ts +6 -0
  105. package/lib/runtime/shims.d.ts.map +1 -0
  106. package/lib/runtime/shims.js +27 -0
  107. package/lib/runtime/shims.js.map +1 -0
  108. package/lib/sentry/api.d.ts.map +1 -1
  109. package/lib/sentry/api.js +2 -1
  110. package/lib/sentry/api.js.map +1 -1
  111. package/lib/test/bun.d.ts.map +1 -1
  112. package/lib/test/bun.js +1 -7
  113. package/lib/test/bun.js.map +1 -1
  114. package/lib/test/prune.d.ts +2 -1
  115. package/lib/test/prune.d.ts.map +1 -1
  116. package/lib/test/prune.js +29 -5
  117. package/lib/test/prune.js.map +1 -1
  118. package/lib/test/vitest.d.ts +92 -0
  119. package/lib/test/vitest.d.ts.map +1 -0
  120. package/lib/test/vitest.js +94 -0
  121. package/lib/test/vitest.js.map +1 -0
  122. package/lib/upstash/api.d.ts.map +1 -1
  123. package/lib/upstash/api.js +2 -1
  124. package/lib/upstash/api.js.map +1 -1
  125. package/lib/util/retry.js +2 -2
  126. package/lib/util/retry.js.map +1 -1
  127. package/lib/util/safe-fetch.d.ts +2 -0
  128. package/lib/util/safe-fetch.d.ts.map +1 -0
  129. package/lib/util/safe-fetch.js +49 -0
  130. package/lib/util/safe-fetch.js.map +1 -0
  131. package/lib/vercel/api.d.ts.map +1 -1
  132. package/lib/vercel/api.js +2 -1
  133. package/lib/vercel/api.js.map +1 -1
  134. package/lib/web/vitepress/process-front-matter-files.d.ts.map +1 -1
  135. package/lib/web/vitepress/process-front-matter-files.js +11 -7
  136. package/lib/web/vitepress/process-front-matter-files.js.map +1 -1
  137. package/package.json +10 -6
  138. package/src/alchemy.ts +2 -2
  139. package/src/aws/bucket.ts +55 -36
  140. package/src/aws/control/client.ts +13 -13
  141. package/src/aws/control/properties.ts +96 -19
  142. package/src/aws/control/resource.ts +19 -3
  143. package/src/aws/control/types.ts +87235 -0
  144. package/src/aws/function.ts +233 -178
  145. package/src/aws/index.ts +1 -0
  146. package/src/aws/policy-attachment.ts +15 -10
  147. package/src/aws/policy.ts +75 -54
  148. package/src/aws/queue.ts +53 -36
  149. package/src/aws/retry.ts +38 -0
  150. package/src/aws/role.ts +121 -90
  151. package/src/aws/ses.ts +101 -73
  152. package/src/aws/ssm-parameter.ts +315 -0
  153. package/src/aws/table.ts +61 -90
  154. package/src/cloudflare/account-id.ts +2 -0
  155. package/src/cloudflare/api.ts +26 -3
  156. package/src/cloudflare/bound.ts +1 -1
  157. package/src/cloudflare/index.ts +2 -1
  158. package/src/cloudflare/queue-consumer.ts +27 -1
  159. package/src/cloudflare/queue.ts +29 -0
  160. package/src/cloudflare/route.ts +86 -2
  161. package/src/cloudflare/worker-metadata.ts +1 -2
  162. package/src/cloudflare/worker.ts +24 -10
  163. package/src/cloudflare/workflow.ts +8 -0
  164. package/src/cloudflare/wrangler.json.ts +8 -1
  165. package/src/destroy.ts +1 -1
  166. package/src/dns/godaddy.ts +3 -1
  167. package/src/fs/file-system-state-store.ts +16 -2
  168. package/src/github/secret.ts +2 -0
  169. package/src/neon/api.ts +2 -1
  170. package/src/sentry/api.ts +2 -1
  171. package/src/test/bun.ts +1 -7
  172. package/src/test/prune.ts +31 -4
  173. package/src/test/vitest.ts +209 -0
  174. package/src/upstash/api.ts +2 -1
  175. package/src/util/retry.ts +3 -3
  176. package/src/util/safe-fetch.ts +62 -0
  177. package/src/vercel/api.ts +2 -1
  178. package/src/web/vitepress/process-front-matter-files.ts +15 -7
  179. package/src/aws/control/types.d.ts +0 -85129
package/src/aws/bucket.ts CHANGED
@@ -13,6 +13,7 @@ import {
13
13
  import type { Context } from "../context.ts";
14
14
  import { Resource } from "../resource.ts";
15
15
  import { ignore } from "../util/ignore.ts";
16
+ import { retry } from "./retry.ts";
16
17
 
17
18
  /**
18
19
  * Properties for creating or updating an S3 bucket
@@ -133,52 +134,60 @@ export const Bucket = Resource(
133
134
 
134
135
  if (this.phase === "delete") {
135
136
  await ignore(NoSuchBucket.name, () =>
136
- client.send(
137
- new DeleteBucketCommand({
138
- Bucket: props.bucketName,
139
- }),
137
+ retry(() =>
138
+ client.send(
139
+ new DeleteBucketCommand({
140
+ Bucket: props.bucketName,
141
+ }),
142
+ ),
140
143
  ),
141
144
  );
142
145
  return this.destroy();
143
146
  }
144
147
  try {
145
148
  // Check if bucket exists
146
- await client.send(
147
- new HeadBucketCommand({
148
- Bucket: props.bucketName,
149
- }),
149
+ await retry(() =>
150
+ client.send(
151
+ new HeadBucketCommand({
152
+ Bucket: props.bucketName,
153
+ }),
154
+ ),
150
155
  );
151
156
 
152
157
  // Update tags if they changed and bucket exists
153
158
  if (this.phase === "update" && props.tags) {
154
- await client.send(
155
- new PutBucketTaggingCommand({
156
- Bucket: props.bucketName,
157
- Tagging: {
158
- TagSet: Object.entries(props.tags).map(([Key, Value]) => ({
159
- Key,
160
- Value,
161
- })),
162
- },
163
- }),
164
- );
165
- }
166
- } catch (error: any) {
167
- if (error.name === "NotFound") {
168
- // Create bucket if it doesn't exist
169
- await client.send(
170
- new CreateBucketCommand({
171
- Bucket: props.bucketName,
172
- // Add tags during creation if specified
173
- ...(props.tags && {
159
+ await retry(() =>
160
+ client.send(
161
+ new PutBucketTaggingCommand({
162
+ Bucket: props.bucketName,
174
163
  Tagging: {
175
- TagSet: Object.entries(props.tags).map(([Key, Value]) => ({
164
+ TagSet: Object.entries(props.tags!).map(([Key, Value]) => ({
176
165
  Key,
177
166
  Value,
178
167
  })),
179
168
  },
180
169
  }),
181
- }),
170
+ ),
171
+ );
172
+ }
173
+ } catch (error: any) {
174
+ if (error.name === "NotFound") {
175
+ // Create bucket if it doesn't exist
176
+ await retry(() =>
177
+ client.send(
178
+ new CreateBucketCommand({
179
+ Bucket: props.bucketName,
180
+ // Add tags during creation if specified
181
+ ...(props.tags && {
182
+ Tagging: {
183
+ TagSet: Object.entries(props.tags).map(([Key, Value]) => ({
184
+ Key,
185
+ Value,
186
+ })),
187
+ },
188
+ }),
189
+ }),
190
+ ),
182
191
  );
183
192
  } else {
184
193
  throw error;
@@ -188,11 +197,19 @@ export const Bucket = Resource(
188
197
  // Get bucket details
189
198
  const [locationResponse, versioningResponse, aclResponse] =
190
199
  await Promise.all([
191
- client.send(new GetBucketLocationCommand({ Bucket: props.bucketName })),
192
- client.send(
193
- new GetBucketVersioningCommand({ Bucket: props.bucketName }),
200
+ retry(() =>
201
+ client.send(
202
+ new GetBucketLocationCommand({ Bucket: props.bucketName }),
203
+ ),
204
+ ),
205
+ retry(() =>
206
+ client.send(
207
+ new GetBucketVersioningCommand({ Bucket: props.bucketName }),
208
+ ),
209
+ ),
210
+ retry(() =>
211
+ client.send(new GetBucketAclCommand({ Bucket: props.bucketName })),
194
212
  ),
195
- client.send(new GetBucketAclCommand({ Bucket: props.bucketName })),
196
213
  ]);
197
214
 
198
215
  const region = locationResponse.LocationConstraint || "us-east-1";
@@ -201,8 +218,10 @@ export const Bucket = Resource(
201
218
  let tags = props.tags;
202
219
  if (!tags) {
203
220
  try {
204
- const taggingResponse = await client.send(
205
- new GetBucketTaggingCommand({ Bucket: props.bucketName }),
221
+ const taggingResponse = await retry(() =>
222
+ client.send(
223
+ new GetBucketTaggingCommand({ Bucket: props.bucketName }),
224
+ ),
206
225
  );
207
226
  tags = Object.fromEntries(
208
227
  taggingResponse.TagSet?.map(({ Key, Value }) => [Key, Value]) || [],
@@ -2,6 +2,7 @@ import { fromNodeProviderChain } from "@aws-sdk/credential-providers";
2
2
  import { loadConfig } from "@aws-sdk/node-config-provider";
3
3
  import { AwsClient } from "aws4fetch";
4
4
 
5
+ import { safeFetch } from "../../util/safe-fetch.ts";
5
6
  import {
6
7
  AlreadyExistsError,
7
8
  CloudControlError,
@@ -202,18 +203,17 @@ export class CloudControlClient {
202
203
  identifier: string,
203
204
  ): Promise<Record<string, any> | undefined> {
204
205
  try {
205
- return JSON.parse(
206
- (
207
- await this.fetch<{
208
- ResourceDescription: {
209
- Properties: string;
210
- };
211
- }>("GetResource", {
212
- TypeName: typeName,
213
- Identifier: identifier,
214
- })
215
- ).ResourceDescription.Properties,
216
- );
206
+ const resource = await this.fetch<{
207
+ Identifier: string;
208
+ TypeName: string;
209
+ ResourceDescription: {
210
+ Properties: string;
211
+ };
212
+ }>("GetResource", {
213
+ TypeName: typeName,
214
+ Identifier: identifier,
215
+ });
216
+ return JSON.parse(resource.ResourceDescription.Properties);
217
217
  } catch (error: any) {
218
218
  if (error instanceof ResourceNotFoundException) {
219
219
  return undefined;
@@ -366,7 +366,7 @@ export class CloudControlClient {
366
366
  },
367
367
  ] as const;
368
368
  const signedRequest = await this.client.sign(...args);
369
- const response = await fetch(signedRequest);
369
+ const response = await safeFetch(signedRequest);
370
370
 
371
371
  if (!response.ok) {
372
372
  const data: any = await response.json();
@@ -120,6 +120,7 @@ const properties = {
120
120
  "DistributionDomainName",
121
121
  "DistributionHostedZoneId",
122
122
  "DomainName",
123
+ "DomainNameArn",
123
124
  "RegionalDomainName",
124
125
  "RegionalHostedZoneId",
125
126
  ],
@@ -533,7 +534,11 @@ const properties = {
533
534
  ],
534
535
  },
535
536
  AutoScaling: {
536
- AutoScalingGroup: ["AutoScalingGroupName", "InstanceId"],
537
+ AutoScalingGroup: [
538
+ "AutoScalingGroupARN",
539
+ "AutoScalingGroupName",
540
+ "InstanceId",
541
+ ],
537
542
  LaunchConfiguration: [
538
543
  "AssociatePublicIpAddress",
539
544
  "BlockDeviceMappings",
@@ -757,6 +762,18 @@ const properties = {
757
762
  "GuardrailIdentifier",
758
763
  "Version",
759
764
  ],
765
+ IntelligentPromptRouter: [
766
+ "CreatedAt",
767
+ "Description",
768
+ "FallbackModel",
769
+ "Models",
770
+ "PromptRouterArn",
771
+ "PromptRouterName",
772
+ "RoutingCriteria",
773
+ "Status",
774
+ "Type",
775
+ "UpdatedAt",
776
+ ],
760
777
  KnowledgeBase: [
761
778
  "CreatedAt",
762
779
  "FailureReasons",
@@ -1092,7 +1109,6 @@ const properties = {
1092
1109
  "ETag",
1093
1110
  "Id",
1094
1111
  "LastModifiedTime",
1095
- "ManagedCertificateRequest",
1096
1112
  "Name",
1097
1113
  "Status",
1098
1114
  ],
@@ -1537,7 +1553,14 @@ const properties = {
1537
1553
  "SubnetArns",
1538
1554
  "VpcEndpointId",
1539
1555
  ],
1540
- LocationAzureBlob: ["AzureBlobContainerUrl", "LocationArn", "LocationUri"],
1556
+ LocationAzureBlob: [
1557
+ "AzureBlobContainerUrl",
1558
+ "CmkSecretConfig.SecretArn",
1559
+ "LocationArn",
1560
+ "LocationUri",
1561
+ "ManagedSecretConfig",
1562
+ "ManagedSecretConfig.SecretArn",
1563
+ ],
1541
1564
  LocationEFS: [
1542
1565
  "Ec2Config",
1543
1566
  "EfsFilesystemArn",
@@ -1571,14 +1594,16 @@ const properties = {
1571
1594
  ],
1572
1595
  LocationHDFS: ["LocationArn", "LocationUri"],
1573
1596
  LocationNFS: ["LocationArn", "LocationUri"],
1574
- LocationObjectStorage: ["BucketName", "LocationArn", "LocationUri"],
1597
+ LocationObjectStorage: [
1598
+ "BucketName",
1599
+ "CmkSecretConfig.SecretArn",
1600
+ "LocationArn",
1601
+ "LocationUri",
1602
+ "ManagedSecretConfig",
1603
+ "ManagedSecretConfig.SecretArn",
1604
+ ],
1575
1605
  LocationS3: ["LocationArn", "LocationUri", "S3BucketArn"],
1576
1606
  LocationSMB: ["LocationArn", "LocationUri"],
1577
- StorageSystem: [
1578
- "ConnectivityStatus",
1579
- "SecretsManagerArn",
1580
- "StorageSystemArn",
1581
- ],
1582
1607
  Task: [
1583
1608
  "DestinationLocationArn",
1584
1609
  "DestinationNetworkInterfaceArns",
@@ -1632,6 +1657,16 @@ const properties = {
1632
1657
  "RootDomainUnitId",
1633
1658
  "Status",
1634
1659
  ],
1660
+ DomainUnit: [
1661
+ "CreatedAt",
1662
+ "DomainId",
1663
+ "DomainIdentifier",
1664
+ "Id",
1665
+ "Identifier",
1666
+ "LastUpdatedAt",
1667
+ "ParentDomainUnitId",
1668
+ "ParentDomainUnitIdentifier",
1669
+ ],
1635
1670
  Environment: [
1636
1671
  "AwsAccountId",
1637
1672
  "AwsAccountRegion",
@@ -1686,15 +1721,29 @@ const properties = {
1686
1721
  "GroupName",
1687
1722
  "Id",
1688
1723
  ],
1724
+ Owner: ["DomainIdentifier", "EntityIdentifier", "EntityType", "Owner"],
1689
1725
  Project: [
1690
1726
  "CreatedAt",
1691
1727
  "CreatedBy",
1692
1728
  "DomainId",
1693
1729
  "DomainIdentifier",
1730
+ "DomainUnitId",
1694
1731
  "Id",
1695
1732
  "LastUpdatedAt",
1733
+ "ProjectProfileId",
1734
+ "ProjectStatus",
1696
1735
  ],
1697
1736
  ProjectMembership: ["DomainIdentifier", "Member", "ProjectIdentifier"],
1737
+ ProjectProfile: [
1738
+ "CreatedAt",
1739
+ "CreatedBy",
1740
+ "DomainId",
1741
+ "DomainIdentifier",
1742
+ "DomainUnitId",
1743
+ "Id",
1744
+ "Identifier",
1745
+ "LastUpdatedAt",
1746
+ ],
1698
1747
  SubscriptionTarget: [
1699
1748
  "CreatedAt",
1700
1749
  "CreatedBy",
@@ -1949,7 +1998,6 @@ const properties = {
1949
1998
  EIP: [
1950
1999
  "Address",
1951
2000
  "AllocationId",
1952
- "Domain",
1953
2001
  "IpamPoolId",
1954
2002
  "NetworkBorderGroup",
1955
2003
  "PublicIp",
@@ -2180,6 +2228,7 @@ const properties = {
2180
2228
  "AlternatePathHints",
2181
2229
  "Explanations",
2182
2230
  "FilterInArns",
2231
+ "FilterOutArns",
2183
2232
  "ForwardPathComponents",
2184
2233
  "NetworkInsightsAnalysisArn",
2185
2234
  "NetworkInsightsAnalysisId",
@@ -2591,7 +2640,6 @@ const properties = {
2591
2640
  PrimaryTaskSet: ["Cluster", "Service"],
2592
2641
  Service: [
2593
2642
  "Cluster",
2594
- "DeploymentController",
2595
2643
  "LaunchType",
2596
2644
  "Name",
2597
2645
  "Role",
@@ -3064,7 +3112,6 @@ const properties = {
3064
3112
  "FleetId",
3065
3113
  "GameServerContainerGroupDefinitionArn",
3066
3114
  "InstanceType",
3067
- "Locations",
3068
3115
  "MaximumGameServerContainerGroupsPerInstance",
3069
3116
  "PerInstanceContainerGroupDefinitionArn",
3070
3117
  "Status",
@@ -3084,6 +3131,7 @@ const properties = {
3084
3131
  "CertificateConfiguration",
3085
3132
  "ComputeType",
3086
3133
  "EC2InstanceType",
3134
+ "FleetArn",
3087
3135
  "FleetId",
3088
3136
  "FleetType",
3089
3137
  "InstanceRoleARN",
@@ -3822,7 +3870,7 @@ const properties = {
3822
3870
  ],
3823
3871
  },
3824
3872
  Kendra: {
3825
- DataSource: ["Arn", "Id", "Type"],
3873
+ DataSource: ["Arn", "Id", "IndexId", "Type"],
3826
3874
  Faq: [
3827
3875
  "Arn",
3828
3876
  "Description",
@@ -4328,7 +4376,7 @@ const properties = {
4328
4376
  Queue: ["Arn", "Name", "Name"],
4329
4377
  },
4330
4378
  MediaLive: {
4331
- Channel: ["AnywhereSettings", "Arn", "Inputs", "Vpc"],
4379
+ Channel: ["Arn", "Inputs", "Vpc"],
4332
4380
  ChannelPlacementGroup: ["Arn", "Channels", "ClusterId", "Id", "State"],
4333
4381
  CloudWatchAlarmTemplate: [
4334
4382
  "Arn",
@@ -4848,6 +4896,22 @@ const properties = {
4848
4896
  "Status",
4849
4897
  "StorageCapacity",
4850
4898
  "Type",
4899
+ "Uuid",
4900
+ ],
4901
+ WorkflowVersion: [
4902
+ "Accelerators",
4903
+ "Arn",
4904
+ "CreationTime",
4905
+ "DefinitionUri",
4906
+ "Engine",
4907
+ "Main",
4908
+ "ParameterTemplate",
4909
+ "Status",
4910
+ "Type",
4911
+ "Uuid",
4912
+ "VersionName",
4913
+ "WorkflowBucketOwnerId",
4914
+ "WorkflowId",
4851
4915
  ],
4852
4916
  },
4853
4917
  OpenSearchServerless: {
@@ -5808,11 +5872,8 @@ const properties = {
5808
5872
  "IpAddressCount",
5809
5873
  "Name",
5810
5874
  "OutpostArn",
5811
- "OutpostArn",
5812
- "PreferredInstanceType",
5813
5875
  "PreferredInstanceType",
5814
5876
  "ResolverEndpointId",
5815
- "ResolverEndpointType",
5816
5877
  "SecurityGroupIds",
5817
5878
  ],
5818
5879
  ResolverQueryLoggingConfig: [
@@ -5911,6 +5972,14 @@ const properties = {
5911
5972
  StorageLensGroup: ["Name", "StorageLensGroupArn"],
5912
5973
  },
5913
5974
  S3Express: {
5975
+ AccessPoint: [
5976
+ "Arn",
5977
+ "Bucket",
5978
+ "BucketAccountId",
5979
+ "Name",
5980
+ "NetworkOrigin",
5981
+ "VpcConfiguration",
5982
+ ],
5914
5983
  BucketPolicy: ["Bucket"],
5915
5984
  DirectoryBucket: [
5916
5985
  "Arn",
@@ -5983,6 +6052,11 @@ const properties = {
5983
6052
  "AddonSubscriptionArn",
5984
6053
  "AddonSubscriptionId",
5985
6054
  ],
6055
+ MailManagerAddressList: [
6056
+ "AddressListArn",
6057
+ "AddressListId",
6058
+ "AddressListName",
6059
+ ],
5986
6060
  MailManagerArchive: [
5987
6061
  "ArchiveArn",
5988
6062
  "ArchiveId",
@@ -6042,6 +6116,9 @@ const properties = {
6042
6116
  Plan: ["Arn", "ContactId"],
6043
6117
  Rotation: ["Arn"],
6044
6118
  },
6119
+ SSMGuiConnect: {
6120
+ Preferences: ["AccountId"],
6121
+ },
6045
6122
  SSMIncidents: {
6046
6123
  ReplicationSet: ["Arn"],
6047
6124
  ResponsePlan: ["Arn", "Name"],
@@ -6074,6 +6151,7 @@ const properties = {
6074
6151
  "AppArn",
6075
6152
  "AppName",
6076
6153
  "AppType",
6154
+ "BuiltInLifecycleConfigArn",
6077
6155
  "DomainId",
6078
6156
  "ResourceSpec",
6079
6157
  "Tags",
@@ -6578,7 +6656,6 @@ const properties = {
6578
6656
  ],
6579
6657
  ScheduledQuery: [
6580
6658
  "Arn",
6581
- "ClientToken",
6582
6659
  "ErrorReportConfiguration",
6583
6660
  "KmsKeyId",
6584
6661
  "NotificationConfiguration",
@@ -6939,7 +7016,7 @@ const properties = {
6939
7016
  TransactionSearchConfig: ["AccountId"],
6940
7017
  },
6941
7018
  Alexa: {
6942
- ASK: ["VendorId"],
7019
+ ASKSkill: ["VendorId"],
6943
7020
  },
6944
7021
  };
6945
7022
 
@@ -9,6 +9,7 @@ import { createCloudControlClient, type ProgressEvent } from "./client.ts";
9
9
  import {
10
10
  AlreadyExistsError,
11
11
  ConcurrentOperationError,
12
+ NotFoundError,
12
13
  UpdateFailedError,
13
14
  } from "./error.ts";
14
15
  import readOnlyPropertiesMap from "./properties.ts";
@@ -206,7 +207,19 @@ export const CloudControlResource = Resource(
206
207
  // register a catch-all for AWS::* resources (Resources created with the Control API)
207
208
  registerDynamicResource((typeName) => {
208
209
  if (typeName.startsWith("AWS::")) {
209
- return Resource(typeName, CloudControlLifecycle) as unknown as Provider;
210
+ return Resource(
211
+ typeName,
212
+ function (
213
+ this: Context<CloudControlResource, CloudControlResourceProps>,
214
+ id: string,
215
+ props: Omit<CloudControlResourceProps, "typeName">,
216
+ ) {
217
+ return CloudControlLifecycle.bind(this)(id, {
218
+ typeName,
219
+ ...props,
220
+ });
221
+ },
222
+ ) as unknown as Provider;
210
223
  }
211
224
  return undefined;
212
225
  });
@@ -228,8 +241,11 @@ async function CloudControlLifecycle(
228
241
  try {
229
242
  await client.deleteResource(props.typeName, this.output.id);
230
243
  } catch (error) {
231
- // Log but don't throw on cleanup errors
232
- console.error(`Error deleting resource ${id}:`, error);
244
+ if (error instanceof NotFoundError) {
245
+ // great, this is the desired outcome
246
+ } else {
247
+ throw error;
248
+ }
233
249
  }
234
250
  }
235
251
  return this.destroy();