@floci/testcontainers 0.1.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.
@@ -0,0 +1,447 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.StartedFlociContainer = exports.FlociContainer = void 0;
7
+ const crypto_1 = __importDefault(require("crypto"));
8
+ const testcontainers_1 = require("testcontainers");
9
+ const services_1 = require("./config/services");
10
+ const DEFAULT_IMAGE = 'floci/floci:latest';
11
+ const DOCKER_SOCKET = '/var/run/docker.sock';
12
+ /**
13
+ * Testcontainers module for Floci — a free, open-source local AWS emulator.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * const floci = await new FlociContainer().start();
18
+ * const s3 = new S3Client({
19
+ * endpoint: floci.getEndpoint(),
20
+ * region: floci.getRegion(),
21
+ * credentials: { accessKeyId: floci.getAccessKey(), secretAccessKey: floci.getSecretKey() },
22
+ * forcePathStyle: true,
23
+ * });
24
+ * await floci.stop();
25
+ * ```
26
+ */
27
+ class FlociContainer {
28
+ constructor(image = DEFAULT_IMAGE) {
29
+ this.envVars = {};
30
+ this.exposedPorts = new Set([FlociContainer.PORT]);
31
+ this.acmConfig = new services_1.AcmConfig();
32
+ this.apiGatewayConfig = new services_1.ApiGatewayConfig();
33
+ this.apiGatewayV2Config = new services_1.ApiGatewayV2Config();
34
+ this.appConfigConfig = new services_1.AppConfigConfig();
35
+ this.appConfigDataConfig = new services_1.AppConfigDataConfig();
36
+ this.athenaConfig = new services_1.AthenaConfig();
37
+ this.bedrockRuntimeConfig = new services_1.BedrockRuntimeConfig();
38
+ this.cloudFormationConfig = new services_1.CloudFormationConfig();
39
+ this.cloudWatchLogsConfig = new services_1.CloudWatchLogsConfig();
40
+ this.cloudWatchMetricsConfig = new services_1.CloudWatchMetricsConfig();
41
+ this.codeBuildConfig = new services_1.CodeBuildConfig();
42
+ this.codeDeployConfig = new services_1.CodeDeployConfig();
43
+ this.cognitoConfig = new services_1.CognitoConfig();
44
+ this.dynamoDbConfig = new services_1.DynamoDbConfig();
45
+ this.ec2Config = new services_1.Ec2Config();
46
+ this.ecrConfig = new services_1.EcrConfig();
47
+ this.ecsConfig = new services_1.EcsConfig();
48
+ this.eksConfig = new services_1.EksConfig();
49
+ this.elastiCacheConfig = new services_1.ElastiCacheConfig();
50
+ this.elbV2Config = new services_1.ElbV2Config();
51
+ this.eventBridgeConfig = new services_1.EventBridgeConfig();
52
+ this.firehoseConfig = new services_1.FirehoseConfig();
53
+ this.glueConfig = new services_1.GlueConfig();
54
+ this.iamConfig = new services_1.IamConfig();
55
+ this.kinesisConfig = new services_1.KinesisConfig();
56
+ this.kmsConfig = new services_1.KmsConfig();
57
+ this.lambdaConfig = new services_1.LambdaConfig();
58
+ this.mskConfig = new services_1.MskConfig();
59
+ this.openSearchConfig = new services_1.OpenSearchConfig();
60
+ this.pipesConfig = new services_1.PipesConfig();
61
+ this.rdsConfig = new services_1.RdsConfig();
62
+ this.resourceGroupsTaggingConfig = new services_1.ResourceGroupsTaggingConfig();
63
+ this.s3Config = new services_1.S3Config();
64
+ this.schedulerConfig = new services_1.SchedulerConfig();
65
+ this.secretsManagerConfig = new services_1.SecretsManagerConfig();
66
+ this.sesConfig = new services_1.SesConfig();
67
+ this.sesV2Config = new services_1.SesV2Config();
68
+ this.snsConfig = new services_1.SnsConfig();
69
+ this.sqsConfig = new services_1.SqsConfig();
70
+ this.ssmConfig = new services_1.SsmConfig();
71
+ this.stepFunctionsConfig = new services_1.StepFunctionsConfig();
72
+ this.image = image;
73
+ this.withEnv('FLOCI_DEFAULT_REGION', FlociContainer.DEFAULT_REGION);
74
+ this.withEnv('FLOCI_DEFAULT_ACCOUNT_ID', FlociContainer.DEFAULT_ACCOUNT_ID);
75
+ this.withEnv('FLOCI_DEFAULT_AVAILABILITY_ZONE', FlociContainer.DEFAULT_AVAILABILITY_ZONE);
76
+ this.applyAllConfigs();
77
+ }
78
+ withEnv(key, value) {
79
+ this.envVars[key] = value;
80
+ return this;
81
+ }
82
+ withExposedPort(port) {
83
+ this.exposedPorts.add(port);
84
+ return this;
85
+ }
86
+ withRegion(region) {
87
+ return this.withEnv('FLOCI_DEFAULT_REGION', region);
88
+ }
89
+ withAccountId(accountId) {
90
+ return this.withEnv('FLOCI_DEFAULT_ACCOUNT_ID', accountId);
91
+ }
92
+ withAvailabilityZone(zone) {
93
+ return this.withEnv('FLOCI_DEFAULT_AVAILABILITY_ZONE', zone);
94
+ }
95
+ withDedicatedNetwork() {
96
+ const name = `floci-network-${crypto_1.default.randomBytes(4).toString('hex')}`;
97
+ this.dedicatedNetworkName = name;
98
+ return this.withEnv('FLOCI_SERVICES_DOCKER_NETWORK', name);
99
+ }
100
+ withAcmConfig(config) {
101
+ this.acmConfig = config;
102
+ config.applyEnvVarsTo(this);
103
+ return this;
104
+ }
105
+ getAcmConfig() { return this.acmConfig; }
106
+ withApiGatewayConfig(config) {
107
+ this.apiGatewayConfig = config;
108
+ config.applyEnvVarsTo(this);
109
+ return this;
110
+ }
111
+ getApiGatewayConfig() { return this.apiGatewayConfig; }
112
+ withApiGatewayV2Config(config) {
113
+ this.apiGatewayV2Config = config;
114
+ config.applyEnvVarsTo(this);
115
+ return this;
116
+ }
117
+ getApiGatewayV2Config() { return this.apiGatewayV2Config; }
118
+ withAppConfigConfig(config) {
119
+ this.appConfigConfig = config;
120
+ config.applyEnvVarsTo(this);
121
+ return this;
122
+ }
123
+ getAppConfigConfig() { return this.appConfigConfig; }
124
+ withAppConfigDataConfig(config) {
125
+ this.appConfigDataConfig = config;
126
+ config.applyEnvVarsTo(this);
127
+ return this;
128
+ }
129
+ getAppConfigDataConfig() { return this.appConfigDataConfig; }
130
+ withAthenaConfig(config) {
131
+ this.athenaConfig = config;
132
+ config.applyEnvVarsTo(this);
133
+ return this;
134
+ }
135
+ getAthenaConfig() { return this.athenaConfig; }
136
+ withBedrockRuntimeConfig(config) {
137
+ this.bedrockRuntimeConfig = config;
138
+ config.applyEnvVarsTo(this);
139
+ return this;
140
+ }
141
+ getBedrockRuntimeConfig() { return this.bedrockRuntimeConfig; }
142
+ withCloudFormationConfig(config) {
143
+ this.cloudFormationConfig = config;
144
+ config.applyEnvVarsTo(this);
145
+ return this;
146
+ }
147
+ getCloudFormationConfig() { return this.cloudFormationConfig; }
148
+ withCloudWatchLogsConfig(config) {
149
+ this.cloudWatchLogsConfig = config;
150
+ config.applyEnvVarsTo(this);
151
+ return this;
152
+ }
153
+ getCloudWatchLogsConfig() { return this.cloudWatchLogsConfig; }
154
+ withCloudWatchMetricsConfig(config) {
155
+ this.cloudWatchMetricsConfig = config;
156
+ config.applyEnvVarsTo(this);
157
+ return this;
158
+ }
159
+ getCloudWatchMetricsConfig() { return this.cloudWatchMetricsConfig; }
160
+ withCodeBuildConfig(config) {
161
+ this.codeBuildConfig = config;
162
+ config.applyEnvVarsTo(this);
163
+ return this;
164
+ }
165
+ getCodeBuildConfig() { return this.codeBuildConfig; }
166
+ withCodeDeployConfig(config) {
167
+ this.codeDeployConfig = config;
168
+ config.applyEnvVarsTo(this);
169
+ return this;
170
+ }
171
+ getCodeDeployConfig() { return this.codeDeployConfig; }
172
+ withCognitoConfig(config) {
173
+ this.cognitoConfig = config;
174
+ config.applyEnvVarsTo(this);
175
+ return this;
176
+ }
177
+ getCognitoConfig() { return this.cognitoConfig; }
178
+ withDynamoDbConfig(config) {
179
+ this.dynamoDbConfig = config;
180
+ config.applyEnvVarsTo(this);
181
+ return this;
182
+ }
183
+ getDynamoDbConfig() { return this.dynamoDbConfig; }
184
+ withEc2Config(config) {
185
+ this.ec2Config = config;
186
+ config.applyEnvVarsTo(this);
187
+ return this;
188
+ }
189
+ getEc2Config() { return this.ec2Config; }
190
+ withEcrConfig(config) {
191
+ this.ecrConfig = config;
192
+ this.refreshExposedPorts();
193
+ config.applyEnvVarsTo(this);
194
+ return this;
195
+ }
196
+ getEcrConfig() { return this.ecrConfig; }
197
+ withEcsConfig(config) {
198
+ this.ecsConfig = config;
199
+ config.applyEnvVarsTo(this);
200
+ return this;
201
+ }
202
+ getEcsConfig() { return this.ecsConfig; }
203
+ withEksConfig(config) {
204
+ this.eksConfig = config;
205
+ this.refreshExposedPorts();
206
+ config.applyEnvVarsTo(this);
207
+ return this;
208
+ }
209
+ getEksConfig() { return this.eksConfig; }
210
+ withElastiCacheConfig(config) {
211
+ this.elastiCacheConfig = config;
212
+ this.refreshExposedPorts();
213
+ config.applyEnvVarsTo(this);
214
+ return this;
215
+ }
216
+ getElastiCacheConfig() { return this.elastiCacheConfig; }
217
+ withElbV2Config(config) {
218
+ this.elbV2Config = config;
219
+ config.applyEnvVarsTo(this);
220
+ return this;
221
+ }
222
+ getElbV2Config() { return this.elbV2Config; }
223
+ withEventBridgeConfig(config) {
224
+ this.eventBridgeConfig = config;
225
+ config.applyEnvVarsTo(this);
226
+ return this;
227
+ }
228
+ getEventBridgeConfig() { return this.eventBridgeConfig; }
229
+ withFirehoseConfig(config) {
230
+ this.firehoseConfig = config;
231
+ config.applyEnvVarsTo(this);
232
+ return this;
233
+ }
234
+ getFirehoseConfig() { return this.firehoseConfig; }
235
+ withGlueConfig(config) {
236
+ this.glueConfig = config;
237
+ config.applyEnvVarsTo(this);
238
+ return this;
239
+ }
240
+ getGlueConfig() { return this.glueConfig; }
241
+ withIamConfig(config) {
242
+ this.iamConfig = config;
243
+ config.applyEnvVarsTo(this);
244
+ return this;
245
+ }
246
+ getIamConfig() { return this.iamConfig; }
247
+ withKinesisConfig(config) {
248
+ this.kinesisConfig = config;
249
+ config.applyEnvVarsTo(this);
250
+ return this;
251
+ }
252
+ getKinesisConfig() { return this.kinesisConfig; }
253
+ withKmsConfig(config) {
254
+ this.kmsConfig = config;
255
+ config.applyEnvVarsTo(this);
256
+ return this;
257
+ }
258
+ getKmsConfig() { return this.kmsConfig; }
259
+ withLambdaConfig(config) {
260
+ this.lambdaConfig = config;
261
+ this.refreshExposedPorts();
262
+ config.applyEnvVarsTo(this);
263
+ return this;
264
+ }
265
+ getLambdaConfig() { return this.lambdaConfig; }
266
+ withMskConfig(config) {
267
+ this.mskConfig = config;
268
+ config.applyEnvVarsTo(this);
269
+ return this;
270
+ }
271
+ getMskConfig() { return this.mskConfig; }
272
+ withOpenSearchConfig(config) {
273
+ this.openSearchConfig = config;
274
+ this.refreshExposedPorts();
275
+ config.applyEnvVarsTo(this);
276
+ return this;
277
+ }
278
+ getOpenSearchConfig() { return this.openSearchConfig; }
279
+ withPipesConfig(config) {
280
+ this.pipesConfig = config;
281
+ config.applyEnvVarsTo(this);
282
+ return this;
283
+ }
284
+ getPipesConfig() { return this.pipesConfig; }
285
+ withRdsConfig(config) {
286
+ this.rdsConfig = config;
287
+ this.refreshExposedPorts();
288
+ config.applyEnvVarsTo(this);
289
+ return this;
290
+ }
291
+ getRdsConfig() { return this.rdsConfig; }
292
+ withResourceGroupsTaggingConfig(config) {
293
+ this.resourceGroupsTaggingConfig = config;
294
+ config.applyEnvVarsTo(this);
295
+ return this;
296
+ }
297
+ getResourceGroupsTaggingConfig() { return this.resourceGroupsTaggingConfig; }
298
+ withS3Config(config) {
299
+ this.s3Config = config;
300
+ config.applyEnvVarsTo(this);
301
+ return this;
302
+ }
303
+ getS3Config() { return this.s3Config; }
304
+ withSchedulerConfig(config) {
305
+ this.schedulerConfig = config;
306
+ config.applyEnvVarsTo(this);
307
+ return this;
308
+ }
309
+ getSchedulerConfig() { return this.schedulerConfig; }
310
+ withSecretsManagerConfig(config) {
311
+ this.secretsManagerConfig = config;
312
+ config.applyEnvVarsTo(this);
313
+ return this;
314
+ }
315
+ getSecretsManagerConfig() { return this.secretsManagerConfig; }
316
+ withSesConfig(config) {
317
+ this.sesConfig = config;
318
+ config.applyEnvVarsTo(this);
319
+ return this;
320
+ }
321
+ getSesConfig() { return this.sesConfig; }
322
+ withSesV2Config(config) {
323
+ this.sesV2Config = config;
324
+ config.applyEnvVarsTo(this);
325
+ return this;
326
+ }
327
+ getSesV2Config() { return this.sesV2Config; }
328
+ withSnsConfig(config) {
329
+ this.snsConfig = config;
330
+ config.applyEnvVarsTo(this);
331
+ return this;
332
+ }
333
+ getSnsConfig() { return this.snsConfig; }
334
+ withSqsConfig(config) {
335
+ this.sqsConfig = config;
336
+ config.applyEnvVarsTo(this);
337
+ return this;
338
+ }
339
+ getSqsConfig() { return this.sqsConfig; }
340
+ withSsmConfig(config) {
341
+ this.ssmConfig = config;
342
+ config.applyEnvVarsTo(this);
343
+ return this;
344
+ }
345
+ getSsmConfig() { return this.ssmConfig; }
346
+ withStepFunctionsConfig(config) {
347
+ this.stepFunctionsConfig = config;
348
+ config.applyEnvVarsTo(this);
349
+ return this;
350
+ }
351
+ getStepFunctionsConfig() { return this.stepFunctionsConfig; }
352
+ getDedicatedNetworkName() {
353
+ return this.dedicatedNetworkName;
354
+ }
355
+ async start() {
356
+ let network;
357
+ if (this.dedicatedNetworkName) {
358
+ const networkName = this.dedicatedNetworkName;
359
+ network = await new testcontainers_1.Network({ nextUuid: () => networkName }).start();
360
+ }
361
+ let container = new testcontainers_1.GenericContainer(this.image)
362
+ .withExposedPorts(...Array.from(this.exposedPorts))
363
+ .withEnvironment(this.envVars)
364
+ .withBindMounts([{ source: DOCKER_SOCKET, target: DOCKER_SOCKET, mode: 'rw' }])
365
+ .withWaitStrategy(testcontainers_1.Wait.forHttp('/_floci/health', FlociContainer.PORT)
366
+ .forStatusCode(200)
367
+ .withStartupTimeout(FlociContainer.STARTUP_TIMEOUT_MS));
368
+ if (network) {
369
+ container = container.withNetwork(network);
370
+ }
371
+ const started = await container.start();
372
+ return new StartedFlociContainer(started, {
373
+ region: this.envVars['FLOCI_DEFAULT_REGION'] ?? FlociContainer.DEFAULT_REGION,
374
+ availabilityZone: this.envVars['FLOCI_DEFAULT_AVAILABILITY_ZONE'] ?? FlociContainer.DEFAULT_AVAILABILITY_ZONE,
375
+ accountId: this.envVars['FLOCI_DEFAULT_ACCOUNT_ID'] ?? FlociContainer.DEFAULT_ACCOUNT_ID,
376
+ dedicatedNetworkName: this.dedicatedNetworkName,
377
+ network,
378
+ });
379
+ }
380
+ applyAllConfigs() {
381
+ const configs = [
382
+ this.acmConfig, this.apiGatewayConfig, this.apiGatewayV2Config,
383
+ this.appConfigConfig, this.appConfigDataConfig, this.athenaConfig,
384
+ this.bedrockRuntimeConfig, this.cloudFormationConfig, this.cloudWatchLogsConfig,
385
+ this.cloudWatchMetricsConfig, this.codeBuildConfig, this.codeDeployConfig,
386
+ this.cognitoConfig, this.dynamoDbConfig, this.ec2Config, this.ecrConfig,
387
+ this.ecsConfig, this.eksConfig, this.elastiCacheConfig, this.elbV2Config,
388
+ this.eventBridgeConfig, this.firehoseConfig, this.glueConfig, this.iamConfig,
389
+ this.kinesisConfig, this.kmsConfig, this.lambdaConfig, this.mskConfig,
390
+ this.openSearchConfig, this.pipesConfig, this.rdsConfig,
391
+ this.resourceGroupsTaggingConfig, this.s3Config, this.schedulerConfig,
392
+ this.secretsManagerConfig, this.sesConfig, this.sesV2Config, this.snsConfig,
393
+ this.sqsConfig, this.ssmConfig, this.stepFunctionsConfig,
394
+ ];
395
+ for (const config of configs) {
396
+ config.applyEnvVarsTo(this);
397
+ }
398
+ this.refreshExposedPorts();
399
+ }
400
+ refreshExposedPorts() {
401
+ const portConfigs = [
402
+ this.lambdaConfig, this.rdsConfig, this.elastiCacheConfig,
403
+ this.openSearchConfig, this.ecrConfig, this.eksConfig,
404
+ ];
405
+ for (const config of portConfigs) {
406
+ config.applyExposedPortsTo(this);
407
+ }
408
+ }
409
+ }
410
+ exports.FlociContainer = FlociContainer;
411
+ FlociContainer.PORT = 4566;
412
+ FlociContainer.DEFAULT_REGION = 'us-east-1';
413
+ FlociContainer.DEFAULT_AVAILABILITY_ZONE = 'us-east-1a';
414
+ FlociContainer.DEFAULT_ACCOUNT_ID = '000000000000';
415
+ FlociContainer.DEFAULT_ACCESS_KEY = 'test';
416
+ FlociContainer.DEFAULT_SECRET_KEY = 'test';
417
+ FlociContainer.STARTUP_TIMEOUT_MS = 30000;
418
+ class StartedFlociContainer {
419
+ constructor(container, opts) {
420
+ this.container = container;
421
+ this.region = opts.region;
422
+ this.availabilityZone = opts.availabilityZone;
423
+ this.accountId = opts.accountId;
424
+ this._dedicatedNetworkName = opts.dedicatedNetworkName;
425
+ this.network = opts.network;
426
+ }
427
+ getEndpoint() {
428
+ return `http://${this.container.getHost()}:${this.container.getMappedPort(FlociContainer.PORT)}`;
429
+ }
430
+ getRegion() { return this.region; }
431
+ getAccessKey() { return FlociContainer.DEFAULT_ACCESS_KEY; }
432
+ getSecretKey() { return FlociContainer.DEFAULT_SECRET_KEY; }
433
+ getAccountId() { return this.accountId; }
434
+ getAvailabilityZone() { return this.availabilityZone; }
435
+ getDedicatedNetworkName() { return this._dedicatedNetworkName; }
436
+ getMappedPort(port) {
437
+ return this.container.getMappedPort(port);
438
+ }
439
+ async stop() {
440
+ await this.container.stop();
441
+ if (this.network) {
442
+ await this.network.stop();
443
+ }
444
+ }
445
+ }
446
+ exports.StartedFlociContainer = StartedFlociContainer;
447
+ //# sourceMappingURL=FlociContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlociContainer.js","sourceRoot":"","sources":["../src/FlociContainer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export type { ServiceConfig, FlociContainerTarget } from './services';
2
+ export { AcmConfig, ApiGatewayConfig, ApiGatewayV2Config, AppConfigConfig, AppConfigDataConfig, AthenaConfig, BedrockRuntimeConfig, CloudFormationConfig, CloudWatchLogsConfig, CloudWatchMetricsConfig, CodeBuildConfig, CodeDeployConfig, CognitoConfig, DynamoDbConfig, Ec2Config, EcrConfig, EcsConfig, EksConfig, ElastiCacheConfig, ElbV2Config, EventBridgeConfig, FirehoseConfig, GlueConfig, IamConfig, KinesisConfig, KmsConfig, LambdaConfig, MskConfig, OpenSearchConfig, PipesConfig, RdsConfig, ResourceGroupsTaggingConfig, S3Config, SchedulerConfig, SecretsManagerConfig, SesConfig, SesV2Config, SnsConfig, SqsConfig, SsmConfig, StepFunctionsConfig, } from './services';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,SAAS,EACT,aAAa,EACb,SAAS,EACT,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,2BAA2B,EAC3B,QAAQ,EACR,eAAe,EACf,oBAAoB,EACpB,SAAS,EACT,WAAW,EACX,SAAS,EACT,SAAS,EACT,SAAS,EACT,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StepFunctionsConfig = exports.SsmConfig = exports.SqsConfig = exports.SnsConfig = exports.SesV2Config = exports.SesConfig = exports.SecretsManagerConfig = exports.SchedulerConfig = exports.S3Config = exports.ResourceGroupsTaggingConfig = exports.RdsConfig = exports.PipesConfig = exports.OpenSearchConfig = exports.MskConfig = exports.LambdaConfig = exports.KmsConfig = exports.KinesisConfig = exports.IamConfig = exports.GlueConfig = exports.FirehoseConfig = exports.EventBridgeConfig = exports.ElbV2Config = exports.ElastiCacheConfig = exports.EksConfig = exports.EcsConfig = exports.EcrConfig = exports.Ec2Config = exports.DynamoDbConfig = exports.CognitoConfig = exports.CodeDeployConfig = exports.CodeBuildConfig = exports.CloudWatchMetricsConfig = exports.CloudWatchLogsConfig = exports.CloudFormationConfig = exports.BedrockRuntimeConfig = exports.AthenaConfig = exports.AppConfigDataConfig = exports.AppConfigConfig = exports.ApiGatewayV2Config = exports.ApiGatewayConfig = exports.AcmConfig = void 0;
4
+ var services_1 = require("./services");
5
+ Object.defineProperty(exports, "AcmConfig", { enumerable: true, get: function () { return services_1.AcmConfig; } });
6
+ Object.defineProperty(exports, "ApiGatewayConfig", { enumerable: true, get: function () { return services_1.ApiGatewayConfig; } });
7
+ Object.defineProperty(exports, "ApiGatewayV2Config", { enumerable: true, get: function () { return services_1.ApiGatewayV2Config; } });
8
+ Object.defineProperty(exports, "AppConfigConfig", { enumerable: true, get: function () { return services_1.AppConfigConfig; } });
9
+ Object.defineProperty(exports, "AppConfigDataConfig", { enumerable: true, get: function () { return services_1.AppConfigDataConfig; } });
10
+ Object.defineProperty(exports, "AthenaConfig", { enumerable: true, get: function () { return services_1.AthenaConfig; } });
11
+ Object.defineProperty(exports, "BedrockRuntimeConfig", { enumerable: true, get: function () { return services_1.BedrockRuntimeConfig; } });
12
+ Object.defineProperty(exports, "CloudFormationConfig", { enumerable: true, get: function () { return services_1.CloudFormationConfig; } });
13
+ Object.defineProperty(exports, "CloudWatchLogsConfig", { enumerable: true, get: function () { return services_1.CloudWatchLogsConfig; } });
14
+ Object.defineProperty(exports, "CloudWatchMetricsConfig", { enumerable: true, get: function () { return services_1.CloudWatchMetricsConfig; } });
15
+ Object.defineProperty(exports, "CodeBuildConfig", { enumerable: true, get: function () { return services_1.CodeBuildConfig; } });
16
+ Object.defineProperty(exports, "CodeDeployConfig", { enumerable: true, get: function () { return services_1.CodeDeployConfig; } });
17
+ Object.defineProperty(exports, "CognitoConfig", { enumerable: true, get: function () { return services_1.CognitoConfig; } });
18
+ Object.defineProperty(exports, "DynamoDbConfig", { enumerable: true, get: function () { return services_1.DynamoDbConfig; } });
19
+ Object.defineProperty(exports, "Ec2Config", { enumerable: true, get: function () { return services_1.Ec2Config; } });
20
+ Object.defineProperty(exports, "EcrConfig", { enumerable: true, get: function () { return services_1.EcrConfig; } });
21
+ Object.defineProperty(exports, "EcsConfig", { enumerable: true, get: function () { return services_1.EcsConfig; } });
22
+ Object.defineProperty(exports, "EksConfig", { enumerable: true, get: function () { return services_1.EksConfig; } });
23
+ Object.defineProperty(exports, "ElastiCacheConfig", { enumerable: true, get: function () { return services_1.ElastiCacheConfig; } });
24
+ Object.defineProperty(exports, "ElbV2Config", { enumerable: true, get: function () { return services_1.ElbV2Config; } });
25
+ Object.defineProperty(exports, "EventBridgeConfig", { enumerable: true, get: function () { return services_1.EventBridgeConfig; } });
26
+ Object.defineProperty(exports, "FirehoseConfig", { enumerable: true, get: function () { return services_1.FirehoseConfig; } });
27
+ Object.defineProperty(exports, "GlueConfig", { enumerable: true, get: function () { return services_1.GlueConfig; } });
28
+ Object.defineProperty(exports, "IamConfig", { enumerable: true, get: function () { return services_1.IamConfig; } });
29
+ Object.defineProperty(exports, "KinesisConfig", { enumerable: true, get: function () { return services_1.KinesisConfig; } });
30
+ Object.defineProperty(exports, "KmsConfig", { enumerable: true, get: function () { return services_1.KmsConfig; } });
31
+ Object.defineProperty(exports, "LambdaConfig", { enumerable: true, get: function () { return services_1.LambdaConfig; } });
32
+ Object.defineProperty(exports, "MskConfig", { enumerable: true, get: function () { return services_1.MskConfig; } });
33
+ Object.defineProperty(exports, "OpenSearchConfig", { enumerable: true, get: function () { return services_1.OpenSearchConfig; } });
34
+ Object.defineProperty(exports, "PipesConfig", { enumerable: true, get: function () { return services_1.PipesConfig; } });
35
+ Object.defineProperty(exports, "RdsConfig", { enumerable: true, get: function () { return services_1.RdsConfig; } });
36
+ Object.defineProperty(exports, "ResourceGroupsTaggingConfig", { enumerable: true, get: function () { return services_1.ResourceGroupsTaggingConfig; } });
37
+ Object.defineProperty(exports, "S3Config", { enumerable: true, get: function () { return services_1.S3Config; } });
38
+ Object.defineProperty(exports, "SchedulerConfig", { enumerable: true, get: function () { return services_1.SchedulerConfig; } });
39
+ Object.defineProperty(exports, "SecretsManagerConfig", { enumerable: true, get: function () { return services_1.SecretsManagerConfig; } });
40
+ Object.defineProperty(exports, "SesConfig", { enumerable: true, get: function () { return services_1.SesConfig; } });
41
+ Object.defineProperty(exports, "SesV2Config", { enumerable: true, get: function () { return services_1.SesV2Config; } });
42
+ Object.defineProperty(exports, "SnsConfig", { enumerable: true, get: function () { return services_1.SnsConfig; } });
43
+ Object.defineProperty(exports, "SqsConfig", { enumerable: true, get: function () { return services_1.SqsConfig; } });
44
+ Object.defineProperty(exports, "SsmConfig", { enumerable: true, get: function () { return services_1.SsmConfig; } });
45
+ Object.defineProperty(exports, "StepFunctionsConfig", { enumerable: true, get: function () { return services_1.StepFunctionsConfig; } });
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";;;AACA,uCA0CoB;AAzClB,qGAAA,SAAS,OAAA;AACT,4GAAA,gBAAgB,OAAA;AAChB,8GAAA,kBAAkB,OAAA;AAClB,2GAAA,eAAe,OAAA;AACf,+GAAA,mBAAmB,OAAA;AACnB,wGAAA,YAAY,OAAA;AACZ,gHAAA,oBAAoB,OAAA;AACpB,gHAAA,oBAAoB,OAAA;AACpB,gHAAA,oBAAoB,OAAA;AACpB,mHAAA,uBAAuB,OAAA;AACvB,2GAAA,eAAe,OAAA;AACf,4GAAA,gBAAgB,OAAA;AAChB,yGAAA,aAAa,OAAA;AACb,0GAAA,cAAc,OAAA;AACd,qGAAA,SAAS,OAAA;AACT,qGAAA,SAAS,OAAA;AACT,qGAAA,SAAS,OAAA;AACT,qGAAA,SAAS,OAAA;AACT,6GAAA,iBAAiB,OAAA;AACjB,uGAAA,WAAW,OAAA;AACX,6GAAA,iBAAiB,OAAA;AACjB,0GAAA,cAAc,OAAA;AACd,sGAAA,UAAU,OAAA;AACV,qGAAA,SAAS,OAAA;AACT,yGAAA,aAAa,OAAA;AACb,qGAAA,SAAS,OAAA;AACT,wGAAA,YAAY,OAAA;AACZ,qGAAA,SAAS,OAAA;AACT,4GAAA,gBAAgB,OAAA;AAChB,uGAAA,WAAW,OAAA;AACX,qGAAA,SAAS,OAAA;AACT,uHAAA,2BAA2B,OAAA;AAC3B,oGAAA,QAAQ,OAAA;AACR,2GAAA,eAAe,OAAA;AACf,gHAAA,oBAAoB,OAAA;AACpB,qGAAA,SAAS,OAAA;AACT,uGAAA,WAAW,OAAA;AACX,qGAAA,SAAS,OAAA;AACT,qGAAA,SAAS,OAAA;AACT,qGAAA,SAAS,OAAA;AACT,+GAAA,mBAAmB,OAAA"}