@ts-cloud/core 0.2.3 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/advanced-features.test.d.ts +1 -0
- package/dist/aws/cloudformation.d.ts +136 -0
- package/dist/aws/cloudfront.d.ts +45 -0
- package/dist/aws/credentials.d.ts +77 -0
- package/dist/aws/credentials.test.d.ts +4 -0
- package/dist/aws/index.d.ts +10 -0
- package/dist/aws/s3.d.ts +256 -0
- package/dist/aws/s3.test.d.ts +4 -0
- package/dist/aws/signature.d.ts +142 -0
- package/dist/aws/signature.test.d.ts +4 -0
- package/dist/backup/disaster-recovery.d.ts +140 -0
- package/dist/backup/disaster-recovery.test.d.ts +1 -0
- package/dist/backup/index.d.ts +8 -0
- package/dist/backup/manager.d.ts +172 -0
- package/dist/backup/manager.test.d.ts +1 -0
- package/dist/cicd/circleci.d.ts +50 -0
- package/dist/cicd/github-actions.d.ts +62 -0
- package/dist/cicd/gitlab-ci.d.ts +50 -0
- package/dist/cicd/index.d.ts +7 -0
- package/dist/cli/history.d.ts +137 -0
- package/dist/cli/index.d.ts +9 -0
- package/dist/cli/progress.d.ts +193 -0
- package/dist/cli/repl.d.ts +148 -0
- package/dist/cli/suggestions.d.ts +74 -0
- package/dist/cli/table.d.ts +73 -0
- package/dist/cli/table.test.d.ts +1 -0
- package/dist/cloudformation/builder.d.ts +93 -0
- package/dist/cloudformation/builder.test.d.ts +4 -0
- package/dist/cloudformation/builders/api-gateway.d.ts +30 -0
- package/dist/cloudformation/builders/cache.d.ts +35 -0
- package/dist/cloudformation/builders/cdn.d.ts +34 -0
- package/dist/cloudformation/builders/compute.d.ts +68 -0
- package/dist/cloudformation/builders/database.d.ts +61 -0
- package/dist/cloudformation/builders/functions.d.ts +32 -0
- package/dist/cloudformation/builders/messaging.d.ts +17 -0
- package/dist/cloudformation/builders/monitoring.d.ts +39 -0
- package/dist/cloudformation/builders/network.d.ts +14 -0
- package/dist/cloudformation/builders/queue.d.ts +16 -0
- package/dist/cloudformation/builders/security.d.ts +31 -0
- package/dist/cloudformation/builders/storage.d.ts +36 -0
- package/dist/cloudformation/index.d.ts +10 -0
- package/dist/cloudformation/types.d.ts +200 -0
- package/dist/compliance/aws-config.d.ts +175 -0
- package/dist/compliance/cloudtrail.d.ts +132 -0
- package/dist/compliance/compliance.test.d.ts +1 -0
- package/dist/compliance/guardduty.d.ts +176 -0
- package/dist/compliance/index.d.ts +12 -0
- package/dist/compliance/security-hub.d.ts +178 -0
- package/dist/containers/build-optimization.d.ts +155 -0
- package/dist/containers/containers.test.d.ts +1 -0
- package/dist/containers/image-scanning.d.ts +144 -0
- package/dist/containers/index.d.ts +8 -0
- package/dist/containers/registry.d.ts +129 -0
- package/dist/containers/service-mesh.d.ts +254 -0
- package/dist/database/database.test.d.ts +1 -0
- package/dist/database/index.d.ts +8 -0
- package/dist/database/migrations.d.ts +153 -0
- package/dist/database/performance.d.ts +219 -0
- package/dist/database/replicas.d.ts +218 -0
- package/dist/database/users.d.ts +165 -0
- package/dist/dependency-graph.d.ts +37 -0
- package/dist/deployment/ab-testing.d.ts +165 -0
- package/dist/deployment/blue-green.d.ts +140 -0
- package/dist/deployment/canary.d.ts +165 -0
- package/dist/deployment/deployment.test.d.ts +1 -0
- package/dist/deployment/index.d.ts +12 -0
- package/dist/deployment/progressive.d.ts +50 -0
- package/dist/dns/dns.test.d.ts +1 -0
- package/dist/dns/dnssec.d.ts +120 -0
- package/dist/dns/index.d.ts +7 -0
- package/dist/dns/resolver.d.ts +216 -0
- package/dist/dns/routing.d.ts +277 -0
- package/dist/email/advanced/analytics.d.ts +107 -0
- package/dist/email/advanced/index.d.ts +10 -0
- package/dist/email/advanced/rules.d.ts +131 -0
- package/dist/email/advanced/scheduling.d.ts +81 -0
- package/dist/email/advanced/search.d.ts +91 -0
- package/dist/email/advanced/shared-mailboxes.d.ts +109 -0
- package/dist/email/advanced/templates.d.ts +95 -0
- package/dist/email/advanced/threading.d.ts +65 -0
- package/dist/email/analytics.d.ts +189 -0
- package/dist/email/bounce-handling.d.ts +171 -0
- package/dist/email/email.test.d.ts +1 -0
- package/dist/email/handlers/__tests__/inbound.test.d.ts +1 -0
- package/dist/email/handlers/__tests__/outbound.test.d.ts +1 -0
- package/dist/email/handlers/converter.d.ts +11 -0
- package/dist/email/handlers/feedback.d.ts +11 -0
- package/dist/email/handlers/inbound.d.ts +13 -0
- package/dist/email/handlers/outbound.d.ts +13 -0
- package/dist/email/index.d.ts +10 -0
- package/dist/email/reputation.d.ts +133 -0
- package/dist/email/templates.d.ts +124 -0
- package/dist/errors/index.d.ts +177 -0
- package/dist/errors/index.test.d.ts +4 -0
- package/dist/health-checks/index.d.ts +35 -0
- package/dist/index.d.ts +15 -256
- package/dist/index.js +228 -80
- package/dist/intrinsic-functions.d.ts +77 -0
- package/dist/lambda/concurrency.d.ts +146 -0
- package/dist/lambda/destinations.d.ts +141 -0
- package/dist/lambda/dlq.d.ts +160 -0
- package/dist/lambda/index.d.ts +10 -0
- package/dist/lambda/lambda.test.d.ts +1 -0
- package/dist/lambda/layers.d.ts +117 -0
- package/dist/lambda/versions.d.ts +145 -0
- package/dist/lambda/vpc.d.ts +164 -0
- package/dist/local/config.d.ts +44 -0
- package/dist/local/index.d.ts +5 -0
- package/dist/local/mock-aws.d.ts +69 -0
- package/dist/modules/ai.d.ts +108 -0
- package/dist/modules/api.d.ts +157 -0
- package/dist/modules/auth.d.ts +262 -0
- package/dist/modules/cache.d.ts +108 -0
- package/dist/modules/cdn.d.ts +305 -0
- package/dist/modules/communication.d.ts +117 -0
- package/dist/modules/compute.d.ts +1376 -0
- package/dist/modules/database.d.ts +144 -0
- package/dist/modules/deployment.d.ts +372 -0
- package/dist/modules/dns.d.ts +143 -0
- package/dist/modules/email.d.ts +314 -0
- package/dist/modules/filesystem.d.ts +132 -0
- package/dist/modules/index.d.ts +31 -0
- package/dist/modules/messaging.d.ts +210 -0
- package/dist/modules/monitoring.d.ts +574 -0
- package/dist/modules/network.d.ts +148 -0
- package/dist/modules/parameter-store.d.ts +143 -0
- package/dist/modules/permissions.d.ts +245 -0
- package/dist/modules/phone.d.ts +125 -0
- package/dist/modules/queue.d.ts +411 -0
- package/dist/modules/redirects.d.ts +140 -0
- package/dist/modules/registry.d.ts +189 -0
- package/dist/modules/search.d.ts +135 -0
- package/dist/modules/secrets.d.ts +149 -0
- package/dist/modules/security.d.ts +219 -0
- package/dist/modules/sms.d.ts +130 -0
- package/dist/modules/storage.d.ts +344 -0
- package/dist/modules/workflow.d.ts +288 -0
- package/dist/multi-account/config.d.ts +166 -0
- package/dist/multi-account/index.d.ts +6 -0
- package/dist/multi-account/manager.d.ts +181 -0
- package/dist/multi-region/cross-region.d.ts +204 -0
- package/dist/multi-region/index.d.ts +7 -0
- package/dist/multi-region/manager.d.ts +136 -0
- package/dist/multi-region/regions.d.ts +98 -0
- package/dist/network-security/index.d.ts +55 -0
- package/dist/observability/index.d.ts +8 -0
- package/dist/observability/logs.d.ts +213 -0
- package/dist/observability/metrics.d.ts +187 -0
- package/dist/observability/observability.test.d.ts +1 -0
- package/dist/observability/synthetics.d.ts +189 -0
- package/dist/observability/xray.d.ts +193 -0
- package/dist/phone/advanced/analytics.d.ts +83 -0
- package/dist/phone/advanced/callbacks.d.ts +67 -0
- package/dist/phone/advanced/index.d.ts +7 -0
- package/dist/phone/advanced/ivr-builder.d.ts +130 -0
- package/dist/phone/advanced/recording.d.ts +62 -0
- package/dist/phone/handlers/__tests__/incoming-call.test.d.ts +1 -0
- package/dist/phone/handlers/incoming-call.d.ts +10 -0
- package/dist/phone/handlers/missed-call.d.ts +9 -0
- package/dist/phone/handlers/voicemail.d.ts +10 -0
- package/dist/phone/index.d.ts +5 -0
- package/dist/presets/api-backend.d.ts +11 -0
- package/dist/presets/data-pipeline.d.ts +11 -0
- package/dist/presets/extend.d.ts +194 -0
- package/dist/presets/extend.test.d.ts +4 -0
- package/dist/presets/fullstack-app.d.ts +12 -0
- package/dist/presets/index.d.ts +13 -0
- package/dist/presets/jamstack.d.ts +12 -0
- package/dist/presets/microservices.d.ts +18 -0
- package/dist/presets/ml-api.d.ts +13 -0
- package/dist/presets/nodejs-server.d.ts +14 -0
- package/dist/presets/nodejs-serverless.d.ts +14 -0
- package/dist/presets/realtime-app.d.ts +11 -0
- package/dist/presets/static-site.d.ts +12 -0
- package/dist/presets/traditional-web-app.d.ts +16 -0
- package/dist/presets/wordpress.d.ts +12 -0
- package/dist/preview/github.d.ts +32 -0
- package/dist/preview/github.test.d.ts +1 -0
- package/dist/preview/index.d.ts +10 -0
- package/dist/preview/manager.d.ts +101 -0
- package/dist/preview/manager.test.d.ts +1 -0
- package/dist/preview/notifications.d.ts +89 -0
- package/dist/preview/notifications.test.d.ts +1 -0
- package/dist/queue/batch-processing.d.ts +138 -0
- package/dist/queue/dlq-monitoring.d.ts +143 -0
- package/dist/queue/fifo.d.ts +131 -0
- package/dist/queue/index.d.ts +8 -0
- package/dist/queue/management.d.ts +162 -0
- package/dist/queue/queue.test.d.ts +1 -0
- package/dist/resource-mgmt/index.d.ts +44 -0
- package/dist/resource-naming.d.ts +26 -0
- package/dist/s3/index.d.ts +227 -0
- package/dist/schema/index.d.ts +12 -0
- package/dist/security/certificate-manager.d.ts +184 -0
- package/dist/security/index.d.ts +8 -0
- package/dist/security/scanning.d.ts +196 -0
- package/dist/security/secrets-manager.d.ts +204 -0
- package/dist/security/secrets-rotation.d.ts +167 -0
- package/dist/security/security.test.d.ts +1 -0
- package/dist/sms/advanced/ab-testing.d.ts +74 -0
- package/dist/sms/advanced/analytics.d.ts +75 -0
- package/dist/sms/advanced/campaigns.d.ts +96 -0
- package/dist/sms/advanced/chatbot.d.ts +67 -0
- package/dist/sms/advanced/index.d.ts +9 -0
- package/dist/sms/advanced/link-tracking.d.ts +60 -0
- package/dist/sms/advanced/mms.d.ts +60 -0
- package/dist/sms/handlers/__tests__/send.test.d.ts +1 -0
- package/dist/sms/handlers/delivery-status.d.ts +10 -0
- package/dist/sms/handlers/receive.d.ts +10 -0
- package/dist/sms/handlers/send.d.ts +10 -0
- package/dist/sms/index.d.ts +5 -0
- package/dist/stack-diff.d.ts +38 -0
- package/dist/static-site/index.d.ts +49 -0
- package/dist/template-builder.d.ts +42 -0
- package/dist/template-validator.d.ts +28 -0
- package/dist/types.d.ts +2514 -0
- package/dist/utils/cache.d.ts +117 -0
- package/dist/utils/diff.d.ts +52 -0
- package/dist/utils/hash.d.ts +73 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/parallel.d.ts +78 -0
- package/dist/validators/credentials.d.ts +30 -0
- package/dist/validators/credentials.test.d.ts +4 -0
- package/dist/validators/quotas.d.ts +64 -0
- package/dist/validators/quotas.test.d.ts +4 -0
- package/package.json +2 -2
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQS Batch Processing
|
|
3
|
+
* Batch operations, parallel processing, and throughput optimization
|
|
4
|
+
*/
|
|
5
|
+
export interface BatchConfig {
|
|
6
|
+
id: string;
|
|
7
|
+
queueUrl: string;
|
|
8
|
+
batchSize: number;
|
|
9
|
+
maxWaitTime: number;
|
|
10
|
+
parallelProcessors: number;
|
|
11
|
+
retryAttempts: number;
|
|
12
|
+
visibilityTimeout: number;
|
|
13
|
+
}
|
|
14
|
+
export interface BatchJob {
|
|
15
|
+
id: string;
|
|
16
|
+
configId: string;
|
|
17
|
+
messages: BatchMessage[];
|
|
18
|
+
status: 'pending' | 'processing' | 'completed' | 'failed';
|
|
19
|
+
startedAt?: Date;
|
|
20
|
+
completedAt?: Date;
|
|
21
|
+
processedCount: number;
|
|
22
|
+
failedCount: number;
|
|
23
|
+
}
|
|
24
|
+
export interface BatchMessage {
|
|
25
|
+
id: string;
|
|
26
|
+
messageId: string;
|
|
27
|
+
body: string;
|
|
28
|
+
receiptHandle: string;
|
|
29
|
+
attributes: Record<string, any>;
|
|
30
|
+
status: 'pending' | 'processing' | 'success' | 'failed';
|
|
31
|
+
processingTime?: number;
|
|
32
|
+
error?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface ProcessorMetrics {
|
|
35
|
+
id: string;
|
|
36
|
+
configId: string;
|
|
37
|
+
timestamp: Date;
|
|
38
|
+
messagesProcessed: number;
|
|
39
|
+
averageProcessingTime: number;
|
|
40
|
+
throughput: number;
|
|
41
|
+
errorRate: number;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Batch processing manager
|
|
45
|
+
*/
|
|
46
|
+
export declare class BatchProcessingManager {
|
|
47
|
+
private configs;
|
|
48
|
+
private jobs;
|
|
49
|
+
private metrics;
|
|
50
|
+
private configCounter;
|
|
51
|
+
private jobCounter;
|
|
52
|
+
private metricsCounter;
|
|
53
|
+
/**
|
|
54
|
+
* Create batch config
|
|
55
|
+
*/
|
|
56
|
+
createBatchConfig(config: Omit<BatchConfig, 'id'>): BatchConfig;
|
|
57
|
+
/**
|
|
58
|
+
* Create high-throughput batch config
|
|
59
|
+
*/
|
|
60
|
+
createHighThroughputConfig(options: {
|
|
61
|
+
queueUrl: string;
|
|
62
|
+
}): BatchConfig;
|
|
63
|
+
/**
|
|
64
|
+
* Create low-latency batch config
|
|
65
|
+
*/
|
|
66
|
+
createLowLatencyConfig(options: {
|
|
67
|
+
queueUrl: string;
|
|
68
|
+
}): BatchConfig;
|
|
69
|
+
/**
|
|
70
|
+
* Create batch job
|
|
71
|
+
*/
|
|
72
|
+
createBatchJob(options: {
|
|
73
|
+
configId: string;
|
|
74
|
+
messageCount: number;
|
|
75
|
+
}): BatchJob;
|
|
76
|
+
/**
|
|
77
|
+
* Process batch job
|
|
78
|
+
*/
|
|
79
|
+
processBatchJob(jobId: string): Promise<BatchJob>;
|
|
80
|
+
/**
|
|
81
|
+
* Process single batch
|
|
82
|
+
*/
|
|
83
|
+
private processBatch;
|
|
84
|
+
/**
|
|
85
|
+
* Process single message
|
|
86
|
+
*/
|
|
87
|
+
private processMessage;
|
|
88
|
+
/**
|
|
89
|
+
* Chunk array into batches
|
|
90
|
+
*/
|
|
91
|
+
private chunkArray;
|
|
92
|
+
/**
|
|
93
|
+
* Collect processor metrics
|
|
94
|
+
*/
|
|
95
|
+
private collectProcessorMetrics;
|
|
96
|
+
/**
|
|
97
|
+
* Get batch statistics
|
|
98
|
+
*/
|
|
99
|
+
getBatchStatistics(configId: string): {
|
|
100
|
+
totalJobsProcessed: number;
|
|
101
|
+
totalMessagesProcessed: number;
|
|
102
|
+
averageThroughput: number;
|
|
103
|
+
averageErrorRate: number;
|
|
104
|
+
averageProcessingTime: number;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Optimize batch config
|
|
108
|
+
*/
|
|
109
|
+
optimizeBatchConfig(configId: string): BatchConfig;
|
|
110
|
+
/**
|
|
111
|
+
* Get config
|
|
112
|
+
*/
|
|
113
|
+
getConfig(id: string): BatchConfig | undefined;
|
|
114
|
+
/**
|
|
115
|
+
* List configs
|
|
116
|
+
*/
|
|
117
|
+
listConfigs(): BatchConfig[];
|
|
118
|
+
/**
|
|
119
|
+
* Get job
|
|
120
|
+
*/
|
|
121
|
+
getJob(id: string): BatchJob | undefined;
|
|
122
|
+
/**
|
|
123
|
+
* List jobs
|
|
124
|
+
*/
|
|
125
|
+
listJobs(configId?: string): BatchJob[];
|
|
126
|
+
/**
|
|
127
|
+
* Generate CloudFormation for Lambda batch processor
|
|
128
|
+
*/
|
|
129
|
+
generateBatchProcessorCF(config: BatchConfig): any;
|
|
130
|
+
/**
|
|
131
|
+
* Clear all data
|
|
132
|
+
*/
|
|
133
|
+
clear(): void;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Global batch processing manager instance
|
|
137
|
+
*/
|
|
138
|
+
export declare const batchProcessingManager: BatchProcessingManager;
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQS Dead Letter Queue Monitoring
|
|
3
|
+
* DLQ monitoring, alerts, and automated reprocessing
|
|
4
|
+
*/
|
|
5
|
+
export interface DLQMonitor {
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
queueUrl: string;
|
|
9
|
+
sourceQueues: string[];
|
|
10
|
+
maxReceiveCount: number;
|
|
11
|
+
alarmThreshold: number;
|
|
12
|
+
autoReprocess: boolean;
|
|
13
|
+
reprocessStrategy: 'immediate' | 'scheduled' | 'manual';
|
|
14
|
+
notificationTopicArn?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface DLQMetrics {
|
|
17
|
+
id: string;
|
|
18
|
+
queueUrl: string;
|
|
19
|
+
timestamp: Date;
|
|
20
|
+
approximateNumberOfMessages: number;
|
|
21
|
+
approximateAgeOfOldestMessage: number;
|
|
22
|
+
messagesReceived: number;
|
|
23
|
+
messagesDeleted: number;
|
|
24
|
+
messagesReprocessed: number;
|
|
25
|
+
}
|
|
26
|
+
export interface DLQAlert {
|
|
27
|
+
id: string;
|
|
28
|
+
monitorId: string;
|
|
29
|
+
alertType: 'threshold_exceeded' | 'old_message' | 'high_receive_count';
|
|
30
|
+
severity: 'low' | 'medium' | 'high' | 'critical';
|
|
31
|
+
message: string;
|
|
32
|
+
timestamp: Date;
|
|
33
|
+
acknowledged: boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface ReprocessJob {
|
|
36
|
+
id: string;
|
|
37
|
+
queueUrl: string;
|
|
38
|
+
messageId: string;
|
|
39
|
+
attempts: number;
|
|
40
|
+
status: 'pending' | 'processing' | 'success' | 'failed';
|
|
41
|
+
startedAt?: Date;
|
|
42
|
+
completedAt?: Date;
|
|
43
|
+
error?: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* DLQ monitoring manager
|
|
47
|
+
*/
|
|
48
|
+
export declare class DLQMonitoringManager {
|
|
49
|
+
private monitors;
|
|
50
|
+
private metrics;
|
|
51
|
+
private alerts;
|
|
52
|
+
private reprocessJobs;
|
|
53
|
+
private monitorCounter;
|
|
54
|
+
private metricsCounter;
|
|
55
|
+
private alertCounter;
|
|
56
|
+
private jobCounter;
|
|
57
|
+
/**
|
|
58
|
+
* Create DLQ monitor
|
|
59
|
+
*/
|
|
60
|
+
createDLQMonitor(monitor: Omit<DLQMonitor, 'id'>): DLQMonitor;
|
|
61
|
+
/**
|
|
62
|
+
* Create automated DLQ monitor
|
|
63
|
+
*/
|
|
64
|
+
createAutomatedMonitor(options: {
|
|
65
|
+
name: string;
|
|
66
|
+
queueUrl: string;
|
|
67
|
+
sourceQueues: string[];
|
|
68
|
+
notificationTopicArn: string;
|
|
69
|
+
}): DLQMonitor;
|
|
70
|
+
/**
|
|
71
|
+
* Collect DLQ metrics
|
|
72
|
+
*/
|
|
73
|
+
collectMetrics(queueUrl: string): DLQMetrics;
|
|
74
|
+
/**
|
|
75
|
+
* Check for alerts
|
|
76
|
+
*/
|
|
77
|
+
private checkForAlerts;
|
|
78
|
+
/**
|
|
79
|
+
* Create alert
|
|
80
|
+
*/
|
|
81
|
+
private createAlert;
|
|
82
|
+
/**
|
|
83
|
+
* Acknowledge alert
|
|
84
|
+
*/
|
|
85
|
+
acknowledgeAlert(alertId: string): DLQAlert;
|
|
86
|
+
/**
|
|
87
|
+
* Create reprocess job
|
|
88
|
+
*/
|
|
89
|
+
createReprocessJob(options: {
|
|
90
|
+
queueUrl: string;
|
|
91
|
+
messageId: string;
|
|
92
|
+
}): ReprocessJob;
|
|
93
|
+
/**
|
|
94
|
+
* Execute reprocess job
|
|
95
|
+
*/
|
|
96
|
+
executeReprocessJob(jobId: string): Promise<ReprocessJob>;
|
|
97
|
+
/**
|
|
98
|
+
* Batch reprocess DLQ messages
|
|
99
|
+
*/
|
|
100
|
+
batchReprocess(options: {
|
|
101
|
+
queueUrl: string;
|
|
102
|
+
maxMessages: number;
|
|
103
|
+
}): Promise<ReprocessJob[]>;
|
|
104
|
+
/**
|
|
105
|
+
* Get DLQ statistics
|
|
106
|
+
*/
|
|
107
|
+
getDLQStatistics(queueUrl: string, hours?: number): {
|
|
108
|
+
totalMessages: number;
|
|
109
|
+
avgAge: number;
|
|
110
|
+
messagesReceived: number;
|
|
111
|
+
messagesDeleted: number;
|
|
112
|
+
messagesReprocessed: number;
|
|
113
|
+
successRate: number;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Get monitor
|
|
117
|
+
*/
|
|
118
|
+
getMonitor(id: string): DLQMonitor | undefined;
|
|
119
|
+
/**
|
|
120
|
+
* List monitors
|
|
121
|
+
*/
|
|
122
|
+
listMonitors(): DLQMonitor[];
|
|
123
|
+
/**
|
|
124
|
+
* Get alerts
|
|
125
|
+
*/
|
|
126
|
+
getAlerts(monitorId?: string, acknowledged?: boolean): DLQAlert[];
|
|
127
|
+
/**
|
|
128
|
+
* Get reprocess jobs
|
|
129
|
+
*/
|
|
130
|
+
getReprocessJobs(queueUrl?: string): ReprocessJob[];
|
|
131
|
+
/**
|
|
132
|
+
* Generate CloudFormation for DLQ alarm
|
|
133
|
+
*/
|
|
134
|
+
generateDLQAlarmCF(monitor: DLQMonitor): any;
|
|
135
|
+
/**
|
|
136
|
+
* Clear all data
|
|
137
|
+
*/
|
|
138
|
+
clear(): void;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Global DLQ monitoring manager instance
|
|
142
|
+
*/
|
|
143
|
+
export declare const dlqMonitoringManager: DLQMonitoringManager;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQS FIFO Queue Management
|
|
3
|
+
* First-In-First-Out queues with message ordering and deduplication
|
|
4
|
+
*/
|
|
5
|
+
export interface FIFOQueue {
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
queueUrl: string;
|
|
9
|
+
contentBasedDeduplication: boolean;
|
|
10
|
+
deduplicationScope: 'queue' | 'messageGroup';
|
|
11
|
+
fifoThroughputLimit: 'perQueue' | 'perMessageGroupId';
|
|
12
|
+
messageRetentionPeriod: number;
|
|
13
|
+
visibilityTimeout: number;
|
|
14
|
+
receiveMessageWaitTime: number;
|
|
15
|
+
deadLetterTargetArn?: string;
|
|
16
|
+
maxReceiveCount?: number;
|
|
17
|
+
}
|
|
18
|
+
export interface MessageGroup {
|
|
19
|
+
id: string;
|
|
20
|
+
messageGroupId: string;
|
|
21
|
+
queueId: string;
|
|
22
|
+
messagesInFlight: number;
|
|
23
|
+
lastMessageTimestamp?: Date;
|
|
24
|
+
}
|
|
25
|
+
export interface DeduplicationConfig {
|
|
26
|
+
id: string;
|
|
27
|
+
queueId: string;
|
|
28
|
+
deduplicationInterval: number;
|
|
29
|
+
contentBasedDeduplication: boolean;
|
|
30
|
+
deduplicationHashes: Map<string, Date>;
|
|
31
|
+
}
|
|
32
|
+
export interface FIFOMessage {
|
|
33
|
+
id: string;
|
|
34
|
+
messageId: string;
|
|
35
|
+
messageGroupId: string;
|
|
36
|
+
messageDeduplicationId?: string;
|
|
37
|
+
body: string;
|
|
38
|
+
attributes: Record<string, any>;
|
|
39
|
+
sentTimestamp: Date;
|
|
40
|
+
sequenceNumber: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* FIFO queue manager
|
|
44
|
+
*/
|
|
45
|
+
export declare class FIFOQueueManager {
|
|
46
|
+
private queues;
|
|
47
|
+
private messageGroups;
|
|
48
|
+
private deduplicationConfigs;
|
|
49
|
+
private messages;
|
|
50
|
+
private queueCounter;
|
|
51
|
+
private groupCounter;
|
|
52
|
+
private deduplicationCounter;
|
|
53
|
+
private messageCounter;
|
|
54
|
+
private sequenceCounter;
|
|
55
|
+
/**
|
|
56
|
+
* Create FIFO queue
|
|
57
|
+
*/
|
|
58
|
+
createFIFOQueue(queue: Omit<FIFOQueue, 'id' | 'queueUrl'>): FIFOQueue;
|
|
59
|
+
/**
|
|
60
|
+
* Create high-throughput FIFO queue
|
|
61
|
+
*/
|
|
62
|
+
createHighThroughputFIFO(options: {
|
|
63
|
+
name: string;
|
|
64
|
+
contentBasedDeduplication?: boolean;
|
|
65
|
+
}): FIFOQueue;
|
|
66
|
+
/**
|
|
67
|
+
* Create standard FIFO queue
|
|
68
|
+
*/
|
|
69
|
+
createStandardFIFO(options: {
|
|
70
|
+
name: string;
|
|
71
|
+
contentBasedDeduplication?: boolean;
|
|
72
|
+
}): FIFOQueue;
|
|
73
|
+
/**
|
|
74
|
+
* Create deduplication config
|
|
75
|
+
*/
|
|
76
|
+
private createDeduplicationConfig;
|
|
77
|
+
/**
|
|
78
|
+
* Send message to FIFO queue
|
|
79
|
+
*/
|
|
80
|
+
sendMessage(options: {
|
|
81
|
+
queueId: string;
|
|
82
|
+
messageGroupId: string;
|
|
83
|
+
messageBody: string;
|
|
84
|
+
messageDeduplicationId?: string;
|
|
85
|
+
messageAttributes?: Record<string, any>;
|
|
86
|
+
}): FIFOMessage | null;
|
|
87
|
+
/**
|
|
88
|
+
* Check if message is duplicate
|
|
89
|
+
*/
|
|
90
|
+
private isDuplicate;
|
|
91
|
+
/**
|
|
92
|
+
* Generate message hash
|
|
93
|
+
*/
|
|
94
|
+
private generateHash;
|
|
95
|
+
/**
|
|
96
|
+
* Generate sequence number
|
|
97
|
+
*/
|
|
98
|
+
private generateSequenceNumber;
|
|
99
|
+
/**
|
|
100
|
+
* Update message group
|
|
101
|
+
*/
|
|
102
|
+
private updateMessageGroup;
|
|
103
|
+
/**
|
|
104
|
+
* Get message groups for queue
|
|
105
|
+
*/
|
|
106
|
+
getMessageGroups(queueId: string): MessageGroup[];
|
|
107
|
+
/**
|
|
108
|
+
* Get queue
|
|
109
|
+
*/
|
|
110
|
+
getQueue(id: string): FIFOQueue | undefined;
|
|
111
|
+
/**
|
|
112
|
+
* List queues
|
|
113
|
+
*/
|
|
114
|
+
listQueues(): FIFOQueue[];
|
|
115
|
+
/**
|
|
116
|
+
* Get messages
|
|
117
|
+
*/
|
|
118
|
+
getMessages(queueId: string, messageGroupId?: string): FIFOMessage[];
|
|
119
|
+
/**
|
|
120
|
+
* Generate CloudFormation for FIFO queue
|
|
121
|
+
*/
|
|
122
|
+
generateFIFOQueueCF(queue: FIFOQueue): any;
|
|
123
|
+
/**
|
|
124
|
+
* Clear all data
|
|
125
|
+
*/
|
|
126
|
+
clear(): void;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Global FIFO queue manager instance
|
|
130
|
+
*/
|
|
131
|
+
export declare const fifoQueueManager: FIFOQueueManager;
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQS Queue Management
|
|
3
|
+
* Retention policies, delay queues, and queue operations
|
|
4
|
+
*/
|
|
5
|
+
export interface QueueManagement {
|
|
6
|
+
id: string;
|
|
7
|
+
queueUrl: string;
|
|
8
|
+
queueName: string;
|
|
9
|
+
messageRetentionPeriod: number;
|
|
10
|
+
delaySeconds: number;
|
|
11
|
+
maximumMessageSize: number;
|
|
12
|
+
receiveMessageWaitTime: number;
|
|
13
|
+
purgeInProgress: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface RetentionPolicy {
|
|
16
|
+
id: string;
|
|
17
|
+
queueId: string;
|
|
18
|
+
retentionPeriod: number;
|
|
19
|
+
autoCleanup: boolean;
|
|
20
|
+
cleanupSchedule?: string;
|
|
21
|
+
archiveExpiredMessages: boolean;
|
|
22
|
+
archiveS3Bucket?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface DelayQueue {
|
|
25
|
+
id: string;
|
|
26
|
+
queueUrl: string;
|
|
27
|
+
defaultDelay: number;
|
|
28
|
+
perMessageDelay: boolean;
|
|
29
|
+
maxDelay: number;
|
|
30
|
+
}
|
|
31
|
+
export interface PurgeOperation {
|
|
32
|
+
id: string;
|
|
33
|
+
queueUrl: string;
|
|
34
|
+
status: 'pending' | 'in_progress' | 'completed' | 'failed';
|
|
35
|
+
messagesPurged?: number;
|
|
36
|
+
startedAt?: Date;
|
|
37
|
+
completedAt?: Date;
|
|
38
|
+
}
|
|
39
|
+
export interface QueueMetrics {
|
|
40
|
+
id: string;
|
|
41
|
+
queueUrl: string;
|
|
42
|
+
timestamp: Date;
|
|
43
|
+
approximateNumberOfMessages: number;
|
|
44
|
+
approximateNumberOfMessagesNotVisible: number;
|
|
45
|
+
approximateNumberOfMessagesDelayed: number;
|
|
46
|
+
oldestMessageAge?: number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Queue management manager
|
|
50
|
+
*/
|
|
51
|
+
export declare class QueueManagementManager {
|
|
52
|
+
private queues;
|
|
53
|
+
private retentionPolicies;
|
|
54
|
+
private delayQueues;
|
|
55
|
+
private purgeOperations;
|
|
56
|
+
private metrics;
|
|
57
|
+
private queueCounter;
|
|
58
|
+
private retentionCounter;
|
|
59
|
+
private delayCounter;
|
|
60
|
+
private purgeCounter;
|
|
61
|
+
private metricsCounter;
|
|
62
|
+
/**
|
|
63
|
+
* Create queue
|
|
64
|
+
*/
|
|
65
|
+
createQueue(queue: Omit<QueueManagement, 'id' | 'purgeInProgress'>): QueueManagement;
|
|
66
|
+
/**
|
|
67
|
+
* Create standard queue
|
|
68
|
+
*/
|
|
69
|
+
createStandardQueue(options: {
|
|
70
|
+
queueName: string;
|
|
71
|
+
messageRetentionDays?: number;
|
|
72
|
+
}): QueueManagement;
|
|
73
|
+
/**
|
|
74
|
+
* Create long polling queue
|
|
75
|
+
*/
|
|
76
|
+
createLongPollingQueue(options: {
|
|
77
|
+
queueName: string;
|
|
78
|
+
waitTimeSeconds?: number;
|
|
79
|
+
}): QueueManagement;
|
|
80
|
+
/**
|
|
81
|
+
* Create retention policy
|
|
82
|
+
*/
|
|
83
|
+
createRetentionPolicy(policy: Omit<RetentionPolicy, 'id'>): RetentionPolicy;
|
|
84
|
+
/**
|
|
85
|
+
* Create short retention policy
|
|
86
|
+
*/
|
|
87
|
+
createShortRetentionPolicy(options: {
|
|
88
|
+
queueId: string;
|
|
89
|
+
retentionHours: number;
|
|
90
|
+
}): RetentionPolicy;
|
|
91
|
+
/**
|
|
92
|
+
* Create archival retention policy
|
|
93
|
+
*/
|
|
94
|
+
createArchivalRetentionPolicy(options: {
|
|
95
|
+
queueId: string;
|
|
96
|
+
retentionDays: number;
|
|
97
|
+
s3Bucket: string;
|
|
98
|
+
}): RetentionPolicy;
|
|
99
|
+
/**
|
|
100
|
+
* Create delay queue
|
|
101
|
+
*/
|
|
102
|
+
createDelayQueue(delay: Omit<DelayQueue, 'id'>): DelayQueue;
|
|
103
|
+
/**
|
|
104
|
+
* Create scheduled delay queue
|
|
105
|
+
*/
|
|
106
|
+
createScheduledDelayQueue(options: {
|
|
107
|
+
queueUrl: string;
|
|
108
|
+
delayMinutes: number;
|
|
109
|
+
}): DelayQueue;
|
|
110
|
+
/**
|
|
111
|
+
* Purge queue
|
|
112
|
+
*/
|
|
113
|
+
purgeQueue(queueId: string): Promise<PurgeOperation>;
|
|
114
|
+
/**
|
|
115
|
+
* Collect queue metrics
|
|
116
|
+
*/
|
|
117
|
+
collectQueueMetrics(queueUrl: string): QueueMetrics;
|
|
118
|
+
/**
|
|
119
|
+
* Get queue health
|
|
120
|
+
*/
|
|
121
|
+
getQueueHealth(queueUrl: string): {
|
|
122
|
+
status: 'healthy' | 'warning' | 'critical';
|
|
123
|
+
issues: string[];
|
|
124
|
+
recommendations: string[];
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* Get queue
|
|
128
|
+
*/
|
|
129
|
+
getQueue(id: string): QueueManagement | undefined;
|
|
130
|
+
/**
|
|
131
|
+
* List queues
|
|
132
|
+
*/
|
|
133
|
+
listQueues(): QueueManagement[];
|
|
134
|
+
/**
|
|
135
|
+
* Get retention policy
|
|
136
|
+
*/
|
|
137
|
+
getRetentionPolicy(id: string): RetentionPolicy | undefined;
|
|
138
|
+
/**
|
|
139
|
+
* List retention policies
|
|
140
|
+
*/
|
|
141
|
+
listRetentionPolicies(): RetentionPolicy[];
|
|
142
|
+
/**
|
|
143
|
+
* Get purge operations
|
|
144
|
+
*/
|
|
145
|
+
getPurgeOperations(queueUrl?: string): PurgeOperation[];
|
|
146
|
+
/**
|
|
147
|
+
* Generate CloudFormation for queue
|
|
148
|
+
*/
|
|
149
|
+
generateQueueCF(queue: QueueManagement): any;
|
|
150
|
+
/**
|
|
151
|
+
* Generate CloudFormation for EventBridge rule for cleanup
|
|
152
|
+
*/
|
|
153
|
+
generateCleanupRuleCF(policy: RetentionPolicy): any;
|
|
154
|
+
/**
|
|
155
|
+
* Clear all data
|
|
156
|
+
*/
|
|
157
|
+
clear(): void;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Global queue management manager instance
|
|
161
|
+
*/
|
|
162
|
+
export declare const queueManagementManager: QueueManagementManager;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resource Management - Tagging strategies, cost allocation, resource groups
|
|
3
|
+
*/
|
|
4
|
+
export interface TaggingStrategy {
|
|
5
|
+
id: string;
|
|
6
|
+
tags: Record<string, string>;
|
|
7
|
+
resources: string[];
|
|
8
|
+
}
|
|
9
|
+
export interface CostAllocation {
|
|
10
|
+
id: string;
|
|
11
|
+
tagKey: string;
|
|
12
|
+
allocations: Array<{
|
|
13
|
+
tagValue: string;
|
|
14
|
+
cost: number;
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
17
|
+
export interface ResourceGroup {
|
|
18
|
+
id: string;
|
|
19
|
+
name: string;
|
|
20
|
+
query: {
|
|
21
|
+
resourceTypeFilters: string[];
|
|
22
|
+
tagFilters: Array<{
|
|
23
|
+
key: string;
|
|
24
|
+
values: string[];
|
|
25
|
+
}>;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export declare class ResourceManagementManager {
|
|
29
|
+
private strategies;
|
|
30
|
+
private allocations;
|
|
31
|
+
private groups;
|
|
32
|
+
private counter;
|
|
33
|
+
createTaggingStrategy(tags: Record<string, string>, resources: string[]): TaggingStrategy;
|
|
34
|
+
createCostAllocation(tagKey: string, allocations: Array<{
|
|
35
|
+
tagValue: string;
|
|
36
|
+
cost: number;
|
|
37
|
+
}>): CostAllocation;
|
|
38
|
+
createResourceGroup(name: string, resourceTypeFilters: string[], tagFilters: Array<{
|
|
39
|
+
key: string;
|
|
40
|
+
values: string[];
|
|
41
|
+
}>): ResourceGroup;
|
|
42
|
+
clear(): void;
|
|
43
|
+
}
|
|
44
|
+
export declare const resourceManagementManager: ResourceManagementManager;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { EnvironmentType } from './types';
|
|
2
|
+
export interface NamingOptions {
|
|
3
|
+
slug: string;
|
|
4
|
+
environment: EnvironmentType;
|
|
5
|
+
timestamp?: string;
|
|
6
|
+
resourceType: string;
|
|
7
|
+
suffix?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Generate a consistent resource name following the naming convention:
|
|
11
|
+
* {slug}-{environment}-{resourceType}-{timestamp}
|
|
12
|
+
*/
|
|
13
|
+
export declare function generateResourceName(options: NamingOptions): string;
|
|
14
|
+
/**
|
|
15
|
+
* Generate a logical ID for CloudFormation resources
|
|
16
|
+
* Converts to PascalCase and removes hyphens
|
|
17
|
+
*/
|
|
18
|
+
export declare function generateLogicalId(name: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* Get current timestamp for resource naming
|
|
21
|
+
*/
|
|
22
|
+
export declare function getTimestamp(): string;
|
|
23
|
+
/**
|
|
24
|
+
* Sanitize a name to be CloudFormation-compatible
|
|
25
|
+
*/
|
|
26
|
+
export declare function sanitizeName(name: string): string;
|