stacktape 3.3.0 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stacktape",
3
- "version": "3.3.0",
3
+ "version": "3.4.0",
4
4
  "description": "PaaS 2.0 that deploys to your own AWS account.",
5
5
  "author": "Stacktape team <support@stacktape.com>",
6
6
  "license": "MIT",
package/plain.d.ts CHANGED
@@ -33,6 +33,7 @@ export type StacktapeResourceDefinition =
33
33
  | NextjsWeb
34
34
  | OpenSearchDomain
35
35
  | EfsFilesystem
36
+ | KinesisStream
36
37
  | LambdaFunction
37
38
  | EdgeLambdaFunction;
38
39
  export type HttpMethod = "*" | "DELETE" | "GET" | "HEAD" | "OPTIONS" | "PATCH" | "POST" | "PUT";
@@ -1738,7 +1739,10 @@ export interface StpBuildpackCwImagePackagingProps {
1738
1739
  | EsLanguageSpecificConfig
1739
1740
  | PyLanguageSpecificConfig
1740
1741
  | JavaLanguageSpecificConfig
1741
- | GoLanguageSpecificConfig;
1742
+ | PhpLanguageSpecificConfig
1743
+ | DotnetLanguageSpecificConfig
1744
+ | GoLanguageSpecificConfig
1745
+ | RubyLanguageSpecificConfig;
1742
1746
  /**
1743
1747
  * #### Builds the image with support for glibc-based binaries.
1744
1748
  *
@@ -1872,10 +1876,10 @@ export interface PyLanguageSpecificConfig {
1872
1876
  *
1873
1877
  * ---
1874
1878
  *
1875
- * Stacktape will automatically detect the package manager based on the files in your project.
1876
- * You only need to set this if you are using a non-standard file name for your dependencies.
1879
+ * Stacktape uses `uv` for dependency resolution and installation. This option is kept
1880
+ * for compatibility and must be set to `uv` if provided.
1877
1881
  */
1878
- packageManager?: "pip" | "pipenv" | "poetry";
1882
+ packageManager?: "uv";
1879
1883
  /**
1880
1884
  * #### The version of Python to use.
1881
1885
  */
@@ -1921,7 +1925,29 @@ export interface JavaLanguageSpecificConfig {
1921
1925
  */
1922
1926
  javaVersion?: 11 | 17 | 19 | 8;
1923
1927
  }
1928
+ export interface PhpLanguageSpecificConfig {
1929
+ /**
1930
+ * #### The version of PHP to use.
1931
+ */
1932
+ phpVersion?: 8.2 | 8.3;
1933
+ }
1934
+ export interface DotnetLanguageSpecificConfig {
1935
+ /**
1936
+ * #### The path to your .NET project file (.csproj).
1937
+ */
1938
+ projectFile?: string;
1939
+ /**
1940
+ * #### The version of .NET to use.
1941
+ */
1942
+ dotnetVersion?: 6 | 8;
1943
+ }
1924
1944
  export interface GoLanguageSpecificConfig {}
1945
+ export interface RubyLanguageSpecificConfig {
1946
+ /**
1947
+ * #### The version of Ruby to use.
1948
+ */
1949
+ rubyVersion?: 3.2 | 3.3;
1950
+ }
1925
1951
  /**
1926
1952
  * #### Builds a container image using an external buildpack.
1927
1953
  *
@@ -2818,7 +2844,10 @@ export interface StpBuildpackBjImagePackagingProps {
2818
2844
  | EsLanguageSpecificConfig
2819
2845
  | PyLanguageSpecificConfig
2820
2846
  | JavaLanguageSpecificConfig
2821
- | GoLanguageSpecificConfig;
2847
+ | PhpLanguageSpecificConfig
2848
+ | DotnetLanguageSpecificConfig
2849
+ | GoLanguageSpecificConfig
2850
+ | RubyLanguageSpecificConfig;
2822
2851
  /**
2823
2852
  * #### Builds the image with support for glibc-based binaries.
2824
2853
  *
@@ -3345,9 +3374,22 @@ export interface KinesisIntegration {
3345
3374
  */
3346
3375
  properties: {
3347
3376
  /**
3348
- * #### The ARN of the Kinesis stream to consume records from.
3377
+ * #### The name of a Kinesis stream defined in your stack's resources.
3378
+ *
3379
+ * ---
3380
+ *
3381
+ * You must specify either `kinesisStreamName` or `streamArn`.
3349
3382
  */
3350
- streamArn: string;
3383
+ kinesisStreamName?: string;
3384
+ /**
3385
+ * #### The ARN of an existing Kinesis stream to consume records from.
3386
+ *
3387
+ * ---
3388
+ *
3389
+ * Use this to consume from a stream that is not managed by your stack.
3390
+ * You must specify either `kinesisStreamName` or `streamArn`.
3391
+ */
3392
+ streamArn?: string;
3351
3393
  /**
3352
3394
  * #### The ARN of a specific stream consumer to use.
3353
3395
  *
@@ -9707,6 +9749,7 @@ export interface UserAuthPoolProps {
9707
9749
  * Stacktape does this by creating a `WebACLAssociation` between the user pool and the referenced firewall.
9708
9750
  */
9709
9751
  useFirewall?: string;
9752
+ customDomain?: UserPoolCustomDomainConfiguration;
9710
9753
  /**
9711
9754
  * #### Generate a client secret
9712
9755
  *
@@ -10130,6 +10173,49 @@ export interface IdentityProvider {
10130
10173
  * In most cases you don't need to set this – Stacktape configures sensible defaults for common providers.
10131
10174
  */
10132
10175
  export interface RecordStringAny {}
10176
+ /**
10177
+ * #### Custom Domain
10178
+ *
10179
+ * ---
10180
+ *
10181
+ * Configures a custom domain for the Cognito Hosted UI (e.g., `auth.example.com`).
10182
+ *
10183
+ * When configured, Cognito creates a CloudFront distribution to serve your custom domain.
10184
+ * Stacktape automatically:
10185
+ * - Configures the user pool domain with your custom domain and an ACM certificate from us-east-1
10186
+ * - Creates a DNS record pointing to the CloudFront distribution
10187
+ *
10188
+ * The domain must be registered and verified in your Stacktape account with a valid ACM certificate in us-east-1.
10189
+ */
10190
+ export interface UserPoolCustomDomainConfiguration {
10191
+ /**
10192
+ * #### Domain Name
10193
+ *
10194
+ * ---
10195
+ *
10196
+ * Fully qualified domain name for the Cognito Hosted UI (e.g., `auth.example.com`).
10197
+ */
10198
+ domainName: string;
10199
+ /**
10200
+ * #### Custom Certificate ARN
10201
+ *
10202
+ * ---
10203
+ *
10204
+ * ARN of an ACM certificate in **us-east-1** to use for this domain.
10205
+ * By default, Stacktape uses the certificate associated with your domain in us-east-1.
10206
+ *
10207
+ * The certificate must be in us-east-1 because Cognito uses CloudFront for custom domains.
10208
+ */
10209
+ customCertificateArn?: string;
10210
+ /**
10211
+ * #### Disable DNS Record Creation
10212
+ *
10213
+ * ---
10214
+ *
10215
+ * If `true`, Stacktape will not create a DNS record for this domain.
10216
+ */
10217
+ disableDnsRecordCreation?: boolean;
10218
+ }
10133
10219
  /**
10134
10220
  * #### Event Bus
10135
10221
  *
@@ -11533,6 +11619,7 @@ export interface CustomResourceDefinitionProps {
11533
11619
  runtime?:
11534
11620
  | "dotnet6"
11535
11621
  | "dotnet7"
11622
+ | "dotnet8"
11536
11623
  | "java11"
11537
11624
  | "java17"
11538
11625
  | "java8"
@@ -11549,7 +11636,7 @@ export interface CustomResourceDefinitionProps {
11549
11636
  | "python3.13"
11550
11637
  | "python3.8"
11551
11638
  | "python3.9"
11552
- | "ruby3.2";
11639
+ | "ruby3.3";
11553
11640
  /**
11554
11641
  * #### The maximum execution time for the custom resource's Lambda function, in seconds.
11555
11642
  *
@@ -11658,7 +11745,7 @@ export interface CustomResourceDefinitionProps {
11658
11745
  *
11659
11746
  * The `stacktape-lambda-buildpack` automatically bundles your code and dependencies into an optimized Lambda deployment package.
11660
11747
  *
11661
- * **Supported languages:** JavaScript, TypeScript, Python, Java, and Go.
11748
+ * **Supported languages:** JavaScript, TypeScript, Python, Java, Go, Ruby, PHP, and .NET.
11662
11749
  *
11663
11750
  * For JS/TS, your code is bundled into a single file. Source maps are automatically generated.
11664
11751
  * Packages are cached based on a checksum, so unchanged code is not re-packaged.
@@ -11706,7 +11793,10 @@ export interface StpBuildpackLambdaPackagingProps {
11706
11793
  | EsLanguageSpecificConfig
11707
11794
  | PyLanguageSpecificConfig
11708
11795
  | JavaLanguageSpecificConfig
11709
- | GoLanguageSpecificConfig;
11796
+ | PhpLanguageSpecificConfig
11797
+ | DotnetLanguageSpecificConfig
11798
+ | GoLanguageSpecificConfig
11799
+ | RubyLanguageSpecificConfig;
11710
11800
  }
11711
11801
  /**
11712
11802
  * #### Uses a pre-built artifact for Lambda deployment.
@@ -11839,6 +11929,7 @@ export interface DeploymentScriptProps {
11839
11929
  runtime?:
11840
11930
  | "dotnet6"
11841
11931
  | "dotnet7"
11932
+ | "dotnet8"
11842
11933
  | "java11"
11843
11934
  | "java17"
11844
11935
  | "java8"
@@ -11855,7 +11946,7 @@ export interface DeploymentScriptProps {
11855
11946
  | "python3.13"
11856
11947
  | "python3.8"
11857
11948
  | "python3.9"
11858
- | "ruby3.2";
11949
+ | "ruby3.3";
11859
11950
  /**
11860
11951
  * #### A list of environment variables to inject into the script's execution environment.
11861
11952
  *
@@ -13930,6 +14021,116 @@ export interface EfsFilesystemProps {
13930
14021
  */
13931
14022
  provisionedThroughputInMibps?: number;
13932
14023
  }
14024
+ /**
14025
+ * #### Kinesis Data Stream
14026
+ *
14027
+ * ---
14028
+ *
14029
+ * A fully managed, scalable, and durable real-time data streaming service that can continuously capture gigabytes of data per second from hundreds of thousands of sources.
14030
+ *
14031
+ * Kinesis Data Streams is commonly used for log and event data collection, real-time analytics, mobile data capture, and IoT data processing.
14032
+ *
14033
+ * For more information, see the [AWS documentation on Kinesis Data Streams](https://docs.aws.amazon.com/streams/latest/dev/introduction.html).
14034
+ */
14035
+ export interface KinesisStream {
14036
+ type: "kinesis-stream";
14037
+ properties?: KinesisStreamProps;
14038
+ /**
14039
+ * #### Resource Overrides
14040
+ *
14041
+ * ---
14042
+ *
14043
+ * Overrides properties of the underlying CloudFormation resources that Stacktape creates.
14044
+ *
14045
+ * Child resources are identified by their CloudFormation logical ID (e.g., `MyBucketBucket`). You can find these IDs by running `stacktape stack:info --detailed`.
14046
+ *
14047
+ * For a list of properties that can be overridden, refer to the [AWS CloudFormation documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html).
14048
+ */
14049
+ overrides?: {
14050
+ [k: string]: any;
14051
+ };
14052
+ }
14053
+ export interface KinesisStreamProps {
14054
+ /**
14055
+ * #### Capacity Mode
14056
+ *
14057
+ * ---
14058
+ *
14059
+ * Determines how the stream's capacity is managed.
14060
+ *
14061
+ * - **`ON_DEMAND`**: The stream automatically scales to handle any amount of data. You pay per GB of data written and read. This is the simplest option and recommended for most use cases.
14062
+ * - **`PROVISIONED`**: You specify the number of shards. Each shard provides 1 MB/sec write and 2 MB/sec read capacity. This offers more predictable costs for stable workloads.
14063
+ */
14064
+ capacityMode?: "ON_DEMAND" | "PROVISIONED";
14065
+ /**
14066
+ * #### Shard Count
14067
+ *
14068
+ * ---
14069
+ *
14070
+ * The number of shards for the stream. Only applicable when `capacityMode` is `PROVISIONED`.
14071
+ *
14072
+ * Each shard provides:
14073
+ * - **Write:** 1 MB/sec or 1,000 records/sec
14074
+ * - **Read:** 2 MB/sec or 5 transactions/sec (shared across all consumers)
14075
+ *
14076
+ * For on-demand streams, this property is ignored as AWS automatically manages shard capacity.
14077
+ */
14078
+ shardCount?: number;
14079
+ /**
14080
+ * #### Retention Period (Hours)
14081
+ *
14082
+ * ---
14083
+ *
14084
+ * The number of hours data records are retained in the stream.
14085
+ *
14086
+ * The minimum is 24 hours. The maximum is 8760 hours (365 days).
14087
+ * Extended retention (beyond 24 hours) incurs additional costs.
14088
+ */
14089
+ retentionPeriodHours?: number;
14090
+ encryption?: KinesisStreamEncryption;
14091
+ /**
14092
+ * #### Enable Enhanced Fan-Out
14093
+ *
14094
+ * ---
14095
+ *
14096
+ * If `true`, enables enhanced fan-out for the stream.
14097
+ *
14098
+ * Enhanced fan-out provides dedicated 2 MB/sec throughput per consumer per shard, instead of sharing the 2 MB/sec across all consumers.
14099
+ * This is useful when you have multiple consumers that need to read from the stream simultaneously with low latency.
14100
+ *
14101
+ * Note: Enhanced fan-out consumers are created automatically when a Lambda function uses `autoCreateConsumer: true` in its Kinesis event integration.
14102
+ */
14103
+ enableEnhancedFanOut?: boolean;
14104
+ }
14105
+ /**
14106
+ * #### Encryption
14107
+ *
14108
+ * ---
14109
+ *
14110
+ * Configures server-side encryption for the stream.
14111
+ *
14112
+ * When enabled, all data written to the stream is encrypted at rest using the specified KMS key.
14113
+ */
14114
+ export interface KinesisStreamEncryption {
14115
+ /**
14116
+ * #### Enable Encryption
14117
+ *
14118
+ * ---
14119
+ *
14120
+ * If `true`, enables server-side encryption for the stream.
14121
+ */
14122
+ enabled: boolean;
14123
+ /**
14124
+ * #### KMS Key ARN
14125
+ *
14126
+ * ---
14127
+ *
14128
+ * The ARN of a customer-managed KMS key to use for encryption.
14129
+ *
14130
+ * If not specified, the AWS-managed key `alias/aws/kinesis` is used.
14131
+ */
14132
+ kmsKeyArn?: string;
14133
+ }
13933
14134
  /**
13934
14135
  * #### A serverless compute resource that runs your code in response to events.
13935
14136
  *
@@ -14015,6 +14216,7 @@ export interface LambdaFunctionProps {
14015
14216
  runtime?:
14016
14217
  | "dotnet6"
14017
14218
  | "dotnet7"
14219
+ | "dotnet8"
14018
14220
  | "java11"
14019
14221
  | "java17"
14020
14222
  | "java8"
@@ -14031,7 +14233,7 @@ export interface LambdaFunctionProps {
14031
14233
  | "python3.13"
14032
14234
  | "python3.8"
14033
14235
  | "python3.9"
14034
- | "ruby3.2";
14236
+ | "ruby3.3";
14035
14237
  /**
14036
14238
  * #### The processor architecture for the function.
14037
14239
  *
package/types.d.ts CHANGED
@@ -50,6 +50,7 @@ import type {
50
50
  AwsEventsEventbus,
51
51
  AwsIamInstanceprofile,
52
52
  AwsIamRole,
53
+ AwsKinesisStream,
53
54
  AwsLambdaAlias,
54
55
  AwsLambdaEventinvokeconfig,
55
56
  AwsLambdaFunction,
@@ -124,6 +125,7 @@ export type {
124
125
  UpstashRedisProps,
125
126
  SqsQueueProps,
126
127
  SnsTopicProps,
128
+ KinesisStreamProps,
127
129
  WebAppFirewallProps,
128
130
  OpenSearchDomainProps,
129
131
  EfsFilesystemProps,
@@ -367,15 +369,15 @@ export declare class BaseResource {
367
369
  // ==========================================
368
370
 
369
371
  // ConnectTo type aliases
370
- type WebServiceConnectTo = RelationalDatabase | Bucket | HostingBucket | DynamoDbTable | EventBus | RedisCluster | MongoDbAtlasCluster | UpstashRedis | SqsQueue | SnsTopic | OpenSearchDomain | EfsFilesystem | PrivateService | GlobalAwsServiceConstant;
371
- type PrivateServiceConnectTo = RelationalDatabase | Bucket | HostingBucket | DynamoDbTable | EventBus | RedisCluster | MongoDbAtlasCluster | UpstashRedis | SqsQueue | SnsTopic | OpenSearchDomain | EfsFilesystem | GlobalAwsServiceConstant;
372
- type WorkerServiceConnectTo = RelationalDatabase | Bucket | HostingBucket | DynamoDbTable | EventBus | RedisCluster | MongoDbAtlasCluster | UpstashRedis | SqsQueue | SnsTopic | OpenSearchDomain | EfsFilesystem | GlobalAwsServiceConstant;
373
- type MultiContainerWorkloadConnectTo = RelationalDatabase | Bucket | HostingBucket | DynamoDbTable | EventBus | RedisCluster | MongoDbAtlasCluster | UpstashRedis | SqsQueue | SnsTopic | OpenSearchDomain | EfsFilesystem | LambdaFunction | BatchJob | UserAuthPool | GlobalAwsServiceConstant;
374
- type LambdaFunctionConnectTo = RelationalDatabase | Bucket | HostingBucket | DynamoDbTable | EventBus | RedisCluster | MongoDbAtlasCluster | UpstashRedis | SqsQueue | SnsTopic | OpenSearchDomain | EfsFilesystem | PrivateService | WebService | LambdaFunction | BatchJob | UserAuthPool | GlobalAwsServiceConstant;
375
- type BatchJobConnectTo = RelationalDatabase | Bucket | HostingBucket | DynamoDbTable | EventBus | RedisCluster | MongoDbAtlasCluster | UpstashRedis | SqsQueue | SnsTopic | OpenSearchDomain | EfsFilesystem | GlobalAwsServiceConstant;
372
+ type WebServiceConnectTo = RelationalDatabase | Bucket | HostingBucket | DynamoDbTable | EventBus | RedisCluster | MongoDbAtlasCluster | UpstashRedis | SqsQueue | SnsTopic | KinesisStream | OpenSearchDomain | EfsFilesystem | PrivateService | GlobalAwsServiceConstant;
373
+ type PrivateServiceConnectTo = RelationalDatabase | Bucket | HostingBucket | DynamoDbTable | EventBus | RedisCluster | MongoDbAtlasCluster | UpstashRedis | SqsQueue | SnsTopic | KinesisStream | OpenSearchDomain | EfsFilesystem | GlobalAwsServiceConstant;
374
+ type WorkerServiceConnectTo = RelationalDatabase | Bucket | HostingBucket | DynamoDbTable | EventBus | RedisCluster | MongoDbAtlasCluster | UpstashRedis | SqsQueue | SnsTopic | KinesisStream | OpenSearchDomain | EfsFilesystem | GlobalAwsServiceConstant;
375
+ type MultiContainerWorkloadConnectTo = RelationalDatabase | Bucket | HostingBucket | DynamoDbTable | EventBus | RedisCluster | MongoDbAtlasCluster | UpstashRedis | SqsQueue | SnsTopic | KinesisStream | OpenSearchDomain | EfsFilesystem | LambdaFunction | BatchJob | UserAuthPool | GlobalAwsServiceConstant;
376
+ type LambdaFunctionConnectTo = RelationalDatabase | Bucket | HostingBucket | DynamoDbTable | EventBus | RedisCluster | MongoDbAtlasCluster | UpstashRedis | SqsQueue | SnsTopic | KinesisStream | OpenSearchDomain | EfsFilesystem | PrivateService | WebService | LambdaFunction | BatchJob | UserAuthPool | GlobalAwsServiceConstant;
377
+ type BatchJobConnectTo = RelationalDatabase | Bucket | HostingBucket | DynamoDbTable | EventBus | RedisCluster | MongoDbAtlasCluster | UpstashRedis | SqsQueue | SnsTopic | KinesisStream | OpenSearchDomain | EfsFilesystem | GlobalAwsServiceConstant;
376
378
  type StateMachineConnectTo = Function | BatchJob | GlobalAwsServiceConstant;
377
- type NextjsWebConnectTo = RelationalDatabase | Bucket | HostingBucket | DynamoDbTable | EventBus | RedisCluster | MongoDbAtlasCluster | UpstashRedis | SqsQueue | SnsTopic | OpenSearchDomain | EfsFilesystem | PrivateService | WebService | LambdaFunction | BatchJob | UserAuthPool | GlobalAwsServiceConstant;
378
- type ScriptConnectTo = RelationalDatabase | Bucket | HostingBucket | DynamoDbTable | EventBus | RedisCluster | MongoDbAtlasCluster | UpstashRedis | SqsQueue | SnsTopic | OpenSearchDomain | EfsFilesystem | PrivateService | WebService | LambdaFunction | BatchJob | UserAuthPool | GlobalAwsServiceConstant;
379
+ type NextjsWebConnectTo = RelationalDatabase | Bucket | HostingBucket | DynamoDbTable | EventBus | RedisCluster | MongoDbAtlasCluster | UpstashRedis | SqsQueue | SnsTopic | KinesisStream | OpenSearchDomain | EfsFilesystem | PrivateService | WebService | LambdaFunction | BatchJob | UserAuthPool | GlobalAwsServiceConstant;
380
+ type ScriptConnectTo = RelationalDatabase | Bucket | HostingBucket | DynamoDbTable | EventBus | RedisCluster | MongoDbAtlasCluster | UpstashRedis | SqsQueue | SnsTopic | KinesisStream | OpenSearchDomain | EfsFilesystem | PrivateService | WebService | LambdaFunction | BatchJob | UserAuthPool | GlobalAwsServiceConstant;
379
381
 
380
382
  // Augmented container types with object-style environment
381
383
  /**
@@ -820,6 +822,20 @@ export type SnsTopicPropsWithOverrides = import('./plain').SnsTopicProps & {
820
822
  transforms?: SnsTopicTransforms;
821
823
  };
822
824
 
825
+ export type KinesisStreamPropsWithOverrides = import('./plain').KinesisStreamProps & {
826
+ /**
827
+ * Override properties of underlying CloudFormation resources.
828
+ * Allows fine-grained control over the generated infrastructure.
829
+ */
830
+ overrides?: KinesisStreamOverrides;
831
+ /**
832
+ * Transform functions for underlying CloudFormation resources.
833
+ * Each function receives the current properties and returns modified properties.
834
+ * Unlike overrides, transforms allow dynamic modification based on existing values.
835
+ */
836
+ transforms?: KinesisStreamTransforms;
837
+ };
838
+
823
839
  export type WebAppFirewallPropsWithOverrides = import('./plain').WebAppFirewallProps & {
824
840
  /**
825
841
  * Override properties of underlying CloudFormation resources.
@@ -1197,6 +1213,12 @@ export type SnsTopicOverrides = {
1197
1213
  [key: string]: Record<string, unknown> | undefined;
1198
1214
  };
1199
1215
 
1216
+ export type KinesisStreamOverrides = {
1217
+ kinesisStream?: Partial<AwsKinesisStream>;
1218
+ /** Index signature for dynamic CloudFormation resource names */
1219
+ [key: string]: Record<string, unknown> | undefined;
1220
+ };
1221
+
1200
1222
  export type WebAppFirewallOverrides = {
1201
1223
  webAppFirewallCustomResource?: Partial<AwsCloudformationCustomresource>;
1202
1224
  /** Index signature for dynamic CloudFormation resource names */
@@ -1578,6 +1600,12 @@ export type SnsTopicTransforms = {
1578
1600
  [key: string]: ((props: Record<string, unknown>) => Record<string, unknown>) | undefined;
1579
1601
  };
1580
1602
 
1603
+ export type KinesisStreamTransforms = {
1604
+ kinesisStream?: (props: Partial<AwsKinesisStream>) => Partial<AwsKinesisStream>;
1605
+ /** Index signature for dynamic CloudFormation resource names */
1606
+ [key: string]: ((props: Record<string, unknown>) => Record<string, unknown>) | undefined;
1607
+ };
1608
+
1581
1609
  export type WebAppFirewallTransforms = {
1582
1610
  webAppFirewallCustomResource?: (props: Partial<AwsCloudformationCustomresource>) => Partial<AwsCloudformationCustomresource>;
1583
1611
  /** Index signature for dynamic CloudFormation resource names */
@@ -2001,6 +2029,21 @@ export declare class SnsTopic extends BaseResource {
2001
2029
  /** Topic name */
2002
2030
  readonly name: string;
2003
2031
  }
2032
+ export declare class KinesisStream extends BaseResource {
2033
+ /**
2034
+ * #### Kinesis Data Stream
2035
+ *
2036
+ * ---
2037
+ *
2038
+ * A fully managed, scalable, and durable real-time data streaming service that can continuously capture gigabytes of data per second from hundreds of thousands of sources.
2039
+ *
2040
+ * Kinesis Data Streams is commonly used for log and event data collection, real-time analytics, mobile data capture, and IoT data processing.
2041
+ *
2042
+ * For more information, see the [AWS documentation on Kinesis Data Streams](https://docs.aws.amazon.com/streams/latest/dev/introduction.html).
2043
+ */
2044
+ constructor(properties: KinesisStreamPropsWithOverrides);
2045
+ constructor(name: string, properties: KinesisStreamPropsWithOverrides);
2046
+ }
2004
2047
  export declare class WebAppFirewall extends BaseResource {
2005
2048
  /**
2006
2049
  * #### Web Application Firewall
@@ -2326,7 +2369,7 @@ export declare class StacktapeLambdaBuildpackPackaging extends BaseTypePropertie
2326
2369
  *
2327
2370
  * The `stacktape-lambda-buildpack` automatically bundles your code and dependencies into an optimized Lambda deployment package.
2328
2371
  *
2329
- * **Supported languages:** JavaScript, TypeScript, Python, Java, and Go.
2372
+ * **Supported languages:** JavaScript, TypeScript, Python, Java, Go, Ruby, PHP, and .NET.
2330
2373
  *
2331
2374
  * For JS/TS, your code is bundled into a single file. Source maps are automatically generated.
2332
2375
  * Packages are cached based on a checksum, so unchanged code is not re-packaged.
@@ -3023,7 +3066,7 @@ export type CloudFormationTemplate = {
3023
3066
  };
3024
3067
 
3025
3068
  export type StacktapeConfig = Omit<import('./plain').StacktapeConfig, 'resources' | 'cloudformationResources' | 'scripts'> & {
3026
- resources: { [resourceName: string]: RelationalDatabase | WebService | PrivateService | WorkerService | MultiContainerWorkload | LambdaFunction | BatchJob | Bucket | HostingBucket | DynamoDbTable | EventBus | HttpApiGateway | ApplicationLoadBalancer | NetworkLoadBalancer | RedisCluster | MongoDbAtlasCluster | StateMachine | UserAuthPool | UpstashRedis | SqsQueue | SnsTopic | WebAppFirewall | OpenSearchDomain | EfsFilesystem | NextjsWeb | Bastion | StacktapeResourceDefinition };
3069
+ resources: { [resourceName: string]: RelationalDatabase | WebService | PrivateService | WorkerService | MultiContainerWorkload | LambdaFunction | BatchJob | Bucket | HostingBucket | DynamoDbTable | EventBus | HttpApiGateway | ApplicationLoadBalancer | NetworkLoadBalancer | RedisCluster | MongoDbAtlasCluster | StateMachine | UserAuthPool | UpstashRedis | SqsQueue | SnsTopic | KinesisStream | WebAppFirewall | OpenSearchDomain | EfsFilesystem | NextjsWeb | Bastion | StacktapeResourceDefinition };
3027
3070
  /**
3028
3071
  * #### Scripts that can be executed using the `stacktape script:run` command.
3029
3072
  *