@btc-embedded/cdk-extensions 0.9.0 → 0.9.2

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 (51) hide show
  1. package/.jsii +554 -2
  2. package/API.md +1861 -59
  3. package/CHANGELOG.md +42 -0
  4. package/lib/constructs/EventPipe.d.ts +119 -0
  5. package/lib/constructs/EventPipe.js +103 -0
  6. package/lib/constructs/S3Bucket.d.ts +10 -0
  7. package/lib/constructs/S3Bucket.js +39 -0
  8. package/lib/constructs/SecureRestApi.js +1 -1
  9. package/lib/constructs/SecureRestApiV2.js +1 -1
  10. package/lib/constructs/index.d.ts +2 -0
  11. package/lib/constructs/index.js +3 -1
  12. package/lib/extensions/ApiGatewayExtension.js +1 -1
  13. package/lib/extensions/ApplicationLoadBalancerExtension.js +1 -1
  14. package/lib/extensions/ApplicationLoadBalancerExtensionV2.js +1 -1
  15. package/lib/extensions/CloudMapExtension.js +1 -1
  16. package/lib/extensions/DeactivatableServiceExtension.d.ts +10 -0
  17. package/lib/extensions/DeactivatableServiceExtension.js +32 -0
  18. package/lib/extensions/DocumentDbAccessExtension.js +1 -1
  19. package/lib/extensions/DomainEventMessagingExtension.js +1 -1
  20. package/lib/extensions/ExtraContainerExtension.js +1 -1
  21. package/lib/extensions/HTTPApiExtension.js +1 -1
  22. package/lib/extensions/LogExtension.js +1 -1
  23. package/lib/extensions/ModifyContainerDefinitionExtension.js +1 -1
  24. package/lib/extensions/ModifyTaskDefinitionExtension.js +1 -1
  25. package/lib/extensions/OpenTelemetryExtension.js +1 -1
  26. package/lib/extensions/PostgresDbAccessExtension.js +1 -1
  27. package/lib/extensions/SharedVolumeExtension.js +1 -1
  28. package/lib/extensions/TcpKeepAliveExtension.js +1 -1
  29. package/lib/extensions/index.d.ts +1 -0
  30. package/lib/extensions/index.js +2 -1
  31. package/lib/platform/ApiGateway.js +1 -1
  32. package/lib/platform/ApiGatewayV2.js +1 -1
  33. package/lib/platform/ApiUserPoolClient.js +1 -1
  34. package/lib/platform/ApplicationLoadBalancer.js +1 -1
  35. package/lib/platform/ApplicationLoadBalancerV2.js +1 -1
  36. package/lib/platform/ApplicationUserPoolClient.js +1 -1
  37. package/lib/platform/CognitoUserPool.js +1 -1
  38. package/lib/platform/DefaultUserPoolClients.js +1 -1
  39. package/lib/platform/DocumentDB.js +1 -1
  40. package/lib/platform/PrivateDnsNamespace.js +1 -1
  41. package/lib/platform/ResourceServer.js +1 -1
  42. package/lib/platform/Vpc.js +1 -1
  43. package/lib/utils/configFileParsing.d.ts +7 -0
  44. package/lib/utils/configFileParsing.js +31 -2
  45. package/lib/utils/deactivatedConstruct.d.ts +6 -0
  46. package/lib/utils/deactivatedConstruct.js +25 -0
  47. package/lib/utils/index.d.ts +1 -0
  48. package/lib/utils/index.js +2 -1
  49. package/package.json +2 -1
  50. package/rfcs/001-api-gateway.md +28 -22
  51. package/rfcs/002-developer-stacks.md +268 -0
package/API.md CHANGED
@@ -1066,6 +1066,107 @@ The tree node.
1066
1066
  ---
1067
1067
 
1068
1068
 
1069
+ ### EventPipe <a name="EventPipe" id="@btc-embedded/cdk-extensions.EventPipe"></a>
1070
+
1071
+ A wrapper for the L1 event pipe with the ability to deactivate it within the stack.
1072
+
1073
+ #### Initializers <a name="Initializers" id="@btc-embedded/cdk-extensions.EventPipe.Initializer"></a>
1074
+
1075
+ ```typescript
1076
+ import { EventPipe } from '@btc-embedded/cdk-extensions'
1077
+
1078
+ new EventPipe(scope: Construct, id: string, props: EventPipeProps)
1079
+ ```
1080
+
1081
+ | **Name** | **Type** | **Description** |
1082
+ | --- | --- | --- |
1083
+ | <code><a href="#@btc-embedded/cdk-extensions.EventPipe.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
1084
+ | <code><a href="#@btc-embedded/cdk-extensions.EventPipe.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
1085
+ | <code><a href="#@btc-embedded/cdk-extensions.EventPipe.Initializer.parameter.props">props</a></code> | <code><a href="#@btc-embedded/cdk-extensions.EventPipeProps">EventPipeProps</a></code> | *No description.* |
1086
+
1087
+ ---
1088
+
1089
+ ##### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.EventPipe.Initializer.parameter.scope"></a>
1090
+
1091
+ - *Type:* constructs.Construct
1092
+
1093
+ ---
1094
+
1095
+ ##### `id`<sup>Required</sup> <a name="id" id="@btc-embedded/cdk-extensions.EventPipe.Initializer.parameter.id"></a>
1096
+
1097
+ - *Type:* string
1098
+
1099
+ ---
1100
+
1101
+ ##### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.EventPipe.Initializer.parameter.props"></a>
1102
+
1103
+ - *Type:* <a href="#@btc-embedded/cdk-extensions.EventPipeProps">EventPipeProps</a>
1104
+
1105
+ ---
1106
+
1107
+ #### Methods <a name="Methods" id="Methods"></a>
1108
+
1109
+ | **Name** | **Description** |
1110
+ | --- | --- |
1111
+ | <code><a href="#@btc-embedded/cdk-extensions.EventPipe.toString">toString</a></code> | Returns a string representation of this construct. |
1112
+
1113
+ ---
1114
+
1115
+ ##### `toString` <a name="toString" id="@btc-embedded/cdk-extensions.EventPipe.toString"></a>
1116
+
1117
+ ```typescript
1118
+ public toString(): string
1119
+ ```
1120
+
1121
+ Returns a string representation of this construct.
1122
+
1123
+ #### Static Functions <a name="Static Functions" id="Static Functions"></a>
1124
+
1125
+ | **Name** | **Description** |
1126
+ | --- | --- |
1127
+ | <code><a href="#@btc-embedded/cdk-extensions.EventPipe.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
1128
+
1129
+ ---
1130
+
1131
+ ##### ~~`isConstruct`~~ <a name="isConstruct" id="@btc-embedded/cdk-extensions.EventPipe.isConstruct"></a>
1132
+
1133
+ ```typescript
1134
+ import { EventPipe } from '@btc-embedded/cdk-extensions'
1135
+
1136
+ EventPipe.isConstruct(x: any)
1137
+ ```
1138
+
1139
+ Checks if `x` is a construct.
1140
+
1141
+ ###### `x`<sup>Required</sup> <a name="x" id="@btc-embedded/cdk-extensions.EventPipe.isConstruct.parameter.x"></a>
1142
+
1143
+ - *Type:* any
1144
+
1145
+ Any object.
1146
+
1147
+ ---
1148
+
1149
+ #### Properties <a name="Properties" id="Properties"></a>
1150
+
1151
+ | **Name** | **Type** | **Description** |
1152
+ | --- | --- | --- |
1153
+ | <code><a href="#@btc-embedded/cdk-extensions.EventPipe.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
1154
+
1155
+ ---
1156
+
1157
+ ##### `node`<sup>Required</sup> <a name="node" id="@btc-embedded/cdk-extensions.EventPipe.property.node"></a>
1158
+
1159
+ ```typescript
1160
+ public readonly node: Node;
1161
+ ```
1162
+
1163
+ - *Type:* constructs.Node
1164
+
1165
+ The tree node.
1166
+
1167
+ ---
1168
+
1169
+
1069
1170
  ### PrivateDnsNamespace <a name="PrivateDnsNamespace" id="@btc-embedded/cdk-extensions.PrivateDnsNamespace"></a>
1070
1171
 
1071
1172
  #### Initializers <a name="Initializers" id="@btc-embedded/cdk-extensions.PrivateDnsNamespace.Initializer"></a>
@@ -1220,83 +1321,1219 @@ new ResourceServer(scope: Construct, id: string, props: ResourceServerProps)
1220
1321
 
1221
1322
  ---
1222
1323
 
1223
- #### Methods <a name="Methods" id="Methods"></a>
1324
+ #### Methods <a name="Methods" id="Methods"></a>
1325
+
1326
+ | **Name** | **Description** |
1327
+ | --- | --- |
1328
+ | <code><a href="#@btc-embedded/cdk-extensions.ResourceServer.toString">toString</a></code> | Returns a string representation of this construct. |
1329
+ | <code><a href="#@btc-embedded/cdk-extensions.ResourceServer.createOAuthScopes">createOAuthScopes</a></code> | *No description.* |
1330
+
1331
+ ---
1332
+
1333
+ ##### `toString` <a name="toString" id="@btc-embedded/cdk-extensions.ResourceServer.toString"></a>
1334
+
1335
+ ```typescript
1336
+ public toString(): string
1337
+ ```
1338
+
1339
+ Returns a string representation of this construct.
1340
+
1341
+ ##### `createOAuthScopes` <a name="createOAuthScopes" id="@btc-embedded/cdk-extensions.ResourceServer.createOAuthScopes"></a>
1342
+
1343
+ ```typescript
1344
+ public createOAuthScopes(): OAuthScope[]
1345
+ ```
1346
+
1347
+ #### Static Functions <a name="Static Functions" id="Static Functions"></a>
1348
+
1349
+ | **Name** | **Description** |
1350
+ | --- | --- |
1351
+ | <code><a href="#@btc-embedded/cdk-extensions.ResourceServer.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
1352
+
1353
+ ---
1354
+
1355
+ ##### ~~`isConstruct`~~ <a name="isConstruct" id="@btc-embedded/cdk-extensions.ResourceServer.isConstruct"></a>
1356
+
1357
+ ```typescript
1358
+ import { ResourceServer } from '@btc-embedded/cdk-extensions'
1359
+
1360
+ ResourceServer.isConstruct(x: any)
1361
+ ```
1362
+
1363
+ Checks if `x` is a construct.
1364
+
1365
+ ###### `x`<sup>Required</sup> <a name="x" id="@btc-embedded/cdk-extensions.ResourceServer.isConstruct.parameter.x"></a>
1366
+
1367
+ - *Type:* any
1368
+
1369
+ Any object.
1370
+
1371
+ ---
1372
+
1373
+ #### Properties <a name="Properties" id="Properties"></a>
1374
+
1375
+ | **Name** | **Type** | **Description** |
1376
+ | --- | --- | --- |
1377
+ | <code><a href="#@btc-embedded/cdk-extensions.ResourceServer.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
1378
+ | <code><a href="#@btc-embedded/cdk-extensions.ResourceServer.property.resourceServerInstance">resourceServerInstance</a></code> | <code>aws-cdk-lib.aws_cognito.IUserPoolResourceServer</code> | *No description.* |
1379
+
1380
+ ---
1381
+
1382
+ ##### `node`<sup>Required</sup> <a name="node" id="@btc-embedded/cdk-extensions.ResourceServer.property.node"></a>
1383
+
1384
+ ```typescript
1385
+ public readonly node: Node;
1386
+ ```
1387
+
1388
+ - *Type:* constructs.Node
1389
+
1390
+ The tree node.
1391
+
1392
+ ---
1393
+
1394
+ ##### `resourceServerInstance`<sup>Required</sup> <a name="resourceServerInstance" id="@btc-embedded/cdk-extensions.ResourceServer.property.resourceServerInstance"></a>
1395
+
1396
+ ```typescript
1397
+ public readonly resourceServerInstance: IUserPoolResourceServer;
1398
+ ```
1399
+
1400
+ - *Type:* aws-cdk-lib.aws_cognito.IUserPoolResourceServer
1401
+
1402
+ ---
1403
+
1404
+
1405
+ ### S3Bucket <a name="S3Bucket" id="@btc-embedded/cdk-extensions.S3Bucket"></a>
1406
+
1407
+ Wrapper for the {@link Bucket} constructs that adds additional properties, if a developer stack is detected.
1408
+
1409
+ Will cause files to expire after tree days and allows to delete the
1410
+ bucket and all its contents, if the stack is deleted.
1411
+
1412
+ #### Initializers <a name="Initializers" id="@btc-embedded/cdk-extensions.S3Bucket.Initializer"></a>
1413
+
1414
+ ```typescript
1415
+ import { S3Bucket } from '@btc-embedded/cdk-extensions'
1416
+
1417
+ new S3Bucket(scope: Construct, id: string, props?: BucketProps)
1418
+ ```
1419
+
1420
+ | **Name** | **Type** | **Description** |
1421
+ | --- | --- | --- |
1422
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
1423
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
1424
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.Initializer.parameter.props">props</a></code> | <code>aws-cdk-lib.aws_s3.BucketProps</code> | *No description.* |
1425
+
1426
+ ---
1427
+
1428
+ ##### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.S3Bucket.Initializer.parameter.scope"></a>
1429
+
1430
+ - *Type:* constructs.Construct
1431
+
1432
+ ---
1433
+
1434
+ ##### `id`<sup>Required</sup> <a name="id" id="@btc-embedded/cdk-extensions.S3Bucket.Initializer.parameter.id"></a>
1435
+
1436
+ - *Type:* string
1437
+
1438
+ ---
1439
+
1440
+ ##### `props`<sup>Optional</sup> <a name="props" id="@btc-embedded/cdk-extensions.S3Bucket.Initializer.parameter.props"></a>
1441
+
1442
+ - *Type:* aws-cdk-lib.aws_s3.BucketProps
1443
+
1444
+ ---
1445
+
1446
+ #### Methods <a name="Methods" id="Methods"></a>
1447
+
1448
+ | **Name** | **Description** |
1449
+ | --- | --- |
1450
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.toString">toString</a></code> | Returns a string representation of this construct. |
1451
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
1452
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.addEventNotification">addEventNotification</a></code> | Adds a bucket notification event destination. |
1453
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.addObjectCreatedNotification">addObjectCreatedNotification</a></code> | Subscribes a destination to receive notifications when an object is created in the bucket. |
1454
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.addObjectRemovedNotification">addObjectRemovedNotification</a></code> | Subscribes a destination to receive notifications when an object is removed from the bucket. |
1455
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.addToResourcePolicy">addToResourcePolicy</a></code> | Adds a statement to the resource policy for a principal (i.e. account/role/service) to perform actions on this bucket and/or its contents. Use `bucketArn` and `arnForObjects(keys)` to obtain ARNs for this bucket or objects. |
1456
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.arnForObjects">arnForObjects</a></code> | Returns an ARN that represents all objects within the bucket that match the key pattern specified. |
1457
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.enableEventBridgeNotification">enableEventBridgeNotification</a></code> | Enables event bridge notification, causing all events below to be sent to EventBridge:. |
1458
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.grantDelete">grantDelete</a></code> | Grants s3:DeleteObject* permission to an IAM principal for objects in this bucket. |
1459
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.grantPublicAccess">grantPublicAccess</a></code> | Allows unrestricted access to objects from this bucket. |
1460
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.grantPut">grantPut</a></code> | Grants s3:PutObject* and s3:Abort* permissions for this bucket to an IAM principal. |
1461
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.grantPutAcl">grantPutAcl</a></code> | Grant the given IAM identity permissions to modify the ACLs of objects in the given Bucket. |
1462
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.grantRead">grantRead</a></code> | Grant read permissions for this bucket and it's contents to an IAM principal (Role/Group/User). |
1463
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.grantReadWrite">grantReadWrite</a></code> | Grants read/write permissions for this bucket and it's contents to an IAM principal (Role/Group/User). |
1464
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.grantWrite">grantWrite</a></code> | Grant write permissions to this bucket to an IAM principal. |
1465
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.onCloudTrailEvent">onCloudTrailEvent</a></code> | Define a CloudWatch event that triggers when something happens to this repository. |
1466
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.onCloudTrailPutObject">onCloudTrailPutObject</a></code> | Defines an AWS CloudWatch event that triggers when an object is uploaded to the specified paths (keys) in this bucket using the PutObject API call. |
1467
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.onCloudTrailWriteObject">onCloudTrailWriteObject</a></code> | Defines an AWS CloudWatch event that triggers when an object at the specified paths (keys) in this bucket are written to. |
1468
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.s3UrlForObject">s3UrlForObject</a></code> | The S3 URL of an S3 object. For example:. |
1469
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.transferAccelerationUrlForObject">transferAccelerationUrlForObject</a></code> | The https Transfer Acceleration URL of an S3 object. |
1470
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.urlForObject">urlForObject</a></code> | The https URL of an S3 object. Specify `regional: false` at the options for non-regional URLs. For example:. |
1471
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.virtualHostedUrlForObject">virtualHostedUrlForObject</a></code> | The virtual hosted-style URL of an S3 object. Specify `regional: false` at the options for non-regional URL. For example:. |
1472
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.addCorsRule">addCorsRule</a></code> | Adds a cross-origin access configuration for objects in an Amazon S3 bucket. |
1473
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.addInventory">addInventory</a></code> | Add an inventory configuration. |
1474
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.addLifecycleRule">addLifecycleRule</a></code> | Add a lifecycle rule to the bucket. |
1475
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.addMetric">addMetric</a></code> | Adds a metrics configuration for the CloudWatch request metrics from the bucket. |
1476
+
1477
+ ---
1478
+
1479
+ ##### `toString` <a name="toString" id="@btc-embedded/cdk-extensions.S3Bucket.toString"></a>
1480
+
1481
+ ```typescript
1482
+ public toString(): string
1483
+ ```
1484
+
1485
+ Returns a string representation of this construct.
1486
+
1487
+ ##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@btc-embedded/cdk-extensions.S3Bucket.applyRemovalPolicy"></a>
1488
+
1489
+ ```typescript
1490
+ public applyRemovalPolicy(policy: RemovalPolicy): void
1491
+ ```
1492
+
1493
+ Apply the given removal policy to this resource.
1494
+
1495
+ The Removal Policy controls what happens to this resource when it stops
1496
+ being managed by CloudFormation, either because you've removed it from the
1497
+ CDK application or because you've made a change that requires the resource
1498
+ to be replaced.
1499
+
1500
+ The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
1501
+ account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
1502
+
1503
+ ###### `policy`<sup>Required</sup> <a name="policy" id="@btc-embedded/cdk-extensions.S3Bucket.applyRemovalPolicy.parameter.policy"></a>
1504
+
1505
+ - *Type:* aws-cdk-lib.RemovalPolicy
1506
+
1507
+ ---
1508
+
1509
+ ##### `addEventNotification` <a name="addEventNotification" id="@btc-embedded/cdk-extensions.S3Bucket.addEventNotification"></a>
1510
+
1511
+ ```typescript
1512
+ public addEventNotification(event: EventType, dest: IBucketNotificationDestination, filters: ...NotificationKeyFilter[]): void
1513
+ ```
1514
+
1515
+ Adds a bucket notification event destination.
1516
+
1517
+ > [https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
1518
+
1519
+ *Example*
1520
+
1521
+ ```typescript
1522
+ declare const myLambda: lambda.Function;
1523
+ const bucket = new s3.Bucket(this, 'MyBucket');
1524
+ bucket.addEventNotification(s3.EventType.OBJECT_CREATED, new s3n.LambdaDestination(myLambda), {prefix: 'home/myusername/*'});
1525
+ ```
1526
+
1527
+
1528
+ ###### `event`<sup>Required</sup> <a name="event" id="@btc-embedded/cdk-extensions.S3Bucket.addEventNotification.parameter.event"></a>
1529
+
1530
+ - *Type:* aws-cdk-lib.aws_s3.EventType
1531
+
1532
+ The event to trigger the notification.
1533
+
1534
+ ---
1535
+
1536
+ ###### `dest`<sup>Required</sup> <a name="dest" id="@btc-embedded/cdk-extensions.S3Bucket.addEventNotification.parameter.dest"></a>
1537
+
1538
+ - *Type:* aws-cdk-lib.aws_s3.IBucketNotificationDestination
1539
+
1540
+ The notification destination (Lambda, SNS Topic or SQS Queue).
1541
+
1542
+ ---
1543
+
1544
+ ###### `filters`<sup>Required</sup> <a name="filters" id="@btc-embedded/cdk-extensions.S3Bucket.addEventNotification.parameter.filters"></a>
1545
+
1546
+ - *Type:* ...aws-cdk-lib.aws_s3.NotificationKeyFilter[]
1547
+
1548
+ S3 object key filter rules to determine which objects trigger this event.
1549
+
1550
+ Each filter must include a `prefix` and/or `suffix`
1551
+ that will be matched against the s3 object key. Refer to the S3 Developer Guide
1552
+ for details about allowed filter rules.
1553
+
1554
+ ---
1555
+
1556
+ ##### `addObjectCreatedNotification` <a name="addObjectCreatedNotification" id="@btc-embedded/cdk-extensions.S3Bucket.addObjectCreatedNotification"></a>
1557
+
1558
+ ```typescript
1559
+ public addObjectCreatedNotification(dest: IBucketNotificationDestination, filters: ...NotificationKeyFilter[]): void
1560
+ ```
1561
+
1562
+ Subscribes a destination to receive notifications when an object is created in the bucket.
1563
+
1564
+ This is identical to calling
1565
+ `onEvent(EventType.OBJECT_CREATED)`.
1566
+
1567
+ ###### `dest`<sup>Required</sup> <a name="dest" id="@btc-embedded/cdk-extensions.S3Bucket.addObjectCreatedNotification.parameter.dest"></a>
1568
+
1569
+ - *Type:* aws-cdk-lib.aws_s3.IBucketNotificationDestination
1570
+
1571
+ The notification destination (see onEvent).
1572
+
1573
+ ---
1574
+
1575
+ ###### `filters`<sup>Required</sup> <a name="filters" id="@btc-embedded/cdk-extensions.S3Bucket.addObjectCreatedNotification.parameter.filters"></a>
1576
+
1577
+ - *Type:* ...aws-cdk-lib.aws_s3.NotificationKeyFilter[]
1578
+
1579
+ Filters (see onEvent).
1580
+
1581
+ ---
1582
+
1583
+ ##### `addObjectRemovedNotification` <a name="addObjectRemovedNotification" id="@btc-embedded/cdk-extensions.S3Bucket.addObjectRemovedNotification"></a>
1584
+
1585
+ ```typescript
1586
+ public addObjectRemovedNotification(dest: IBucketNotificationDestination, filters: ...NotificationKeyFilter[]): void
1587
+ ```
1588
+
1589
+ Subscribes a destination to receive notifications when an object is removed from the bucket.
1590
+
1591
+ This is identical to calling
1592
+ `onEvent(EventType.OBJECT_REMOVED)`.
1593
+
1594
+ ###### `dest`<sup>Required</sup> <a name="dest" id="@btc-embedded/cdk-extensions.S3Bucket.addObjectRemovedNotification.parameter.dest"></a>
1595
+
1596
+ - *Type:* aws-cdk-lib.aws_s3.IBucketNotificationDestination
1597
+
1598
+ The notification destination (see onEvent).
1599
+
1600
+ ---
1601
+
1602
+ ###### `filters`<sup>Required</sup> <a name="filters" id="@btc-embedded/cdk-extensions.S3Bucket.addObjectRemovedNotification.parameter.filters"></a>
1603
+
1604
+ - *Type:* ...aws-cdk-lib.aws_s3.NotificationKeyFilter[]
1605
+
1606
+ Filters (see onEvent).
1607
+
1608
+ ---
1609
+
1610
+ ##### `addToResourcePolicy` <a name="addToResourcePolicy" id="@btc-embedded/cdk-extensions.S3Bucket.addToResourcePolicy"></a>
1611
+
1612
+ ```typescript
1613
+ public addToResourcePolicy(permission: PolicyStatement): AddToResourcePolicyResult
1614
+ ```
1615
+
1616
+ Adds a statement to the resource policy for a principal (i.e. account/role/service) to perform actions on this bucket and/or its contents. Use `bucketArn` and `arnForObjects(keys)` to obtain ARNs for this bucket or objects.
1617
+
1618
+ Note that the policy statement may or may not be added to the policy.
1619
+ For example, when an `IBucket` is created from an existing bucket,
1620
+ it's not possible to tell whether the bucket already has a policy
1621
+ attached, let alone to re-use that policy to add more statements to it.
1622
+ So it's safest to do nothing in these cases.
1623
+
1624
+ ###### `permission`<sup>Required</sup> <a name="permission" id="@btc-embedded/cdk-extensions.S3Bucket.addToResourcePolicy.parameter.permission"></a>
1625
+
1626
+ - *Type:* aws-cdk-lib.aws_iam.PolicyStatement
1627
+
1628
+ the policy statement to be added to the bucket's policy.
1629
+
1630
+ ---
1631
+
1632
+ ##### `arnForObjects` <a name="arnForObjects" id="@btc-embedded/cdk-extensions.S3Bucket.arnForObjects"></a>
1633
+
1634
+ ```typescript
1635
+ public arnForObjects(keyPattern: string): string
1636
+ ```
1637
+
1638
+ Returns an ARN that represents all objects within the bucket that match the key pattern specified.
1639
+
1640
+ To represent all keys, specify ``"*"``.
1641
+
1642
+ If you need to specify a keyPattern with multiple components, concatenate them into a single string, e.g.:
1643
+
1644
+ arnForObjects(`home/${team}/${user}/*`)
1645
+
1646
+ ###### `keyPattern`<sup>Required</sup> <a name="keyPattern" id="@btc-embedded/cdk-extensions.S3Bucket.arnForObjects.parameter.keyPattern"></a>
1647
+
1648
+ - *Type:* string
1649
+
1650
+ ---
1651
+
1652
+ ##### `enableEventBridgeNotification` <a name="enableEventBridgeNotification" id="@btc-embedded/cdk-extensions.S3Bucket.enableEventBridgeNotification"></a>
1653
+
1654
+ ```typescript
1655
+ public enableEventBridgeNotification(): void
1656
+ ```
1657
+
1658
+ Enables event bridge notification, causing all events below to be sent to EventBridge:.
1659
+
1660
+ Object Deleted (DeleteObject)
1661
+ - Object Deleted (Lifecycle expiration)
1662
+ - Object Restore Initiated
1663
+ - Object Restore Completed
1664
+ - Object Restore Expired
1665
+ - Object Storage Class Changed
1666
+ - Object Access Tier Changed
1667
+ - Object ACL Updated
1668
+ - Object Tags Added
1669
+ - Object Tags Deleted
1670
+
1671
+ ##### `grantDelete` <a name="grantDelete" id="@btc-embedded/cdk-extensions.S3Bucket.grantDelete"></a>
1672
+
1673
+ ```typescript
1674
+ public grantDelete(identity: IGrantable, objectsKeyPattern?: any): Grant
1675
+ ```
1676
+
1677
+ Grants s3:DeleteObject* permission to an IAM principal for objects in this bucket.
1678
+
1679
+ ###### `identity`<sup>Required</sup> <a name="identity" id="@btc-embedded/cdk-extensions.S3Bucket.grantDelete.parameter.identity"></a>
1680
+
1681
+ - *Type:* aws-cdk-lib.aws_iam.IGrantable
1682
+
1683
+ The principal.
1684
+
1685
+ ---
1686
+
1687
+ ###### `objectsKeyPattern`<sup>Optional</sup> <a name="objectsKeyPattern" id="@btc-embedded/cdk-extensions.S3Bucket.grantDelete.parameter.objectsKeyPattern"></a>
1688
+
1689
+ - *Type:* any
1690
+
1691
+ Restrict the permission to a certain key pattern (default '*').
1692
+
1693
+ Parameter type is `any` but `string` should be passed in.
1694
+
1695
+ ---
1696
+
1697
+ ##### `grantPublicAccess` <a name="grantPublicAccess" id="@btc-embedded/cdk-extensions.S3Bucket.grantPublicAccess"></a>
1698
+
1699
+ ```typescript
1700
+ public grantPublicAccess(allowedActions: ...string[], keyPrefix?: string): Grant
1701
+ ```
1702
+
1703
+ Allows unrestricted access to objects from this bucket.
1704
+
1705
+ IMPORTANT: This permission allows anyone to perform actions on S3 objects
1706
+ in this bucket, which is useful for when you configure your bucket as a
1707
+ website and want everyone to be able to read objects in the bucket without
1708
+ needing to authenticate.
1709
+
1710
+ Without arguments, this method will grant read ("s3:GetObject") access to
1711
+ all objects ("*") in the bucket.
1712
+
1713
+ The method returns the `iam.Grant` object, which can then be modified
1714
+ as needed. For example, you can add a condition that will restrict access only
1715
+ to an IPv4 range like this:
1716
+
1717
+ const grant = bucket.grantPublicAccess();
1718
+ grant.resourceStatement!.addCondition(‘IpAddress’, { “aws:SourceIp”: “54.240.143.0/24” });
1719
+
1720
+ Note that if this `IBucket` refers to an existing bucket, possibly not
1721
+ managed by CloudFormation, this method will have no effect, since it's
1722
+ impossible to modify the policy of an existing bucket.
1723
+
1724
+ ###### `allowedActions`<sup>Required</sup> <a name="allowedActions" id="@btc-embedded/cdk-extensions.S3Bucket.grantPublicAccess.parameter.allowedActions"></a>
1725
+
1726
+ - *Type:* ...string[]
1727
+
1728
+ the set of S3 actions to allow.
1729
+
1730
+ Default is "s3:GetObject".
1731
+
1732
+ ---
1733
+
1734
+ ###### `keyPrefix`<sup>Optional</sup> <a name="keyPrefix" id="@btc-embedded/cdk-extensions.S3Bucket.grantPublicAccess.parameter.keyPrefix"></a>
1735
+
1736
+ - *Type:* string
1737
+
1738
+ the prefix of S3 object keys (e.g. `home/*`). Default is "*".
1739
+
1740
+ ---
1741
+
1742
+ ##### `grantPut` <a name="grantPut" id="@btc-embedded/cdk-extensions.S3Bucket.grantPut"></a>
1743
+
1744
+ ```typescript
1745
+ public grantPut(identity: IGrantable, objectsKeyPattern?: any): Grant
1746
+ ```
1747
+
1748
+ Grants s3:PutObject* and s3:Abort* permissions for this bucket to an IAM principal.
1749
+
1750
+ If encryption is used, permission to use the key to encrypt the contents
1751
+ of written files will also be granted to the same principal.
1752
+
1753
+ ###### `identity`<sup>Required</sup> <a name="identity" id="@btc-embedded/cdk-extensions.S3Bucket.grantPut.parameter.identity"></a>
1754
+
1755
+ - *Type:* aws-cdk-lib.aws_iam.IGrantable
1756
+
1757
+ The principal.
1758
+
1759
+ ---
1760
+
1761
+ ###### `objectsKeyPattern`<sup>Optional</sup> <a name="objectsKeyPattern" id="@btc-embedded/cdk-extensions.S3Bucket.grantPut.parameter.objectsKeyPattern"></a>
1762
+
1763
+ - *Type:* any
1764
+
1765
+ Restrict the permission to a certain key pattern (default '*').
1766
+
1767
+ Parameter type is `any` but `string` should be passed in.
1768
+
1769
+ ---
1770
+
1771
+ ##### `grantPutAcl` <a name="grantPutAcl" id="@btc-embedded/cdk-extensions.S3Bucket.grantPutAcl"></a>
1772
+
1773
+ ```typescript
1774
+ public grantPutAcl(identity: IGrantable, objectsKeyPattern?: string): Grant
1775
+ ```
1776
+
1777
+ Grant the given IAM identity permissions to modify the ACLs of objects in the given Bucket.
1778
+
1779
+ If your application has the '@aws-cdk/aws-s3:grantWriteWithoutAcl' feature flag set,
1780
+ calling `grantWrite` or `grantReadWrite` no longer grants permissions to modify the ACLs of the objects;
1781
+ in this case, if you need to modify object ACLs, call this method explicitly.
1782
+
1783
+ ###### `identity`<sup>Required</sup> <a name="identity" id="@btc-embedded/cdk-extensions.S3Bucket.grantPutAcl.parameter.identity"></a>
1784
+
1785
+ - *Type:* aws-cdk-lib.aws_iam.IGrantable
1786
+
1787
+ ---
1788
+
1789
+ ###### `objectsKeyPattern`<sup>Optional</sup> <a name="objectsKeyPattern" id="@btc-embedded/cdk-extensions.S3Bucket.grantPutAcl.parameter.objectsKeyPattern"></a>
1790
+
1791
+ - *Type:* string
1792
+
1793
+ ---
1794
+
1795
+ ##### `grantRead` <a name="grantRead" id="@btc-embedded/cdk-extensions.S3Bucket.grantRead"></a>
1796
+
1797
+ ```typescript
1798
+ public grantRead(identity: IGrantable, objectsKeyPattern?: any): Grant
1799
+ ```
1800
+
1801
+ Grant read permissions for this bucket and it's contents to an IAM principal (Role/Group/User).
1802
+
1803
+ If encryption is used, permission to use the key to decrypt the contents
1804
+ of the bucket will also be granted to the same principal.
1805
+
1806
+ ###### `identity`<sup>Required</sup> <a name="identity" id="@btc-embedded/cdk-extensions.S3Bucket.grantRead.parameter.identity"></a>
1807
+
1808
+ - *Type:* aws-cdk-lib.aws_iam.IGrantable
1809
+
1810
+ The principal.
1811
+
1812
+ ---
1813
+
1814
+ ###### `objectsKeyPattern`<sup>Optional</sup> <a name="objectsKeyPattern" id="@btc-embedded/cdk-extensions.S3Bucket.grantRead.parameter.objectsKeyPattern"></a>
1815
+
1816
+ - *Type:* any
1817
+
1818
+ Restrict the permission to a certain key pattern (default '*').
1819
+
1820
+ Parameter type is `any` but `string` should be passed in.
1821
+
1822
+ ---
1823
+
1824
+ ##### `grantReadWrite` <a name="grantReadWrite" id="@btc-embedded/cdk-extensions.S3Bucket.grantReadWrite"></a>
1825
+
1826
+ ```typescript
1827
+ public grantReadWrite(identity: IGrantable, objectsKeyPattern?: any): Grant
1828
+ ```
1829
+
1830
+ Grants read/write permissions for this bucket and it's contents to an IAM principal (Role/Group/User).
1831
+
1832
+ If an encryption key is used, permission to use the key for
1833
+ encrypt/decrypt will also be granted.
1834
+
1835
+ Before CDK version 1.85.0, this method granted the `s3:PutObject*` permission that included `s3:PutObjectAcl`,
1836
+ which could be used to grant read/write object access to IAM principals in other accounts.
1837
+ If you want to get rid of that behavior, update your CDK version to 1.85.0 or later,
1838
+ and make sure the `@aws-cdk/aws-s3:grantWriteWithoutAcl` feature flag is set to `true`
1839
+ in the `context` key of your cdk.json file.
1840
+ If you've already updated, but still need the principal to have permissions to modify the ACLs,
1841
+ use the `grantPutAcl` method.
1842
+
1843
+ ###### `identity`<sup>Required</sup> <a name="identity" id="@btc-embedded/cdk-extensions.S3Bucket.grantReadWrite.parameter.identity"></a>
1844
+
1845
+ - *Type:* aws-cdk-lib.aws_iam.IGrantable
1846
+
1847
+ ---
1848
+
1849
+ ###### `objectsKeyPattern`<sup>Optional</sup> <a name="objectsKeyPattern" id="@btc-embedded/cdk-extensions.S3Bucket.grantReadWrite.parameter.objectsKeyPattern"></a>
1850
+
1851
+ - *Type:* any
1852
+
1853
+ ---
1854
+
1855
+ ##### `grantWrite` <a name="grantWrite" id="@btc-embedded/cdk-extensions.S3Bucket.grantWrite"></a>
1856
+
1857
+ ```typescript
1858
+ public grantWrite(identity: IGrantable, objectsKeyPattern?: any, allowedActionPatterns?: string[]): Grant
1859
+ ```
1860
+
1861
+ Grant write permissions to this bucket to an IAM principal.
1862
+
1863
+ If encryption is used, permission to use the key to encrypt the contents
1864
+ of written files will also be granted to the same principal.
1865
+
1866
+ Before CDK version 1.85.0, this method granted the `s3:PutObject*` permission that included `s3:PutObjectAcl`,
1867
+ which could be used to grant read/write object access to IAM principals in other accounts.
1868
+ If you want to get rid of that behavior, update your CDK version to 1.85.0 or later,
1869
+ and make sure the `@aws-cdk/aws-s3:grantWriteWithoutAcl` feature flag is set to `true`
1870
+ in the `context` key of your cdk.json file.
1871
+ If you've already updated, but still need the principal to have permissions to modify the ACLs,
1872
+ use the `grantPutAcl` method.
1873
+
1874
+ ###### `identity`<sup>Required</sup> <a name="identity" id="@btc-embedded/cdk-extensions.S3Bucket.grantWrite.parameter.identity"></a>
1875
+
1876
+ - *Type:* aws-cdk-lib.aws_iam.IGrantable
1877
+
1878
+ ---
1879
+
1880
+ ###### `objectsKeyPattern`<sup>Optional</sup> <a name="objectsKeyPattern" id="@btc-embedded/cdk-extensions.S3Bucket.grantWrite.parameter.objectsKeyPattern"></a>
1881
+
1882
+ - *Type:* any
1883
+
1884
+ ---
1885
+
1886
+ ###### `allowedActionPatterns`<sup>Optional</sup> <a name="allowedActionPatterns" id="@btc-embedded/cdk-extensions.S3Bucket.grantWrite.parameter.allowedActionPatterns"></a>
1887
+
1888
+ - *Type:* string[]
1889
+
1890
+ ---
1891
+
1892
+ ##### `onCloudTrailEvent` <a name="onCloudTrailEvent" id="@btc-embedded/cdk-extensions.S3Bucket.onCloudTrailEvent"></a>
1893
+
1894
+ ```typescript
1895
+ public onCloudTrailEvent(id: string, options?: OnCloudTrailBucketEventOptions): Rule
1896
+ ```
1897
+
1898
+ Define a CloudWatch event that triggers when something happens to this repository.
1899
+
1900
+ Requires that there exists at least one CloudTrail Trail in your account
1901
+ that captures the event. This method will not create the Trail.
1902
+
1903
+ ###### `id`<sup>Required</sup> <a name="id" id="@btc-embedded/cdk-extensions.S3Bucket.onCloudTrailEvent.parameter.id"></a>
1904
+
1905
+ - *Type:* string
1906
+
1907
+ The id of the rule.
1908
+
1909
+ ---
1910
+
1911
+ ###### `options`<sup>Optional</sup> <a name="options" id="@btc-embedded/cdk-extensions.S3Bucket.onCloudTrailEvent.parameter.options"></a>
1912
+
1913
+ - *Type:* aws-cdk-lib.aws_s3.OnCloudTrailBucketEventOptions
1914
+
1915
+ Options for adding the rule.
1916
+
1917
+ ---
1918
+
1919
+ ##### `onCloudTrailPutObject` <a name="onCloudTrailPutObject" id="@btc-embedded/cdk-extensions.S3Bucket.onCloudTrailPutObject"></a>
1920
+
1921
+ ```typescript
1922
+ public onCloudTrailPutObject(id: string, options?: OnCloudTrailBucketEventOptions): Rule
1923
+ ```
1924
+
1925
+ Defines an AWS CloudWatch event that triggers when an object is uploaded to the specified paths (keys) in this bucket using the PutObject API call.
1926
+
1927
+ Note that some tools like `aws s3 cp` will automatically use either
1928
+ PutObject or the multipart upload API depending on the file size,
1929
+ so using `onCloudTrailWriteObject` may be preferable.
1930
+
1931
+ Requires that there exists at least one CloudTrail Trail in your account
1932
+ that captures the event. This method will not create the Trail.
1933
+
1934
+ ###### `id`<sup>Required</sup> <a name="id" id="@btc-embedded/cdk-extensions.S3Bucket.onCloudTrailPutObject.parameter.id"></a>
1935
+
1936
+ - *Type:* string
1937
+
1938
+ The id of the rule.
1939
+
1940
+ ---
1941
+
1942
+ ###### `options`<sup>Optional</sup> <a name="options" id="@btc-embedded/cdk-extensions.S3Bucket.onCloudTrailPutObject.parameter.options"></a>
1943
+
1944
+ - *Type:* aws-cdk-lib.aws_s3.OnCloudTrailBucketEventOptions
1945
+
1946
+ Options for adding the rule.
1947
+
1948
+ ---
1949
+
1950
+ ##### `onCloudTrailWriteObject` <a name="onCloudTrailWriteObject" id="@btc-embedded/cdk-extensions.S3Bucket.onCloudTrailWriteObject"></a>
1951
+
1952
+ ```typescript
1953
+ public onCloudTrailWriteObject(id: string, options?: OnCloudTrailBucketEventOptions): Rule
1954
+ ```
1955
+
1956
+ Defines an AWS CloudWatch event that triggers when an object at the specified paths (keys) in this bucket are written to.
1957
+
1958
+ This includes
1959
+ the events PutObject, CopyObject, and CompleteMultipartUpload.
1960
+
1961
+ Note that some tools like `aws s3 cp` will automatically use either
1962
+ PutObject or the multipart upload API depending on the file size,
1963
+ so using this method may be preferable to `onCloudTrailPutObject`.
1964
+
1965
+ Requires that there exists at least one CloudTrail Trail in your account
1966
+ that captures the event. This method will not create the Trail.
1967
+
1968
+ ###### `id`<sup>Required</sup> <a name="id" id="@btc-embedded/cdk-extensions.S3Bucket.onCloudTrailWriteObject.parameter.id"></a>
1969
+
1970
+ - *Type:* string
1971
+
1972
+ The id of the rule.
1973
+
1974
+ ---
1975
+
1976
+ ###### `options`<sup>Optional</sup> <a name="options" id="@btc-embedded/cdk-extensions.S3Bucket.onCloudTrailWriteObject.parameter.options"></a>
1977
+
1978
+ - *Type:* aws-cdk-lib.aws_s3.OnCloudTrailBucketEventOptions
1979
+
1980
+ Options for adding the rule.
1981
+
1982
+ ---
1983
+
1984
+ ##### `s3UrlForObject` <a name="s3UrlForObject" id="@btc-embedded/cdk-extensions.S3Bucket.s3UrlForObject"></a>
1985
+
1986
+ ```typescript
1987
+ public s3UrlForObject(key?: string): string
1988
+ ```
1989
+
1990
+ The S3 URL of an S3 object. For example:.
1991
+
1992
+ `s3://onlybucket`
1993
+ - `s3://bucket/key`
1994
+
1995
+ ###### `key`<sup>Optional</sup> <a name="key" id="@btc-embedded/cdk-extensions.S3Bucket.s3UrlForObject.parameter.key"></a>
1996
+
1997
+ - *Type:* string
1998
+
1999
+ The S3 key of the object.
2000
+
2001
+ If not specified, the S3 URL of the
2002
+ bucket is returned.
2003
+
2004
+ ---
2005
+
2006
+ ##### `transferAccelerationUrlForObject` <a name="transferAccelerationUrlForObject" id="@btc-embedded/cdk-extensions.S3Bucket.transferAccelerationUrlForObject"></a>
2007
+
2008
+ ```typescript
2009
+ public transferAccelerationUrlForObject(key?: string, options?: TransferAccelerationUrlOptions): string
2010
+ ```
2011
+
2012
+ The https Transfer Acceleration URL of an S3 object.
2013
+
2014
+ Specify `dualStack: true` at the options
2015
+ for dual-stack endpoint (connect to the bucket over IPv6). For example:
2016
+
2017
+ - `https://bucket.s3-accelerate.amazonaws.com`
2018
+ - `https://bucket.s3-accelerate.amazonaws.com/key`
2019
+
2020
+ ###### `key`<sup>Optional</sup> <a name="key" id="@btc-embedded/cdk-extensions.S3Bucket.transferAccelerationUrlForObject.parameter.key"></a>
2021
+
2022
+ - *Type:* string
2023
+
2024
+ The S3 key of the object.
2025
+
2026
+ If not specified, the URL of the
2027
+ bucket is returned.
2028
+
2029
+ ---
2030
+
2031
+ ###### `options`<sup>Optional</sup> <a name="options" id="@btc-embedded/cdk-extensions.S3Bucket.transferAccelerationUrlForObject.parameter.options"></a>
2032
+
2033
+ - *Type:* aws-cdk-lib.aws_s3.TransferAccelerationUrlOptions
2034
+
2035
+ Options for generating URL.
2036
+
2037
+ ---
2038
+
2039
+ ##### `urlForObject` <a name="urlForObject" id="@btc-embedded/cdk-extensions.S3Bucket.urlForObject"></a>
2040
+
2041
+ ```typescript
2042
+ public urlForObject(key?: string): string
2043
+ ```
2044
+
2045
+ The https URL of an S3 object. Specify `regional: false` at the options for non-regional URLs. For example:.
2046
+
2047
+ `https://s3.us-west-1.amazonaws.com/onlybucket`
2048
+ - `https://s3.us-west-1.amazonaws.com/bucket/key`
2049
+ - `https://s3.cn-north-1.amazonaws.com.cn/china-bucket/mykey`
2050
+
2051
+ ###### `key`<sup>Optional</sup> <a name="key" id="@btc-embedded/cdk-extensions.S3Bucket.urlForObject.parameter.key"></a>
2052
+
2053
+ - *Type:* string
2054
+
2055
+ The S3 key of the object.
2056
+
2057
+ If not specified, the URL of the
2058
+ bucket is returned.
2059
+
2060
+ ---
2061
+
2062
+ ##### `virtualHostedUrlForObject` <a name="virtualHostedUrlForObject" id="@btc-embedded/cdk-extensions.S3Bucket.virtualHostedUrlForObject"></a>
2063
+
2064
+ ```typescript
2065
+ public virtualHostedUrlForObject(key?: string, options?: VirtualHostedStyleUrlOptions): string
2066
+ ```
2067
+
2068
+ The virtual hosted-style URL of an S3 object. Specify `regional: false` at the options for non-regional URL. For example:.
2069
+
2070
+ `https://only-bucket.s3.us-west-1.amazonaws.com`
2071
+ - `https://bucket.s3.us-west-1.amazonaws.com/key`
2072
+ - `https://bucket.s3.amazonaws.com/key`
2073
+ - `https://china-bucket.s3.cn-north-1.amazonaws.com.cn/mykey`
2074
+
2075
+ ###### `key`<sup>Optional</sup> <a name="key" id="@btc-embedded/cdk-extensions.S3Bucket.virtualHostedUrlForObject.parameter.key"></a>
2076
+
2077
+ - *Type:* string
2078
+
2079
+ The S3 key of the object.
2080
+
2081
+ If not specified, the URL of the
2082
+ bucket is returned.
2083
+
2084
+ ---
2085
+
2086
+ ###### `options`<sup>Optional</sup> <a name="options" id="@btc-embedded/cdk-extensions.S3Bucket.virtualHostedUrlForObject.parameter.options"></a>
2087
+
2088
+ - *Type:* aws-cdk-lib.aws_s3.VirtualHostedStyleUrlOptions
2089
+
2090
+ Options for generating URL.
2091
+
2092
+ ---
2093
+
2094
+ ##### `addCorsRule` <a name="addCorsRule" id="@btc-embedded/cdk-extensions.S3Bucket.addCorsRule"></a>
2095
+
2096
+ ```typescript
2097
+ public addCorsRule(rule: CorsRule): void
2098
+ ```
2099
+
2100
+ Adds a cross-origin access configuration for objects in an Amazon S3 bucket.
2101
+
2102
+ ###### `rule`<sup>Required</sup> <a name="rule" id="@btc-embedded/cdk-extensions.S3Bucket.addCorsRule.parameter.rule"></a>
2103
+
2104
+ - *Type:* aws-cdk-lib.aws_s3.CorsRule
2105
+
2106
+ The CORS configuration rule to add.
2107
+
2108
+ ---
2109
+
2110
+ ##### `addInventory` <a name="addInventory" id="@btc-embedded/cdk-extensions.S3Bucket.addInventory"></a>
2111
+
2112
+ ```typescript
2113
+ public addInventory(inventory: Inventory): void
2114
+ ```
2115
+
2116
+ Add an inventory configuration.
2117
+
2118
+ ###### `inventory`<sup>Required</sup> <a name="inventory" id="@btc-embedded/cdk-extensions.S3Bucket.addInventory.parameter.inventory"></a>
2119
+
2120
+ - *Type:* aws-cdk-lib.aws_s3.Inventory
2121
+
2122
+ configuration to add.
2123
+
2124
+ ---
2125
+
2126
+ ##### `addLifecycleRule` <a name="addLifecycleRule" id="@btc-embedded/cdk-extensions.S3Bucket.addLifecycleRule"></a>
2127
+
2128
+ ```typescript
2129
+ public addLifecycleRule(rule: LifecycleRule): void
2130
+ ```
2131
+
2132
+ Add a lifecycle rule to the bucket.
2133
+
2134
+ ###### `rule`<sup>Required</sup> <a name="rule" id="@btc-embedded/cdk-extensions.S3Bucket.addLifecycleRule.parameter.rule"></a>
2135
+
2136
+ - *Type:* aws-cdk-lib.aws_s3.LifecycleRule
2137
+
2138
+ The rule to add.
2139
+
2140
+ ---
2141
+
2142
+ ##### `addMetric` <a name="addMetric" id="@btc-embedded/cdk-extensions.S3Bucket.addMetric"></a>
2143
+
2144
+ ```typescript
2145
+ public addMetric(metric: BucketMetrics): void
2146
+ ```
2147
+
2148
+ Adds a metrics configuration for the CloudWatch request metrics from the bucket.
2149
+
2150
+ ###### `metric`<sup>Required</sup> <a name="metric" id="@btc-embedded/cdk-extensions.S3Bucket.addMetric.parameter.metric"></a>
2151
+
2152
+ - *Type:* aws-cdk-lib.aws_s3.BucketMetrics
2153
+
2154
+ The metric configuration to add.
2155
+
2156
+ ---
2157
+
2158
+ #### Static Functions <a name="Static Functions" id="Static Functions"></a>
2159
+
2160
+ | **Name** | **Description** |
2161
+ | --- | --- |
2162
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
2163
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
2164
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
2165
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.fromBucketArn">fromBucketArn</a></code> | *No description.* |
2166
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.fromBucketAttributes">fromBucketAttributes</a></code> | Creates a Bucket construct that represents an external bucket. |
2167
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.fromBucketName">fromBucketName</a></code> | *No description.* |
2168
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.fromCfnBucket">fromCfnBucket</a></code> | Create a mutable `IBucket` based on a low-level `CfnBucket`. |
2169
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.validateBucketName">validateBucketName</a></code> | Thrown an exception if the given bucket name is not valid. |
2170
+
2171
+ ---
2172
+
2173
+ ##### ~~`isConstruct`~~ <a name="isConstruct" id="@btc-embedded/cdk-extensions.S3Bucket.isConstruct"></a>
2174
+
2175
+ ```typescript
2176
+ import { S3Bucket } from '@btc-embedded/cdk-extensions'
2177
+
2178
+ S3Bucket.isConstruct(x: any)
2179
+ ```
2180
+
2181
+ Checks if `x` is a construct.
2182
+
2183
+ ###### `x`<sup>Required</sup> <a name="x" id="@btc-embedded/cdk-extensions.S3Bucket.isConstruct.parameter.x"></a>
2184
+
2185
+ - *Type:* any
2186
+
2187
+ Any object.
2188
+
2189
+ ---
2190
+
2191
+ ##### `isOwnedResource` <a name="isOwnedResource" id="@btc-embedded/cdk-extensions.S3Bucket.isOwnedResource"></a>
2192
+
2193
+ ```typescript
2194
+ import { S3Bucket } from '@btc-embedded/cdk-extensions'
2195
+
2196
+ S3Bucket.isOwnedResource(construct: IConstruct)
2197
+ ```
2198
+
2199
+ Returns true if the construct was created by CDK, and false otherwise.
2200
+
2201
+ ###### `construct`<sup>Required</sup> <a name="construct" id="@btc-embedded/cdk-extensions.S3Bucket.isOwnedResource.parameter.construct"></a>
2202
+
2203
+ - *Type:* constructs.IConstruct
2204
+
2205
+ ---
2206
+
2207
+ ##### `isResource` <a name="isResource" id="@btc-embedded/cdk-extensions.S3Bucket.isResource"></a>
2208
+
2209
+ ```typescript
2210
+ import { S3Bucket } from '@btc-embedded/cdk-extensions'
2211
+
2212
+ S3Bucket.isResource(construct: IConstruct)
2213
+ ```
2214
+
2215
+ Check whether the given construct is a Resource.
2216
+
2217
+ ###### `construct`<sup>Required</sup> <a name="construct" id="@btc-embedded/cdk-extensions.S3Bucket.isResource.parameter.construct"></a>
2218
+
2219
+ - *Type:* constructs.IConstruct
2220
+
2221
+ ---
2222
+
2223
+ ##### `fromBucketArn` <a name="fromBucketArn" id="@btc-embedded/cdk-extensions.S3Bucket.fromBucketArn"></a>
2224
+
2225
+ ```typescript
2226
+ import { S3Bucket } from '@btc-embedded/cdk-extensions'
2227
+
2228
+ S3Bucket.fromBucketArn(scope: Construct, id: string, bucketArn: string)
2229
+ ```
2230
+
2231
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.S3Bucket.fromBucketArn.parameter.scope"></a>
2232
+
2233
+ - *Type:* constructs.Construct
2234
+
2235
+ ---
2236
+
2237
+ ###### `id`<sup>Required</sup> <a name="id" id="@btc-embedded/cdk-extensions.S3Bucket.fromBucketArn.parameter.id"></a>
2238
+
2239
+ - *Type:* string
2240
+
2241
+ ---
2242
+
2243
+ ###### `bucketArn`<sup>Required</sup> <a name="bucketArn" id="@btc-embedded/cdk-extensions.S3Bucket.fromBucketArn.parameter.bucketArn"></a>
2244
+
2245
+ - *Type:* string
2246
+
2247
+ ---
2248
+
2249
+ ##### `fromBucketAttributes` <a name="fromBucketAttributes" id="@btc-embedded/cdk-extensions.S3Bucket.fromBucketAttributes"></a>
2250
+
2251
+ ```typescript
2252
+ import { S3Bucket } from '@btc-embedded/cdk-extensions'
2253
+
2254
+ S3Bucket.fromBucketAttributes(scope: Construct, id: string, attrs: BucketAttributes)
2255
+ ```
2256
+
2257
+ Creates a Bucket construct that represents an external bucket.
2258
+
2259
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.S3Bucket.fromBucketAttributes.parameter.scope"></a>
2260
+
2261
+ - *Type:* constructs.Construct
2262
+
2263
+ The parent creating construct (usually `this`).
2264
+
2265
+ ---
2266
+
2267
+ ###### `id`<sup>Required</sup> <a name="id" id="@btc-embedded/cdk-extensions.S3Bucket.fromBucketAttributes.parameter.id"></a>
2268
+
2269
+ - *Type:* string
2270
+
2271
+ The construct's name.
2272
+
2273
+ ---
2274
+
2275
+ ###### `attrs`<sup>Required</sup> <a name="attrs" id="@btc-embedded/cdk-extensions.S3Bucket.fromBucketAttributes.parameter.attrs"></a>
2276
+
2277
+ - *Type:* aws-cdk-lib.aws_s3.BucketAttributes
2278
+
2279
+ A `BucketAttributes` object.
2280
+
2281
+ Can be obtained from a call to
2282
+ `bucket.export()` or manually created.
2283
+
2284
+ ---
2285
+
2286
+ ##### `fromBucketName` <a name="fromBucketName" id="@btc-embedded/cdk-extensions.S3Bucket.fromBucketName"></a>
2287
+
2288
+ ```typescript
2289
+ import { S3Bucket } from '@btc-embedded/cdk-extensions'
2290
+
2291
+ S3Bucket.fromBucketName(scope: Construct, id: string, bucketName: string)
2292
+ ```
2293
+
2294
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.S3Bucket.fromBucketName.parameter.scope"></a>
2295
+
2296
+ - *Type:* constructs.Construct
2297
+
2298
+ ---
2299
+
2300
+ ###### `id`<sup>Required</sup> <a name="id" id="@btc-embedded/cdk-extensions.S3Bucket.fromBucketName.parameter.id"></a>
2301
+
2302
+ - *Type:* string
2303
+
2304
+ ---
2305
+
2306
+ ###### `bucketName`<sup>Required</sup> <a name="bucketName" id="@btc-embedded/cdk-extensions.S3Bucket.fromBucketName.parameter.bucketName"></a>
2307
+
2308
+ - *Type:* string
2309
+
2310
+ ---
2311
+
2312
+ ##### `fromCfnBucket` <a name="fromCfnBucket" id="@btc-embedded/cdk-extensions.S3Bucket.fromCfnBucket"></a>
2313
+
2314
+ ```typescript
2315
+ import { S3Bucket } from '@btc-embedded/cdk-extensions'
2316
+
2317
+ S3Bucket.fromCfnBucket(cfnBucket: CfnBucket)
2318
+ ```
2319
+
2320
+ Create a mutable `IBucket` based on a low-level `CfnBucket`.
2321
+
2322
+ ###### `cfnBucket`<sup>Required</sup> <a name="cfnBucket" id="@btc-embedded/cdk-extensions.S3Bucket.fromCfnBucket.parameter.cfnBucket"></a>
2323
+
2324
+ - *Type:* aws-cdk-lib.aws_s3.CfnBucket
2325
+
2326
+ ---
2327
+
2328
+ ##### `validateBucketName` <a name="validateBucketName" id="@btc-embedded/cdk-extensions.S3Bucket.validateBucketName"></a>
2329
+
2330
+ ```typescript
2331
+ import { S3Bucket } from '@btc-embedded/cdk-extensions'
2332
+
2333
+ S3Bucket.validateBucketName(physicalName: string, allowLegacyBucketNaming?: boolean)
2334
+ ```
2335
+
2336
+ Thrown an exception if the given bucket name is not valid.
2337
+
2338
+ ###### `physicalName`<sup>Required</sup> <a name="physicalName" id="@btc-embedded/cdk-extensions.S3Bucket.validateBucketName.parameter.physicalName"></a>
2339
+
2340
+ - *Type:* string
2341
+
2342
+ name of the bucket.
2343
+
2344
+ ---
2345
+
2346
+ ###### `allowLegacyBucketNaming`<sup>Optional</sup> <a name="allowLegacyBucketNaming" id="@btc-embedded/cdk-extensions.S3Bucket.validateBucketName.parameter.allowLegacyBucketNaming"></a>
2347
+
2348
+ - *Type:* boolean
2349
+
2350
+ allow legacy bucket naming style, default is false.
2351
+
2352
+ ---
2353
+
2354
+ #### Properties <a name="Properties" id="Properties"></a>
2355
+
2356
+ | **Name** | **Type** | **Description** |
2357
+ | --- | --- | --- |
2358
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
2359
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.property.env">env</a></code> | <code>aws-cdk-lib.ResourceEnvironment</code> | The environment this resource belongs to. |
2360
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
2361
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.property.bucketArn">bucketArn</a></code> | <code>string</code> | The ARN of the bucket. |
2362
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.property.bucketDomainName">bucketDomainName</a></code> | <code>string</code> | The IPv4 DNS name of the specified bucket. |
2363
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.property.bucketDualStackDomainName">bucketDualStackDomainName</a></code> | <code>string</code> | The IPv6 DNS name of the specified bucket. |
2364
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.property.bucketName">bucketName</a></code> | <code>string</code> | The name of the bucket. |
2365
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.property.bucketRegionalDomainName">bucketRegionalDomainName</a></code> | <code>string</code> | The regional domain name of the specified bucket. |
2366
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.property.bucketWebsiteDomainName">bucketWebsiteDomainName</a></code> | <code>string</code> | The Domain name of the static website. |
2367
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.property.bucketWebsiteUrl">bucketWebsiteUrl</a></code> | <code>string</code> | The URL of the static website. |
2368
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.property.encryptionKey">encryptionKey</a></code> | <code>aws-cdk-lib.aws_kms.IKey</code> | Optional KMS encryption key associated with this bucket. |
2369
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.property.isWebsite">isWebsite</a></code> | <code>boolean</code> | If this bucket has been configured for static website hosting. |
2370
+ | <code><a href="#@btc-embedded/cdk-extensions.S3Bucket.property.policy">policy</a></code> | <code>aws-cdk-lib.aws_s3.BucketPolicy</code> | The resource policy associated with this bucket. |
2371
+
2372
+ ---
2373
+
2374
+ ##### `node`<sup>Required</sup> <a name="node" id="@btc-embedded/cdk-extensions.S3Bucket.property.node"></a>
2375
+
2376
+ ```typescript
2377
+ public readonly node: Node;
2378
+ ```
2379
+
2380
+ - *Type:* constructs.Node
2381
+
2382
+ The tree node.
2383
+
2384
+ ---
2385
+
2386
+ ##### `env`<sup>Required</sup> <a name="env" id="@btc-embedded/cdk-extensions.S3Bucket.property.env"></a>
2387
+
2388
+ ```typescript
2389
+ public readonly env: ResourceEnvironment;
2390
+ ```
2391
+
2392
+ - *Type:* aws-cdk-lib.ResourceEnvironment
2393
+
2394
+ The environment this resource belongs to.
2395
+
2396
+ For resources that are created and managed by the CDK
2397
+ (generally, those created by creating new class instances like Role, Bucket, etc.),
2398
+ this is always the same as the environment of the stack they belong to;
2399
+ however, for imported resources
2400
+ (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
2401
+ that might be different than the stack they were imported into.
2402
+
2403
+ ---
2404
+
2405
+ ##### `stack`<sup>Required</sup> <a name="stack" id="@btc-embedded/cdk-extensions.S3Bucket.property.stack"></a>
2406
+
2407
+ ```typescript
2408
+ public readonly stack: Stack;
2409
+ ```
2410
+
2411
+ - *Type:* aws-cdk-lib.Stack
2412
+
2413
+ The stack in which this resource is defined.
2414
+
2415
+ ---
2416
+
2417
+ ##### `bucketArn`<sup>Required</sup> <a name="bucketArn" id="@btc-embedded/cdk-extensions.S3Bucket.property.bucketArn"></a>
2418
+
2419
+ ```typescript
2420
+ public readonly bucketArn: string;
2421
+ ```
2422
+
2423
+ - *Type:* string
2424
+
2425
+ The ARN of the bucket.
2426
+
2427
+ ---
2428
+
2429
+ ##### `bucketDomainName`<sup>Required</sup> <a name="bucketDomainName" id="@btc-embedded/cdk-extensions.S3Bucket.property.bucketDomainName"></a>
2430
+
2431
+ ```typescript
2432
+ public readonly bucketDomainName: string;
2433
+ ```
2434
+
2435
+ - *Type:* string
2436
+
2437
+ The IPv4 DNS name of the specified bucket.
2438
+
2439
+ ---
2440
+
2441
+ ##### `bucketDualStackDomainName`<sup>Required</sup> <a name="bucketDualStackDomainName" id="@btc-embedded/cdk-extensions.S3Bucket.property.bucketDualStackDomainName"></a>
2442
+
2443
+ ```typescript
2444
+ public readonly bucketDualStackDomainName: string;
2445
+ ```
2446
+
2447
+ - *Type:* string
2448
+
2449
+ The IPv6 DNS name of the specified bucket.
2450
+
2451
+ ---
2452
+
2453
+ ##### `bucketName`<sup>Required</sup> <a name="bucketName" id="@btc-embedded/cdk-extensions.S3Bucket.property.bucketName"></a>
2454
+
2455
+ ```typescript
2456
+ public readonly bucketName: string;
2457
+ ```
2458
+
2459
+ - *Type:* string
1224
2460
 
1225
- | **Name** | **Description** |
1226
- | --- | --- |
1227
- | <code><a href="#@btc-embedded/cdk-extensions.ResourceServer.toString">toString</a></code> | Returns a string representation of this construct. |
1228
- | <code><a href="#@btc-embedded/cdk-extensions.ResourceServer.createOAuthScopes">createOAuthScopes</a></code> | *No description.* |
2461
+ The name of the bucket.
1229
2462
 
1230
2463
  ---
1231
2464
 
1232
- ##### `toString` <a name="toString" id="@btc-embedded/cdk-extensions.ResourceServer.toString"></a>
2465
+ ##### `bucketRegionalDomainName`<sup>Required</sup> <a name="bucketRegionalDomainName" id="@btc-embedded/cdk-extensions.S3Bucket.property.bucketRegionalDomainName"></a>
1233
2466
 
1234
2467
  ```typescript
1235
- public toString(): string
2468
+ public readonly bucketRegionalDomainName: string;
1236
2469
  ```
1237
2470
 
1238
- Returns a string representation of this construct.
2471
+ - *Type:* string
1239
2472
 
1240
- ##### `createOAuthScopes` <a name="createOAuthScopes" id="@btc-embedded/cdk-extensions.ResourceServer.createOAuthScopes"></a>
2473
+ The regional domain name of the specified bucket.
2474
+
2475
+ ---
2476
+
2477
+ ##### `bucketWebsiteDomainName`<sup>Required</sup> <a name="bucketWebsiteDomainName" id="@btc-embedded/cdk-extensions.S3Bucket.property.bucketWebsiteDomainName"></a>
1241
2478
 
1242
2479
  ```typescript
1243
- public createOAuthScopes(): OAuthScope[]
2480
+ public readonly bucketWebsiteDomainName: string;
1244
2481
  ```
1245
2482
 
1246
- #### Static Functions <a name="Static Functions" id="Static Functions"></a>
2483
+ - *Type:* string
1247
2484
 
1248
- | **Name** | **Description** |
1249
- | --- | --- |
1250
- | <code><a href="#@btc-embedded/cdk-extensions.ResourceServer.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
2485
+ The Domain name of the static website.
1251
2486
 
1252
2487
  ---
1253
2488
 
1254
- ##### ~~`isConstruct`~~ <a name="isConstruct" id="@btc-embedded/cdk-extensions.ResourceServer.isConstruct"></a>
2489
+ ##### `bucketWebsiteUrl`<sup>Required</sup> <a name="bucketWebsiteUrl" id="@btc-embedded/cdk-extensions.S3Bucket.property.bucketWebsiteUrl"></a>
1255
2490
 
1256
2491
  ```typescript
1257
- import { ResourceServer } from '@btc-embedded/cdk-extensions'
1258
-
1259
- ResourceServer.isConstruct(x: any)
2492
+ public readonly bucketWebsiteUrl: string;
1260
2493
  ```
1261
2494
 
1262
- Checks if `x` is a construct.
2495
+ - *Type:* string
1263
2496
 
1264
- ###### `x`<sup>Required</sup> <a name="x" id="@btc-embedded/cdk-extensions.ResourceServer.isConstruct.parameter.x"></a>
2497
+ The URL of the static website.
1265
2498
 
1266
- - *Type:* any
2499
+ ---
1267
2500
 
1268
- Any object.
2501
+ ##### `encryptionKey`<sup>Optional</sup> <a name="encryptionKey" id="@btc-embedded/cdk-extensions.S3Bucket.property.encryptionKey"></a>
1269
2502
 
1270
- ---
2503
+ ```typescript
2504
+ public readonly encryptionKey: IKey;
2505
+ ```
1271
2506
 
1272
- #### Properties <a name="Properties" id="Properties"></a>
2507
+ - *Type:* aws-cdk-lib.aws_kms.IKey
1273
2508
 
1274
- | **Name** | **Type** | **Description** |
1275
- | --- | --- | --- |
1276
- | <code><a href="#@btc-embedded/cdk-extensions.ResourceServer.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
1277
- | <code><a href="#@btc-embedded/cdk-extensions.ResourceServer.property.resourceServerInstance">resourceServerInstance</a></code> | <code>aws-cdk-lib.aws_cognito.IUserPoolResourceServer</code> | *No description.* |
2509
+ Optional KMS encryption key associated with this bucket.
1278
2510
 
1279
2511
  ---
1280
2512
 
1281
- ##### `node`<sup>Required</sup> <a name="node" id="@btc-embedded/cdk-extensions.ResourceServer.property.node"></a>
2513
+ ##### `isWebsite`<sup>Optional</sup> <a name="isWebsite" id="@btc-embedded/cdk-extensions.S3Bucket.property.isWebsite"></a>
1282
2514
 
1283
2515
  ```typescript
1284
- public readonly node: Node;
2516
+ public readonly isWebsite: boolean;
1285
2517
  ```
1286
2518
 
1287
- - *Type:* constructs.Node
2519
+ - *Type:* boolean
1288
2520
 
1289
- The tree node.
2521
+ If this bucket has been configured for static website hosting.
1290
2522
 
1291
2523
  ---
1292
2524
 
1293
- ##### `resourceServerInstance`<sup>Required</sup> <a name="resourceServerInstance" id="@btc-embedded/cdk-extensions.ResourceServer.property.resourceServerInstance"></a>
2525
+ ##### `policy`<sup>Optional</sup> <a name="policy" id="@btc-embedded/cdk-extensions.S3Bucket.property.policy"></a>
1294
2526
 
1295
2527
  ```typescript
1296
- public readonly resourceServerInstance: IUserPoolResourceServer;
2528
+ public readonly policy: BucketPolicy;
1297
2529
  ```
1298
2530
 
1299
- - *Type:* aws-cdk-lib.aws_cognito.IUserPoolResourceServer
2531
+ - *Type:* aws-cdk-lib.aws_s3.BucketPolicy
2532
+
2533
+ The resource policy associated with this bucket.
2534
+
2535
+ If `autoCreatePolicy` is true, a `BucketPolicy` will be created upon the
2536
+ first call to addToResourcePolicy(s).
1300
2537
 
1301
2538
  ---
1302
2539
 
@@ -1719,6 +2956,19 @@ public readonly vpcInstance: IVpc;
1719
2956
 
1720
2957
  ## Structs <a name="Structs" id="Structs"></a>
1721
2958
 
2959
+ ### AnythingButFilterRule <a name="AnythingButFilterRule" id="@btc-embedded/cdk-extensions.AnythingButFilterRule"></a>
2960
+
2961
+ Rule that allows all values except the given ones.
2962
+
2963
+ #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.AnythingButFilterRule.Initializer"></a>
2964
+
2965
+ ```typescript
2966
+ import { AnythingButFilterRule } from '@btc-embedded/cdk-extensions'
2967
+
2968
+ const anythingButFilterRule: AnythingButFilterRule = { ... }
2969
+ ```
2970
+
2971
+
1722
2972
  ### ApiGatewayExtensionProps <a name="ApiGatewayExtensionProps" id="@btc-embedded/cdk-extensions.ApiGatewayExtensionProps"></a>
1723
2973
 
1724
2974
  #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.ApiGatewayExtensionProps.Initializer"></a>
@@ -4134,6 +5384,81 @@ public readonly queue: Queue;
4134
5384
 
4135
5385
  ---
4136
5386
 
5387
+ ### EventPipeProps <a name="EventPipeProps" id="@btc-embedded/cdk-extensions.EventPipeProps"></a>
5388
+
5389
+ Properties for pipe construction.
5390
+
5391
+ #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.EventPipeProps.Initializer"></a>
5392
+
5393
+ ```typescript
5394
+ import { EventPipeProps } from '@btc-embedded/cdk-extensions'
5395
+
5396
+ const eventPipeProps: EventPipeProps = { ... }
5397
+ ```
5398
+
5399
+ #### Properties <a name="Properties" id="Properties"></a>
5400
+
5401
+ | **Name** | **Type** | **Description** |
5402
+ | --- | --- | --- |
5403
+ | <code><a href="#@btc-embedded/cdk-extensions.EventPipeProps.property.source">source</a></code> | <code>aws-cdk-lib.aws_sqs.IQueue</code> | The source SQS queue. |
5404
+ | <code><a href="#@btc-embedded/cdk-extensions.EventPipeProps.property.target">target</a></code> | <code><a href="#@btc-embedded/cdk-extensions.TargetQueue">TargetQueue</a> \| <a href="#@btc-embedded/cdk-extensions.TargetStepFunction">TargetStepFunction</a></code> | The target SQS queue or target step function. |
5405
+ | <code><a href="#@btc-embedded/cdk-extensions.EventPipeProps.property.filter">filter</a></code> | <code><a href="#@btc-embedded/cdk-extensions.PipeFilter">PipeFilter</a></code> | An optional filter for the pipe. |
5406
+ | <code><a href="#@btc-embedded/cdk-extensions.EventPipeProps.property.role">role</a></code> | <code>aws-cdk-lib.aws_iam.Role</code> | The role used by the event pipe. |
5407
+
5408
+ ---
5409
+
5410
+ ##### `source`<sup>Required</sup> <a name="source" id="@btc-embedded/cdk-extensions.EventPipeProps.property.source"></a>
5411
+
5412
+ ```typescript
5413
+ public readonly source: IQueue;
5414
+ ```
5415
+
5416
+ - *Type:* aws-cdk-lib.aws_sqs.IQueue
5417
+
5418
+ The source SQS queue.
5419
+
5420
+ No other source types are supported at the moment.
5421
+
5422
+ ---
5423
+
5424
+ ##### `target`<sup>Required</sup> <a name="target" id="@btc-embedded/cdk-extensions.EventPipeProps.property.target"></a>
5425
+
5426
+ ```typescript
5427
+ public readonly target: TargetQueue | TargetStepFunction;
5428
+ ```
5429
+
5430
+ - *Type:* <a href="#@btc-embedded/cdk-extensions.TargetQueue">TargetQueue</a> | <a href="#@btc-embedded/cdk-extensions.TargetStepFunction">TargetStepFunction</a>
5431
+
5432
+ The target SQS queue or target step function.
5433
+
5434
+ ---
5435
+
5436
+ ##### `filter`<sup>Optional</sup> <a name="filter" id="@btc-embedded/cdk-extensions.EventPipeProps.property.filter"></a>
5437
+
5438
+ ```typescript
5439
+ public readonly filter: PipeFilter;
5440
+ ```
5441
+
5442
+ - *Type:* <a href="#@btc-embedded/cdk-extensions.PipeFilter">PipeFilter</a>
5443
+
5444
+ An optional filter for the pipe.
5445
+
5446
+ ---
5447
+
5448
+ ##### `role`<sup>Optional</sup> <a name="role" id="@btc-embedded/cdk-extensions.EventPipeProps.property.role"></a>
5449
+
5450
+ ```typescript
5451
+ public readonly role: Role;
5452
+ ```
5453
+
5454
+ - *Type:* aws-cdk-lib.aws_iam.Role
5455
+
5456
+ The role used by the event pipe.
5457
+
5458
+ If omitted, a new role is created.
5459
+
5460
+ ---
5461
+
4137
5462
  ### ExtraContainerExtensionProps <a name="ExtraContainerExtensionProps" id="@btc-embedded/cdk-extensions.ExtraContainerExtensionProps"></a>
4138
5463
 
4139
5464
  #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.ExtraContainerExtensionProps.Initializer"></a>
@@ -4188,6 +5513,19 @@ Defaults to ContainerDependencyCondition.HEALTHY.
4188
5513
 
4189
5514
  ---
4190
5515
 
5516
+ ### FilterEqualsIgnoreCase <a name="FilterEqualsIgnoreCase" id="@btc-embedded/cdk-extensions.FilterEqualsIgnoreCase"></a>
5517
+
5518
+ Rule that matches a string, ignoring the case.
5519
+
5520
+ #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.FilterEqualsIgnoreCase.Initializer"></a>
5521
+
5522
+ ```typescript
5523
+ import { FilterEqualsIgnoreCase } from '@btc-embedded/cdk-extensions'
5524
+
5525
+ const filterEqualsIgnoreCase: FilterEqualsIgnoreCase = { ... }
5526
+ ```
5527
+
5528
+
4191
5529
  ### HTTPApiExtensionProps <a name="HTTPApiExtensionProps" id="@btc-embedded/cdk-extensions.HTTPApiExtensionProps"></a>
4192
5530
 
4193
5531
  #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.HTTPApiExtensionProps.Initializer"></a>
@@ -4285,6 +5623,17 @@ The prefix for the API Gateway endpoint.
4285
5623
 
4286
5624
  ---
4287
5625
 
5626
+ ### InputTemplate <a name="InputTemplate" id="@btc-embedded/cdk-extensions.InputTemplate"></a>
5627
+
5628
+ #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.InputTemplate.Initializer"></a>
5629
+
5630
+ ```typescript
5631
+ import { InputTemplate } from '@btc-embedded/cdk-extensions'
5632
+
5633
+ const inputTemplate: InputTemplate = { ... }
5634
+ ```
5635
+
5636
+
4288
5637
  ### OpenTelemetryExtensionProps <a name="OpenTelemetryExtensionProps" id="@btc-embedded/cdk-extensions.OpenTelemetryExtensionProps"></a>
4289
5638
 
4290
5639
  #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.OpenTelemetryExtensionProps.Initializer"></a>
@@ -4343,6 +5692,19 @@ The namespace of the service to use in the OTel attributes.
4343
5692
 
4344
5693
  ---
4345
5694
 
5695
+ ### PipeFilter <a name="PipeFilter" id="@btc-embedded/cdk-extensions.PipeFilter"></a>
5696
+
5697
+ A filter for messages in the pipe.
5698
+
5699
+ #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.PipeFilter.Initializer"></a>
5700
+
5701
+ ```typescript
5702
+ import { PipeFilter } from '@btc-embedded/cdk-extensions'
5703
+
5704
+ const pipeFilter: PipeFilter = { ... }
5705
+ ```
5706
+
5707
+
4346
5708
  ### PostgresDbAccessExtensionProps <a name="PostgresDbAccessExtensionProps" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtensionProps"></a>
4347
5709
 
4348
5710
  #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.PostgresDbAccessExtensionProps.Initializer"></a>
@@ -4480,6 +5842,36 @@ public readonly namespace: string;
4480
5842
 
4481
5843
  ---
4482
5844
 
5845
+ ### PrefixFilterRule <a name="PrefixFilterRule" id="@btc-embedded/cdk-extensions.PrefixFilterRule"></a>
5846
+
5847
+ Rule that a property has to start with a prefix.
5848
+
5849
+ #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.PrefixFilterRule.Initializer"></a>
5850
+
5851
+ ```typescript
5852
+ import { PrefixFilterRule } from '@btc-embedded/cdk-extensions'
5853
+
5854
+ const prefixFilterRule: PrefixFilterRule = { ... }
5855
+ ```
5856
+
5857
+ #### Properties <a name="Properties" id="Properties"></a>
5858
+
5859
+ | **Name** | **Type** | **Description** |
5860
+ | --- | --- | --- |
5861
+ | <code><a href="#@btc-embedded/cdk-extensions.PrefixFilterRule.property.prefix">prefix</a></code> | <code>string \| <a href="#@btc-embedded/cdk-extensions.FilterEqualsIgnoreCase">FilterEqualsIgnoreCase</a></code> | *No description.* |
5862
+
5863
+ ---
5864
+
5865
+ ##### `prefix`<sup>Required</sup> <a name="prefix" id="@btc-embedded/cdk-extensions.PrefixFilterRule.property.prefix"></a>
5866
+
5867
+ ```typescript
5868
+ public readonly prefix: string | FilterEqualsIgnoreCase;
5869
+ ```
5870
+
5871
+ - *Type:* string | <a href="#@btc-embedded/cdk-extensions.FilterEqualsIgnoreCase">FilterEqualsIgnoreCase</a>
5872
+
5873
+ ---
5874
+
4483
5875
  ### PrivateDnsNamespaceProps <a name="PrivateDnsNamespaceProps" id="@btc-embedded/cdk-extensions.PrivateDnsNamespaceProps"></a>
4484
5876
 
4485
5877
  #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.PrivateDnsNamespaceProps.Initializer"></a>
@@ -4725,69 +6117,211 @@ public readonly hostedZone: IHostedZone;
4725
6117
  - *Type:* aws-cdk-lib.aws_route53.IHostedZone
4726
6118
  - *Default:* fqdn output of base platform stack is used to import the hosted zone
4727
6119
 
4728
- hosted zone for the subdomain An optional parameter.
6120
+ hosted zone for the subdomain An optional parameter.
6121
+
6122
+ ---
6123
+
6124
+ ### SharedVolumeExtensionProps <a name="SharedVolumeExtensionProps" id="@btc-embedded/cdk-extensions.SharedVolumeExtensionProps"></a>
6125
+
6126
+ Properties for defining an ephermal shared volume.
6127
+
6128
+ #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.SharedVolumeExtensionProps.Initializer"></a>
6129
+
6130
+ ```typescript
6131
+ import { SharedVolumeExtensionProps } from '@btc-embedded/cdk-extensions'
6132
+
6133
+ const sharedVolumeExtensionProps: SharedVolumeExtensionProps = { ... }
6134
+ ```
6135
+
6136
+ #### Properties <a name="Properties" id="Properties"></a>
6137
+
6138
+ | **Name** | **Type** | **Description** |
6139
+ | --- | --- | --- |
6140
+ | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtensionProps.property.path">path</a></code> | <code>string</code> | The path inside the container to mount the volume. |
6141
+ | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtensionProps.property.readonly">readonly</a></code> | <code>boolean</code> | Whether the volume should be read-only. |
6142
+ | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtensionProps.property.scope">scope</a></code> | <code>aws-cdk-lib.aws_ecs.Scope</code> | Scope of the volume. |
6143
+
6144
+ ---
6145
+
6146
+ ##### `path`<sup>Required</sup> <a name="path" id="@btc-embedded/cdk-extensions.SharedVolumeExtensionProps.property.path"></a>
6147
+
6148
+ ```typescript
6149
+ public readonly path: string;
6150
+ ```
6151
+
6152
+ - *Type:* string
6153
+
6154
+ The path inside the container to mount the volume.
6155
+
6156
+ ---
6157
+
6158
+ ##### `readonly`<sup>Optional</sup> <a name="readonly" id="@btc-embedded/cdk-extensions.SharedVolumeExtensionProps.property.readonly"></a>
6159
+
6160
+ ```typescript
6161
+ public readonly readonly: boolean;
6162
+ ```
6163
+
6164
+ - *Type:* boolean
6165
+
6166
+ Whether the volume should be read-only.
6167
+
6168
+ Default: false.
6169
+
6170
+ ---
6171
+
6172
+ ##### `scope`<sup>Optional</sup> <a name="scope" id="@btc-embedded/cdk-extensions.SharedVolumeExtensionProps.property.scope"></a>
6173
+
6174
+ ```typescript
6175
+ public readonly scope: Scope;
6176
+ ```
6177
+
6178
+ - *Type:* aws-cdk-lib.aws_ecs.Scope
6179
+
6180
+ Scope of the volume.
6181
+
6182
+ Default: SHARED.
6183
+
6184
+ ---
6185
+
6186
+ ### SuffixFilterRule <a name="SuffixFilterRule" id="@btc-embedded/cdk-extensions.SuffixFilterRule"></a>
6187
+
6188
+ Rule that a property has to end with a suffix.
6189
+
6190
+ #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.SuffixFilterRule.Initializer"></a>
6191
+
6192
+ ```typescript
6193
+ import { SuffixFilterRule } from '@btc-embedded/cdk-extensions'
6194
+
6195
+ const suffixFilterRule: SuffixFilterRule = { ... }
6196
+ ```
6197
+
6198
+ #### Properties <a name="Properties" id="Properties"></a>
6199
+
6200
+ | **Name** | **Type** | **Description** |
6201
+ | --- | --- | --- |
6202
+ | <code><a href="#@btc-embedded/cdk-extensions.SuffixFilterRule.property.suffix">suffix</a></code> | <code>string \| <a href="#@btc-embedded/cdk-extensions.FilterEqualsIgnoreCase">FilterEqualsIgnoreCase</a></code> | *No description.* |
6203
+
6204
+ ---
6205
+
6206
+ ##### `suffix`<sup>Required</sup> <a name="suffix" id="@btc-embedded/cdk-extensions.SuffixFilterRule.property.suffix"></a>
6207
+
6208
+ ```typescript
6209
+ public readonly suffix: string | FilterEqualsIgnoreCase;
6210
+ ```
6211
+
6212
+ - *Type:* string | <a href="#@btc-embedded/cdk-extensions.FilterEqualsIgnoreCase">FilterEqualsIgnoreCase</a>
6213
+
6214
+ ---
6215
+
6216
+ ### TargetQueue <a name="TargetQueue" id="@btc-embedded/cdk-extensions.TargetQueue"></a>
6217
+
6218
+ SQS queue as pipe target.
6219
+
6220
+ #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.TargetQueue.Initializer"></a>
6221
+
6222
+ ```typescript
6223
+ import { TargetQueue } from '@btc-embedded/cdk-extensions'
6224
+
6225
+ const targetQueue: TargetQueue = { ... }
6226
+ ```
6227
+
6228
+ #### Properties <a name="Properties" id="Properties"></a>
6229
+
6230
+ | **Name** | **Type** | **Description** |
6231
+ | --- | --- | --- |
6232
+ | <code><a href="#@btc-embedded/cdk-extensions.TargetQueue.property.queue">queue</a></code> | <code>aws-cdk-lib.aws_sqs.IQueue</code> | *No description.* |
6233
+
6234
+ ---
6235
+
6236
+ ##### `queue`<sup>Required</sup> <a name="queue" id="@btc-embedded/cdk-extensions.TargetQueue.property.queue"></a>
6237
+
6238
+ ```typescript
6239
+ public readonly queue: IQueue;
6240
+ ```
6241
+
6242
+ - *Type:* aws-cdk-lib.aws_sqs.IQueue
4729
6243
 
4730
6244
  ---
4731
6245
 
4732
- ### SharedVolumeExtensionProps <a name="SharedVolumeExtensionProps" id="@btc-embedded/cdk-extensions.SharedVolumeExtensionProps"></a>
6246
+ ### TargetStepFunction <a name="TargetStepFunction" id="@btc-embedded/cdk-extensions.TargetStepFunction"></a>
4733
6247
 
4734
- Properties for defining an ephermal shared volume.
6248
+ StepFunction as pipe target.
4735
6249
 
4736
- #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.SharedVolumeExtensionProps.Initializer"></a>
6250
+ #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.TargetStepFunction.Initializer"></a>
4737
6251
 
4738
6252
  ```typescript
4739
- import { SharedVolumeExtensionProps } from '@btc-embedded/cdk-extensions'
6253
+ import { TargetStepFunction } from '@btc-embedded/cdk-extensions'
4740
6254
 
4741
- const sharedVolumeExtensionProps: SharedVolumeExtensionProps = { ... }
6255
+ const targetStepFunction: TargetStepFunction = { ... }
4742
6256
  ```
4743
6257
 
4744
6258
  #### Properties <a name="Properties" id="Properties"></a>
4745
6259
 
4746
6260
  | **Name** | **Type** | **Description** |
4747
6261
  | --- | --- | --- |
4748
- | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtensionProps.property.path">path</a></code> | <code>string</code> | The path inside the container to mount the volume. |
4749
- | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtensionProps.property.readonly">readonly</a></code> | <code>boolean</code> | Whether the volume should be read-only. |
4750
- | <code><a href="#@btc-embedded/cdk-extensions.SharedVolumeExtensionProps.property.scope">scope</a></code> | <code>aws-cdk-lib.aws_ecs.Scope</code> | Scope of the volume. |
6262
+ | <code><a href="#@btc-embedded/cdk-extensions.TargetStepFunction.property.stepFunction">stepFunction</a></code> | <code>aws-cdk-lib.aws_stepfunctions.IStateMachine</code> | *No description.* |
6263
+ | <code><a href="#@btc-embedded/cdk-extensions.TargetStepFunction.property.parameters">parameters</a></code> | <code><a href="#@btc-embedded/cdk-extensions.TargetStepFunctionParameters">TargetStepFunctionParameters</a></code> | *No description.* |
4751
6264
 
4752
6265
  ---
4753
6266
 
4754
- ##### `path`<sup>Required</sup> <a name="path" id="@btc-embedded/cdk-extensions.SharedVolumeExtensionProps.property.path"></a>
6267
+ ##### `stepFunction`<sup>Required</sup> <a name="stepFunction" id="@btc-embedded/cdk-extensions.TargetStepFunction.property.stepFunction"></a>
4755
6268
 
4756
6269
  ```typescript
4757
- public readonly path: string;
6270
+ public readonly stepFunction: IStateMachine;
4758
6271
  ```
4759
6272
 
4760
- - *Type:* string
4761
-
4762
- The path inside the container to mount the volume.
6273
+ - *Type:* aws-cdk-lib.aws_stepfunctions.IStateMachine
4763
6274
 
4764
6275
  ---
4765
6276
 
4766
- ##### `readonly`<sup>Optional</sup> <a name="readonly" id="@btc-embedded/cdk-extensions.SharedVolumeExtensionProps.property.readonly"></a>
6277
+ ##### `parameters`<sup>Optional</sup> <a name="parameters" id="@btc-embedded/cdk-extensions.TargetStepFunction.property.parameters"></a>
4767
6278
 
4768
6279
  ```typescript
4769
- public readonly readonly: boolean;
6280
+ public readonly parameters: TargetStepFunctionParameters;
4770
6281
  ```
4771
6282
 
4772
- - *Type:* boolean
6283
+ - *Type:* <a href="#@btc-embedded/cdk-extensions.TargetStepFunctionParameters">TargetStepFunctionParameters</a>
4773
6284
 
4774
- Whether the volume should be read-only.
6285
+ ---
4775
6286
 
4776
- Default: false.
6287
+ ### TargetStepFunctionParameters <a name="TargetStepFunctionParameters" id="@btc-embedded/cdk-extensions.TargetStepFunctionParameters"></a>
6288
+
6289
+ Parameters for a step function target.
6290
+
6291
+ #### Initializer <a name="Initializer" id="@btc-embedded/cdk-extensions.TargetStepFunctionParameters.Initializer"></a>
6292
+
6293
+ ```typescript
6294
+ import { TargetStepFunctionParameters } from '@btc-embedded/cdk-extensions'
6295
+
6296
+ const targetStepFunctionParameters: TargetStepFunctionParameters = { ... }
6297
+ ```
6298
+
6299
+ #### Properties <a name="Properties" id="Properties"></a>
6300
+
6301
+ | **Name** | **Type** | **Description** |
6302
+ | --- | --- | --- |
6303
+ | <code><a href="#@btc-embedded/cdk-extensions.TargetStepFunctionParameters.property.inputTemplate">inputTemplate</a></code> | <code><a href="#@btc-embedded/cdk-extensions.InputTemplate">InputTemplate</a></code> | *No description.* |
6304
+ | <code><a href="#@btc-embedded/cdk-extensions.TargetStepFunctionParameters.property.invocationType">invocationType</a></code> | <code><a href="#@btc-embedded/cdk-extensions.InvocationType">InvocationType</a></code> | *No description.* |
4777
6305
 
4778
6306
  ---
4779
6307
 
4780
- ##### `scope`<sup>Optional</sup> <a name="scope" id="@btc-embedded/cdk-extensions.SharedVolumeExtensionProps.property.scope"></a>
6308
+ ##### `inputTemplate`<sup>Optional</sup> <a name="inputTemplate" id="@btc-embedded/cdk-extensions.TargetStepFunctionParameters.property.inputTemplate"></a>
4781
6309
 
4782
6310
  ```typescript
4783
- public readonly scope: Scope;
6311
+ public readonly inputTemplate: InputTemplate;
4784
6312
  ```
4785
6313
 
4786
- - *Type:* aws-cdk-lib.aws_ecs.Scope
6314
+ - *Type:* <a href="#@btc-embedded/cdk-extensions.InputTemplate">InputTemplate</a>
4787
6315
 
4788
- Scope of the volume.
6316
+ ---
4789
6317
 
4790
- Default: SHARED.
6318
+ ##### `invocationType`<sup>Optional</sup> <a name="invocationType" id="@btc-embedded/cdk-extensions.TargetStepFunctionParameters.property.invocationType"></a>
6319
+
6320
+ ```typescript
6321
+ public readonly invocationType: InvocationType;
6322
+ ```
6323
+
6324
+ - *Type:* <a href="#@btc-embedded/cdk-extensions.InvocationType">InvocationType</a>
4791
6325
 
4792
6326
  ---
4793
6327
 
@@ -5957,6 +7491,237 @@ public readonly serviceName: string;
5957
7491
  ---
5958
7492
 
5959
7493
 
7494
+ ### DeactivatableServiceExtension <a name="DeactivatableServiceExtension" id="@btc-embedded/cdk-extensions.DeactivatableServiceExtension"></a>
7495
+
7496
+ Extension that allows the service to be deactivated, if the environment variable contains its ID.
7497
+
7498
+ Deactivation is implemented by setting the desired count to zero, i.e. the
7499
+ construct is still present in the stack.
7500
+
7501
+ #### Initializers <a name="Initializers" id="@btc-embedded/cdk-extensions.DeactivatableServiceExtension.Initializer"></a>
7502
+
7503
+ ```typescript
7504
+ import { DeactivatableServiceExtension } from '@btc-embedded/cdk-extensions'
7505
+
7506
+ new DeactivatableServiceExtension()
7507
+ ```
7508
+
7509
+ | **Name** | **Type** | **Description** |
7510
+ | --- | --- | --- |
7511
+
7512
+ ---
7513
+
7514
+ #### Methods <a name="Methods" id="Methods"></a>
7515
+
7516
+ | **Name** | **Description** |
7517
+ | --- | --- |
7518
+ | <code><a href="#@btc-embedded/cdk-extensions.DeactivatableServiceExtension.addContainerMutatingHook">addContainerMutatingHook</a></code> | This hook allows another service extension to register a mutating hook for changing the primary container of this extension. |
7519
+ | <code><a href="#@btc-embedded/cdk-extensions.DeactivatableServiceExtension.addHooks">addHooks</a></code> | A hook that allows the extension to add hooks to other extensions that are registered. |
7520
+ | <code><a href="#@btc-embedded/cdk-extensions.DeactivatableServiceExtension.connectToService">connectToService</a></code> | This hook allows the extension to establish a connection to extensions from another service. |
7521
+ | <code><a href="#@btc-embedded/cdk-extensions.DeactivatableServiceExtension.modifyServiceProps">modifyServiceProps</a></code> | Prior to launching the task definition as a service, this hook is called on each extension to give it a chance to mutate the properties of the service to be created. |
7522
+ | <code><a href="#@btc-embedded/cdk-extensions.DeactivatableServiceExtension.modifyTaskDefinitionProps">modifyTaskDefinitionProps</a></code> | This is a hook which allows extensions to modify the settings of the task definition prior to it being created. |
7523
+ | <code><a href="#@btc-embedded/cdk-extensions.DeactivatableServiceExtension.prehook">prehook</a></code> | A hook that is called for each extension ahead of time to allow for any initial setup, such as creating resources in advance. |
7524
+ | <code><a href="#@btc-embedded/cdk-extensions.DeactivatableServiceExtension.resolveContainerDependencies">resolveContainerDependencies</a></code> | Once all containers are added to the task definition, this hook is called for each extension to give it a chance to resolve its dependency graph so that its container starts in the right order based on the other extensions that were enabled. |
7525
+ | <code><a href="#@btc-embedded/cdk-extensions.DeactivatableServiceExtension.useService">useService</a></code> | When this hook is implemented by extension, it allows the extension to use the service which has been created. |
7526
+ | <code><a href="#@btc-embedded/cdk-extensions.DeactivatableServiceExtension.useTaskDefinition">useTaskDefinition</a></code> | Once the task definition is created, this hook is called for each extension to give it a chance to add containers to the task definition, change the task definition's role to add permissions, etc. |
7527
+
7528
+ ---
7529
+
7530
+ ##### `addContainerMutatingHook` <a name="addContainerMutatingHook" id="@btc-embedded/cdk-extensions.DeactivatableServiceExtension.addContainerMutatingHook"></a>
7531
+
7532
+ ```typescript
7533
+ public addContainerMutatingHook(hook: ContainerMutatingHook): void
7534
+ ```
7535
+
7536
+ This hook allows another service extension to register a mutating hook for changing the primary container of this extension.
7537
+
7538
+ This is primarily used
7539
+ for the application extension. For example, the Firelens extension wants to
7540
+ be able to modify the settings of the application container to
7541
+ route logs through Firelens.
7542
+
7543
+ ###### `hook`<sup>Required</sup> <a name="hook" id="@btc-embedded/cdk-extensions.DeactivatableServiceExtension.addContainerMutatingHook.parameter.hook"></a>
7544
+
7545
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.ContainerMutatingHook
7546
+
7547
+ ---
7548
+
7549
+ ##### `addHooks` <a name="addHooks" id="@btc-embedded/cdk-extensions.DeactivatableServiceExtension.addHooks"></a>
7550
+
7551
+ ```typescript
7552
+ public addHooks(): void
7553
+ ```
7554
+
7555
+ A hook that allows the extension to add hooks to other extensions that are registered.
7556
+
7557
+ ##### `connectToService` <a name="connectToService" id="@btc-embedded/cdk-extensions.DeactivatableServiceExtension.connectToService"></a>
7558
+
7559
+ ```typescript
7560
+ public connectToService(service: Service, connectToProps?: ConnectToProps): void
7561
+ ```
7562
+
7563
+ This hook allows the extension to establish a connection to extensions from another service.
7564
+
7565
+ Usually used for things like
7566
+ allowing one service to talk to the load balancer or service mesh
7567
+ proxy for another service.
7568
+
7569
+ ###### `service`<sup>Required</sup> <a name="service" id="@btc-embedded/cdk-extensions.DeactivatableServiceExtension.connectToService.parameter.service"></a>
7570
+
7571
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.Service
7572
+
7573
+ The other service to connect to.
7574
+
7575
+ ---
7576
+
7577
+ ###### `connectToProps`<sup>Optional</sup> <a name="connectToProps" id="@btc-embedded/cdk-extensions.DeactivatableServiceExtension.connectToService.parameter.connectToProps"></a>
7578
+
7579
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.ConnectToProps
7580
+
7581
+ ---
7582
+
7583
+ ##### `modifyServiceProps` <a name="modifyServiceProps" id="@btc-embedded/cdk-extensions.DeactivatableServiceExtension.modifyServiceProps"></a>
7584
+
7585
+ ```typescript
7586
+ public modifyServiceProps(props: ServiceBuild): ServiceBuild
7587
+ ```
7588
+
7589
+ Prior to launching the task definition as a service, this hook is called on each extension to give it a chance to mutate the properties of the service to be created.
7590
+
7591
+ ###### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.DeactivatableServiceExtension.modifyServiceProps.parameter.props"></a>
7592
+
7593
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.ServiceBuild
7594
+
7595
+ ---
7596
+
7597
+ ##### `modifyTaskDefinitionProps` <a name="modifyTaskDefinitionProps" id="@btc-embedded/cdk-extensions.DeactivatableServiceExtension.modifyTaskDefinitionProps"></a>
7598
+
7599
+ ```typescript
7600
+ public modifyTaskDefinitionProps(props: TaskDefinitionProps): TaskDefinitionProps
7601
+ ```
7602
+
7603
+ This is a hook which allows extensions to modify the settings of the task definition prior to it being created.
7604
+
7605
+ For example, the App Mesh
7606
+ extension needs to configure an Envoy proxy in the task definition,
7607
+ or the Application extension wants to set the overall resource for
7608
+ the task.
7609
+
7610
+ ###### `props`<sup>Required</sup> <a name="props" id="@btc-embedded/cdk-extensions.DeactivatableServiceExtension.modifyTaskDefinitionProps.parameter.props"></a>
7611
+
7612
+ - *Type:* aws-cdk-lib.aws_ecs.TaskDefinitionProps
7613
+
7614
+ Properties of the task definition to be created.
7615
+
7616
+ ---
7617
+
7618
+ ##### `prehook` <a name="prehook" id="@btc-embedded/cdk-extensions.DeactivatableServiceExtension.prehook"></a>
7619
+
7620
+ ```typescript
7621
+ public prehook(parent: Service, scope: Construct): void
7622
+ ```
7623
+
7624
+ A hook that is called for each extension ahead of time to allow for any initial setup, such as creating resources in advance.
7625
+
7626
+ ###### `parent`<sup>Required</sup> <a name="parent" id="@btc-embedded/cdk-extensions.DeactivatableServiceExtension.prehook.parameter.parent"></a>
7627
+
7628
+ - *Type:* @aws-cdk-containers/ecs-service-extensions.Service
7629
+
7630
+ The parent service which this extension has been added to.
7631
+
7632
+ ---
7633
+
7634
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@btc-embedded/cdk-extensions.DeactivatableServiceExtension.prehook.parameter.scope"></a>
7635
+
7636
+ - *Type:* constructs.Construct
7637
+
7638
+ The scope that this extension should create resources in.
7639
+
7640
+ ---
7641
+
7642
+ ##### `resolveContainerDependencies` <a name="resolveContainerDependencies" id="@btc-embedded/cdk-extensions.DeactivatableServiceExtension.resolveContainerDependencies"></a>
7643
+
7644
+ ```typescript
7645
+ public resolveContainerDependencies(): void
7646
+ ```
7647
+
7648
+ Once all containers are added to the task definition, this hook is called for each extension to give it a chance to resolve its dependency graph so that its container starts in the right order based on the other extensions that were enabled.
7649
+
7650
+ ##### `useService` <a name="useService" id="@btc-embedded/cdk-extensions.DeactivatableServiceExtension.useService"></a>
7651
+
7652
+ ```typescript
7653
+ public useService(service: Ec2Service | FargateService): void
7654
+ ```
7655
+
7656
+ When this hook is implemented by extension, it allows the extension to use the service which has been created.
7657
+
7658
+ It is generally used to
7659
+ create any final resources which might depend on the service itself.
7660
+
7661
+ ###### `service`<sup>Required</sup> <a name="service" id="@btc-embedded/cdk-extensions.DeactivatableServiceExtension.useService.parameter.service"></a>
7662
+
7663
+ - *Type:* aws-cdk-lib.aws_ecs.Ec2Service | aws-cdk-lib.aws_ecs.FargateService
7664
+
7665
+ The generated service.
7666
+
7667
+ ---
7668
+
7669
+ ##### `useTaskDefinition` <a name="useTaskDefinition" id="@btc-embedded/cdk-extensions.DeactivatableServiceExtension.useTaskDefinition"></a>
7670
+
7671
+ ```typescript
7672
+ public useTaskDefinition(taskDefinition: TaskDefinition): void
7673
+ ```
7674
+
7675
+ Once the task definition is created, this hook is called for each extension to give it a chance to add containers to the task definition, change the task definition's role to add permissions, etc.
7676
+
7677
+ ###### `taskDefinition`<sup>Required</sup> <a name="taskDefinition" id="@btc-embedded/cdk-extensions.DeactivatableServiceExtension.useTaskDefinition.parameter.taskDefinition"></a>
7678
+
7679
+ - *Type:* aws-cdk-lib.aws_ecs.TaskDefinition
7680
+
7681
+ The created task definition to add containers to.
7682
+
7683
+ ---
7684
+
7685
+
7686
+ #### Properties <a name="Properties" id="Properties"></a>
7687
+
7688
+ | **Name** | **Type** | **Description** |
7689
+ | --- | --- | --- |
7690
+ | <code><a href="#@btc-embedded/cdk-extensions.DeactivatableServiceExtension.property.name">name</a></code> | <code>string</code> | The name of the extension. |
7691
+ | <code><a href="#@btc-embedded/cdk-extensions.DeactivatableServiceExtension.property.container">container</a></code> | <code>aws-cdk-lib.aws_ecs.ContainerDefinition</code> | The container for this extension. |
7692
+
7693
+ ---
7694
+
7695
+ ##### `name`<sup>Required</sup> <a name="name" id="@btc-embedded/cdk-extensions.DeactivatableServiceExtension.property.name"></a>
7696
+
7697
+ ```typescript
7698
+ public readonly name: string;
7699
+ ```
7700
+
7701
+ - *Type:* string
7702
+
7703
+ The name of the extension.
7704
+
7705
+ ---
7706
+
7707
+ ##### `container`<sup>Optional</sup> <a name="container" id="@btc-embedded/cdk-extensions.DeactivatableServiceExtension.property.container"></a>
7708
+
7709
+ ```typescript
7710
+ public readonly container: ContainerDefinition;
7711
+ ```
7712
+
7713
+ - *Type:* aws-cdk-lib.aws_ecs.ContainerDefinition
7714
+
7715
+ The container for this extension.
7716
+
7717
+ Most extensions have a container, but not
7718
+ every extension is required to have a container. Some extensions may just
7719
+ modify the properties of the service, or create external resources
7720
+ connected to the service.
7721
+
7722
+ ---
7723
+
7724
+
5960
7725
  ### DocumentDbAccessExtension <a name="DocumentDbAccessExtension" id="@btc-embedded/cdk-extensions.DocumentDbAccessExtension"></a>
5961
7726
 
5962
7727
  #### Initializers <a name="Initializers" id="@btc-embedded/cdk-extensions.DocumentDbAccessExtension.Initializer"></a>
@@ -8813,3 +10578,40 @@ public readonly props: TcpKeepAliveExtensionProps;
8813
10578
 
8814
10579
 
8815
10580
 
10581
+ ## Enums <a name="Enums" id="Enums"></a>
10582
+
10583
+ ### InvocationType <a name="InvocationType" id="@btc-embedded/cdk-extensions.InvocationType"></a>
10584
+
10585
+ The invocation type of the step function.
10586
+
10587
+ #### Members <a name="Members" id="Members"></a>
10588
+
10589
+ | **Name** | **Description** |
10590
+ | --- | --- |
10591
+ | <code><a href="#@btc-embedded/cdk-extensions.InvocationType.REQUEST_RESPONSE">REQUEST_RESPONSE</a></code> | (default) - Invoke synchronously. |
10592
+ | <code><a href="#@btc-embedded/cdk-extensions.InvocationType.FIRE_AND_FORGET">FIRE_AND_FORGET</a></code> | Invoke asynchronously. |
10593
+
10594
+ ---
10595
+
10596
+ ##### `REQUEST_RESPONSE` <a name="REQUEST_RESPONSE" id="@btc-embedded/cdk-extensions.InvocationType.REQUEST_RESPONSE"></a>
10597
+
10598
+ (default) - Invoke synchronously.
10599
+
10600
+ For more information, see
10601
+ [StartSyncExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartSyncExecution.html)
10602
+ in the *AWS Step Functions API Reference*.
10603
+ > `REQUEST_RESPONSE` is not supported for `STANDARD` state machine workflows.
10604
+
10605
+ ---
10606
+
10607
+
10608
+ ##### `FIRE_AND_FORGET` <a name="FIRE_AND_FORGET" id="@btc-embedded/cdk-extensions.InvocationType.FIRE_AND_FORGET"></a>
10609
+
10610
+ Invoke asynchronously.
10611
+
10612
+ For more information, see
10613
+ [StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)
10614
+ in the *AWS Step Functions API Reference*.
10615
+
10616
+ ---
10617
+