@ts-cloud/core 0.2.3 → 0.2.5

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 (226) hide show
  1. package/dist/advanced-features.test.d.ts +1 -0
  2. package/dist/aws/cloudformation.d.ts +136 -0
  3. package/dist/aws/cloudfront.d.ts +45 -0
  4. package/dist/aws/credentials.d.ts +77 -0
  5. package/dist/aws/credentials.test.d.ts +4 -0
  6. package/dist/aws/index.d.ts +10 -0
  7. package/dist/aws/s3.d.ts +256 -0
  8. package/dist/aws/s3.test.d.ts +4 -0
  9. package/dist/aws/signature.d.ts +142 -0
  10. package/dist/aws/signature.test.d.ts +4 -0
  11. package/dist/backup/disaster-recovery.d.ts +140 -0
  12. package/dist/backup/disaster-recovery.test.d.ts +1 -0
  13. package/dist/backup/index.d.ts +8 -0
  14. package/dist/backup/manager.d.ts +172 -0
  15. package/dist/backup/manager.test.d.ts +1 -0
  16. package/dist/cicd/circleci.d.ts +50 -0
  17. package/dist/cicd/github-actions.d.ts +62 -0
  18. package/dist/cicd/gitlab-ci.d.ts +50 -0
  19. package/dist/cicd/index.d.ts +7 -0
  20. package/dist/cli/history.d.ts +137 -0
  21. package/dist/cli/index.d.ts +9 -0
  22. package/dist/cli/progress.d.ts +193 -0
  23. package/dist/cli/repl.d.ts +148 -0
  24. package/dist/cli/suggestions.d.ts +74 -0
  25. package/dist/cli/table.d.ts +73 -0
  26. package/dist/cli/table.test.d.ts +1 -0
  27. package/dist/cloudformation/builder.d.ts +93 -0
  28. package/dist/cloudformation/builder.test.d.ts +4 -0
  29. package/dist/cloudformation/builders/api-gateway.d.ts +30 -0
  30. package/dist/cloudformation/builders/cache.d.ts +35 -0
  31. package/dist/cloudformation/builders/cdn.d.ts +34 -0
  32. package/dist/cloudformation/builders/compute.d.ts +68 -0
  33. package/dist/cloudformation/builders/database.d.ts +61 -0
  34. package/dist/cloudformation/builders/functions.d.ts +32 -0
  35. package/dist/cloudformation/builders/messaging.d.ts +17 -0
  36. package/dist/cloudformation/builders/monitoring.d.ts +39 -0
  37. package/dist/cloudformation/builders/network.d.ts +14 -0
  38. package/dist/cloudformation/builders/queue.d.ts +16 -0
  39. package/dist/cloudformation/builders/security.d.ts +31 -0
  40. package/dist/cloudformation/builders/storage.d.ts +36 -0
  41. package/dist/cloudformation/index.d.ts +10 -0
  42. package/dist/cloudformation/types.d.ts +200 -0
  43. package/dist/compliance/aws-config.d.ts +175 -0
  44. package/dist/compliance/cloudtrail.d.ts +132 -0
  45. package/dist/compliance/compliance.test.d.ts +1 -0
  46. package/dist/compliance/guardduty.d.ts +176 -0
  47. package/dist/compliance/index.d.ts +12 -0
  48. package/dist/compliance/security-hub.d.ts +178 -0
  49. package/dist/containers/build-optimization.d.ts +155 -0
  50. package/dist/containers/containers.test.d.ts +1 -0
  51. package/dist/containers/image-scanning.d.ts +144 -0
  52. package/dist/containers/index.d.ts +8 -0
  53. package/dist/containers/registry.d.ts +129 -0
  54. package/dist/containers/service-mesh.d.ts +254 -0
  55. package/dist/database/database.test.d.ts +1 -0
  56. package/dist/database/index.d.ts +8 -0
  57. package/dist/database/migrations.d.ts +153 -0
  58. package/dist/database/performance.d.ts +219 -0
  59. package/dist/database/replicas.d.ts +218 -0
  60. package/dist/database/users.d.ts +165 -0
  61. package/dist/dependency-graph.d.ts +37 -0
  62. package/dist/deployment/ab-testing.d.ts +165 -0
  63. package/dist/deployment/blue-green.d.ts +140 -0
  64. package/dist/deployment/canary.d.ts +165 -0
  65. package/dist/deployment/deployment.test.d.ts +1 -0
  66. package/dist/deployment/index.d.ts +12 -0
  67. package/dist/deployment/progressive.d.ts +50 -0
  68. package/dist/dns/dns.test.d.ts +1 -0
  69. package/dist/dns/dnssec.d.ts +120 -0
  70. package/dist/dns/index.d.ts +7 -0
  71. package/dist/dns/resolver.d.ts +216 -0
  72. package/dist/dns/routing.d.ts +277 -0
  73. package/dist/email/advanced/analytics.d.ts +107 -0
  74. package/dist/email/advanced/index.d.ts +10 -0
  75. package/dist/email/advanced/rules.d.ts +131 -0
  76. package/dist/email/advanced/scheduling.d.ts +81 -0
  77. package/dist/email/advanced/search.d.ts +91 -0
  78. package/dist/email/advanced/shared-mailboxes.d.ts +109 -0
  79. package/dist/email/advanced/templates.d.ts +95 -0
  80. package/dist/email/advanced/threading.d.ts +65 -0
  81. package/dist/email/analytics.d.ts +189 -0
  82. package/dist/email/bounce-handling.d.ts +171 -0
  83. package/dist/email/email.test.d.ts +1 -0
  84. package/dist/email/handlers/__tests__/inbound.test.d.ts +1 -0
  85. package/dist/email/handlers/__tests__/outbound.test.d.ts +1 -0
  86. package/dist/email/handlers/converter.d.ts +11 -0
  87. package/dist/email/handlers/feedback.d.ts +11 -0
  88. package/dist/email/handlers/inbound.d.ts +13 -0
  89. package/dist/email/handlers/outbound.d.ts +13 -0
  90. package/dist/email/index.d.ts +10 -0
  91. package/dist/email/reputation.d.ts +133 -0
  92. package/dist/email/templates.d.ts +124 -0
  93. package/dist/errors/index.d.ts +177 -0
  94. package/dist/errors/index.test.d.ts +4 -0
  95. package/dist/health-checks/index.d.ts +35 -0
  96. package/dist/index.d.ts +15 -256
  97. package/dist/index.js +228 -80
  98. package/dist/intrinsic-functions.d.ts +77 -0
  99. package/dist/lambda/concurrency.d.ts +146 -0
  100. package/dist/lambda/destinations.d.ts +141 -0
  101. package/dist/lambda/dlq.d.ts +160 -0
  102. package/dist/lambda/index.d.ts +10 -0
  103. package/dist/lambda/lambda.test.d.ts +1 -0
  104. package/dist/lambda/layers.d.ts +117 -0
  105. package/dist/lambda/versions.d.ts +145 -0
  106. package/dist/lambda/vpc.d.ts +164 -0
  107. package/dist/local/config.d.ts +44 -0
  108. package/dist/local/index.d.ts +5 -0
  109. package/dist/local/mock-aws.d.ts +69 -0
  110. package/dist/modules/ai.d.ts +108 -0
  111. package/dist/modules/api.d.ts +157 -0
  112. package/dist/modules/auth.d.ts +262 -0
  113. package/dist/modules/cache.d.ts +108 -0
  114. package/dist/modules/cdn.d.ts +305 -0
  115. package/dist/modules/communication.d.ts +117 -0
  116. package/dist/modules/compute.d.ts +1376 -0
  117. package/dist/modules/database.d.ts +144 -0
  118. package/dist/modules/deployment.d.ts +372 -0
  119. package/dist/modules/dns.d.ts +143 -0
  120. package/dist/modules/email.d.ts +314 -0
  121. package/dist/modules/filesystem.d.ts +132 -0
  122. package/dist/modules/index.d.ts +31 -0
  123. package/dist/modules/messaging.d.ts +210 -0
  124. package/dist/modules/monitoring.d.ts +574 -0
  125. package/dist/modules/network.d.ts +148 -0
  126. package/dist/modules/parameter-store.d.ts +143 -0
  127. package/dist/modules/permissions.d.ts +245 -0
  128. package/dist/modules/phone.d.ts +125 -0
  129. package/dist/modules/queue.d.ts +411 -0
  130. package/dist/modules/redirects.d.ts +140 -0
  131. package/dist/modules/registry.d.ts +189 -0
  132. package/dist/modules/search.d.ts +135 -0
  133. package/dist/modules/secrets.d.ts +149 -0
  134. package/dist/modules/security.d.ts +219 -0
  135. package/dist/modules/sms.d.ts +130 -0
  136. package/dist/modules/storage.d.ts +344 -0
  137. package/dist/modules/workflow.d.ts +288 -0
  138. package/dist/multi-account/config.d.ts +166 -0
  139. package/dist/multi-account/index.d.ts +6 -0
  140. package/dist/multi-account/manager.d.ts +181 -0
  141. package/dist/multi-region/cross-region.d.ts +204 -0
  142. package/dist/multi-region/index.d.ts +7 -0
  143. package/dist/multi-region/manager.d.ts +136 -0
  144. package/dist/multi-region/regions.d.ts +98 -0
  145. package/dist/network-security/index.d.ts +55 -0
  146. package/dist/observability/index.d.ts +8 -0
  147. package/dist/observability/logs.d.ts +213 -0
  148. package/dist/observability/metrics.d.ts +187 -0
  149. package/dist/observability/observability.test.d.ts +1 -0
  150. package/dist/observability/synthetics.d.ts +189 -0
  151. package/dist/observability/xray.d.ts +193 -0
  152. package/dist/phone/advanced/analytics.d.ts +83 -0
  153. package/dist/phone/advanced/callbacks.d.ts +67 -0
  154. package/dist/phone/advanced/index.d.ts +7 -0
  155. package/dist/phone/advanced/ivr-builder.d.ts +130 -0
  156. package/dist/phone/advanced/recording.d.ts +62 -0
  157. package/dist/phone/handlers/__tests__/incoming-call.test.d.ts +1 -0
  158. package/dist/phone/handlers/incoming-call.d.ts +10 -0
  159. package/dist/phone/handlers/missed-call.d.ts +9 -0
  160. package/dist/phone/handlers/voicemail.d.ts +10 -0
  161. package/dist/phone/index.d.ts +5 -0
  162. package/dist/presets/api-backend.d.ts +11 -0
  163. package/dist/presets/data-pipeline.d.ts +11 -0
  164. package/dist/presets/extend.d.ts +194 -0
  165. package/dist/presets/extend.test.d.ts +4 -0
  166. package/dist/presets/fullstack-app.d.ts +12 -0
  167. package/dist/presets/index.d.ts +13 -0
  168. package/dist/presets/jamstack.d.ts +12 -0
  169. package/dist/presets/microservices.d.ts +18 -0
  170. package/dist/presets/ml-api.d.ts +13 -0
  171. package/dist/presets/nodejs-server.d.ts +14 -0
  172. package/dist/presets/nodejs-serverless.d.ts +14 -0
  173. package/dist/presets/realtime-app.d.ts +11 -0
  174. package/dist/presets/static-site.d.ts +12 -0
  175. package/dist/presets/traditional-web-app.d.ts +16 -0
  176. package/dist/presets/wordpress.d.ts +12 -0
  177. package/dist/preview/github.d.ts +32 -0
  178. package/dist/preview/github.test.d.ts +1 -0
  179. package/dist/preview/index.d.ts +10 -0
  180. package/dist/preview/manager.d.ts +101 -0
  181. package/dist/preview/manager.test.d.ts +1 -0
  182. package/dist/preview/notifications.d.ts +89 -0
  183. package/dist/preview/notifications.test.d.ts +1 -0
  184. package/dist/queue/batch-processing.d.ts +138 -0
  185. package/dist/queue/dlq-monitoring.d.ts +143 -0
  186. package/dist/queue/fifo.d.ts +131 -0
  187. package/dist/queue/index.d.ts +8 -0
  188. package/dist/queue/management.d.ts +162 -0
  189. package/dist/queue/queue.test.d.ts +1 -0
  190. package/dist/resource-mgmt/index.d.ts +44 -0
  191. package/dist/resource-naming.d.ts +26 -0
  192. package/dist/s3/index.d.ts +227 -0
  193. package/dist/schema/index.d.ts +12 -0
  194. package/dist/security/certificate-manager.d.ts +184 -0
  195. package/dist/security/index.d.ts +8 -0
  196. package/dist/security/scanning.d.ts +196 -0
  197. package/dist/security/secrets-manager.d.ts +204 -0
  198. package/dist/security/secrets-rotation.d.ts +167 -0
  199. package/dist/security/security.test.d.ts +1 -0
  200. package/dist/sms/advanced/ab-testing.d.ts +74 -0
  201. package/dist/sms/advanced/analytics.d.ts +75 -0
  202. package/dist/sms/advanced/campaigns.d.ts +96 -0
  203. package/dist/sms/advanced/chatbot.d.ts +67 -0
  204. package/dist/sms/advanced/index.d.ts +9 -0
  205. package/dist/sms/advanced/link-tracking.d.ts +60 -0
  206. package/dist/sms/advanced/mms.d.ts +60 -0
  207. package/dist/sms/handlers/__tests__/send.test.d.ts +1 -0
  208. package/dist/sms/handlers/delivery-status.d.ts +10 -0
  209. package/dist/sms/handlers/receive.d.ts +10 -0
  210. package/dist/sms/handlers/send.d.ts +10 -0
  211. package/dist/sms/index.d.ts +5 -0
  212. package/dist/stack-diff.d.ts +38 -0
  213. package/dist/static-site/index.d.ts +49 -0
  214. package/dist/template-builder.d.ts +42 -0
  215. package/dist/template-validator.d.ts +28 -0
  216. package/dist/types.d.ts +2514 -0
  217. package/dist/utils/cache.d.ts +117 -0
  218. package/dist/utils/diff.d.ts +52 -0
  219. package/dist/utils/hash.d.ts +73 -0
  220. package/dist/utils/index.d.ts +7 -0
  221. package/dist/utils/parallel.d.ts +78 -0
  222. package/dist/validators/credentials.d.ts +30 -0
  223. package/dist/validators/credentials.test.d.ts +4 -0
  224. package/dist/validators/quotas.d.ts +64 -0
  225. package/dist/validators/quotas.test.d.ts +4 -0
  226. package/package.json +2 -2
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Database Migration Management
3
+ * Version-controlled schema changes with rollback support
4
+ */
5
+ export interface Migration {
6
+ id: string;
7
+ version: string;
8
+ name: string;
9
+ description?: string;
10
+ up: string;
11
+ down: string;
12
+ checksum: string;
13
+ appliedAt?: Date;
14
+ rolledBackAt?: Date;
15
+ executionTimeMs?: number;
16
+ }
17
+ export interface MigrationPlan {
18
+ id: string;
19
+ name: string;
20
+ database: DatabaseTarget;
21
+ migrations: Migration[];
22
+ autoApply?: boolean;
23
+ backupBeforeMigration?: boolean;
24
+ testMigrations?: boolean;
25
+ validateRollback?: boolean;
26
+ }
27
+ export interface DatabaseTarget {
28
+ type: 'rds' | 'aurora' | 'dynamodb';
29
+ identifier: string;
30
+ engine?: 'postgres' | 'mysql' | 'mariadb';
31
+ endpoint?: string;
32
+ database?: string;
33
+ }
34
+ export interface MigrationResult {
35
+ success: boolean;
36
+ version: string;
37
+ appliedMigrations: string[];
38
+ failedMigrations: string[];
39
+ executionTimeMs: number;
40
+ error?: string;
41
+ rollbackPerformed?: boolean;
42
+ }
43
+ export interface MigrationStatus {
44
+ currentVersion: string;
45
+ pendingMigrations: Migration[];
46
+ appliedMigrations: Migration[];
47
+ lastMigration?: Migration;
48
+ }
49
+ /**
50
+ * Migration manager
51
+ */
52
+ export declare class MigrationManager {
53
+ private plans;
54
+ private migrations;
55
+ private planCounter;
56
+ private migrationCounter;
57
+ /**
58
+ * Create migration plan
59
+ */
60
+ createPlan(plan: Omit<MigrationPlan, 'id'>): MigrationPlan;
61
+ /**
62
+ * Create migration
63
+ */
64
+ createMigration(migration: Omit<Migration, 'id' | 'checksum'>): Migration;
65
+ /**
66
+ * Create schema change migration
67
+ */
68
+ createSchemaMigration(options: {
69
+ version: string;
70
+ name: string;
71
+ tableName: string;
72
+ changes: SchemaChange[];
73
+ engine?: 'postgres' | 'mysql';
74
+ }): Migration;
75
+ /**
76
+ * Create data migration
77
+ */
78
+ createDataMigration(options: {
79
+ version: string;
80
+ name: string;
81
+ description?: string;
82
+ upSQL: string;
83
+ downSQL: string;
84
+ }): Migration;
85
+ /**
86
+ * Add migration to plan
87
+ */
88
+ addMigrationToPlan(planId: string, migration: Migration): void;
89
+ /**
90
+ * Execute migration plan
91
+ */
92
+ executePlan(planId: string, dryRun?: boolean): Promise<MigrationResult>;
93
+ /**
94
+ * Rollback migrations
95
+ */
96
+ private rollbackMigrations;
97
+ /**
98
+ * Get migration status
99
+ */
100
+ getMigrationStatus(planId: string): MigrationStatus;
101
+ /**
102
+ * Generate schema SQL from changes
103
+ */
104
+ private generateSchemaSQL;
105
+ /**
106
+ * Generate checksum for migration
107
+ */
108
+ private generateChecksum;
109
+ /**
110
+ * Validate migration plan
111
+ */
112
+ validatePlan(planId: string): {
113
+ valid: boolean;
114
+ errors: string[];
115
+ };
116
+ /**
117
+ * Get plan
118
+ */
119
+ getPlan(id: string): MigrationPlan | undefined;
120
+ /**
121
+ * List plans
122
+ */
123
+ listPlans(): MigrationPlan[];
124
+ /**
125
+ * Get migration
126
+ */
127
+ getMigration(id: string): Migration | undefined;
128
+ /**
129
+ * List migrations
130
+ */
131
+ listMigrations(): Migration[];
132
+ /**
133
+ * Clear all data
134
+ */
135
+ clear(): void;
136
+ }
137
+ /**
138
+ * Schema change types
139
+ */
140
+ export interface SchemaChange {
141
+ type: 'add_column' | 'drop_column' | 'modify_column' | 'add_index' | 'drop_index';
142
+ columnName?: string;
143
+ columnType?: string;
144
+ newType?: string;
145
+ nullable?: boolean;
146
+ defaultValue?: string;
147
+ indexName?: string;
148
+ columns?: string[];
149
+ }
150
+ /**
151
+ * Global migration manager instance
152
+ */
153
+ export declare const migrationManager: MigrationManager;
@@ -0,0 +1,219 @@
1
+ /**
2
+ * Database Performance Monitoring
3
+ * Query performance insights, slow query detection, and optimization
4
+ */
5
+ export interface PerformanceInsights {
6
+ id: string;
7
+ name: string;
8
+ databaseIdentifier: string;
9
+ enabled: boolean;
10
+ retentionPeriod: number;
11
+ kmsKeyId?: string;
12
+ }
13
+ export interface SlowQueryLog {
14
+ id: string;
15
+ name: string;
16
+ databaseIdentifier: string;
17
+ enabled: boolean;
18
+ logDestination: 'cloudwatch' | 's3';
19
+ cloudwatchLogGroup?: string;
20
+ s3Bucket?: string;
21
+ s3Prefix?: string;
22
+ minExecutionTime?: number;
23
+ }
24
+ export interface QueryMetric {
25
+ id: string;
26
+ queryId: string;
27
+ sql: string;
28
+ executionCount: number;
29
+ avgExecutionTime: number;
30
+ maxExecutionTime: number;
31
+ minExecutionTime: number;
32
+ totalCPUTime: number;
33
+ totalIOWait: number;
34
+ totalLockWait: number;
35
+ rowsExamined: number;
36
+ rowsReturned: number;
37
+ timestamp: Date;
38
+ }
39
+ export interface PerformanceReport {
40
+ id: string;
41
+ name: string;
42
+ databaseIdentifier: string;
43
+ reportType: 'daily' | 'weekly' | 'monthly';
44
+ metrics: PerformanceMetrics;
45
+ topQueries: QueryMetric[];
46
+ slowQueries: QueryMetric[];
47
+ recommendations: PerformanceRecommendation[];
48
+ generatedAt: Date;
49
+ }
50
+ export interface PerformanceMetrics {
51
+ avgCPU: number;
52
+ maxCPU: number;
53
+ avgConnections: number;
54
+ maxConnections: number;
55
+ avgReadIOPS: number;
56
+ avgWriteIOPS: number;
57
+ avgReadThroughput: number;
58
+ avgWriteThroughput: number;
59
+ avgReadLatency: number;
60
+ avgWriteLatency: number;
61
+ cacheHitRatio: number;
62
+ deadlocks: number;
63
+ longRunningTransactions: number;
64
+ }
65
+ export interface PerformanceRecommendation {
66
+ type: 'index' | 'query' | 'schema' | 'configuration' | 'scaling';
67
+ severity: 'high' | 'medium' | 'low';
68
+ title: string;
69
+ description: string;
70
+ impact: string;
71
+ effort: 'low' | 'medium' | 'high';
72
+ sqlExample?: string;
73
+ }
74
+ export interface IndexRecommendation {
75
+ id: string;
76
+ tableName: string;
77
+ columns: string[];
78
+ reason: string;
79
+ estimatedImprovement: number;
80
+ estimatedSize: number;
81
+ createSQL: string;
82
+ }
83
+ export interface QueryAnalysis {
84
+ id: string;
85
+ queryId: string;
86
+ sql: string;
87
+ executionPlan: ExecutionPlanNode[];
88
+ bottlenecks: Bottleneck[];
89
+ recommendations: string[];
90
+ estimatedCost: number;
91
+ }
92
+ export interface ExecutionPlanNode {
93
+ id: number;
94
+ operation: string;
95
+ table?: string;
96
+ rows: number;
97
+ cost: number;
98
+ children?: ExecutionPlanNode[];
99
+ }
100
+ export interface Bottleneck {
101
+ type: 'full_table_scan' | 'missing_index' | 'suboptimal_join' | 'high_cardinality';
102
+ severity: 'critical' | 'warning' | 'info';
103
+ description: string;
104
+ tableName?: string;
105
+ columnName?: string;
106
+ }
107
+ /**
108
+ * Performance manager
109
+ */
110
+ export declare class PerformanceManager {
111
+ private insights;
112
+ private slowQueryLogs;
113
+ private queryMetrics;
114
+ private reports;
115
+ private indexRecommendations;
116
+ private insightsCounter;
117
+ private logCounter;
118
+ private metricCounter;
119
+ private reportCounter;
120
+ private recommendationCounter;
121
+ /**
122
+ * Enable performance insights
123
+ */
124
+ enablePerformanceInsights(options: {
125
+ name: string;
126
+ databaseIdentifier: string;
127
+ retentionPeriod?: number;
128
+ kmsKeyId?: string;
129
+ }): PerformanceInsights;
130
+ /**
131
+ * Enable slow query log
132
+ */
133
+ enableSlowQueryLog(options: {
134
+ name: string;
135
+ databaseIdentifier: string;
136
+ logDestination: 'cloudwatch' | 's3';
137
+ cloudwatchLogGroup?: string;
138
+ s3Bucket?: string;
139
+ minExecutionTime?: number;
140
+ }): SlowQueryLog;
141
+ /**
142
+ * Record query metric
143
+ */
144
+ recordQueryMetric(metric: Omit<QueryMetric, 'id' | 'timestamp'>): QueryMetric;
145
+ /**
146
+ * Generate performance report
147
+ */
148
+ generatePerformanceReport(options: {
149
+ name: string;
150
+ databaseIdentifier: string;
151
+ reportType: 'daily' | 'weekly' | 'monthly';
152
+ }): PerformanceReport;
153
+ /**
154
+ * Generate recommendations based on metrics
155
+ */
156
+ private generateRecommendations;
157
+ /**
158
+ * Analyze query
159
+ */
160
+ analyzeQuery(sql: string): QueryAnalysis;
161
+ /**
162
+ * Recommend index
163
+ */
164
+ recommendIndex(options: {
165
+ tableName: string;
166
+ columns: string[];
167
+ reason: string;
168
+ estimatedImprovement?: number;
169
+ }): IndexRecommendation;
170
+ /**
171
+ * Get performance insights
172
+ */
173
+ getInsights(id: string): PerformanceInsights | undefined;
174
+ /**
175
+ * List performance insights
176
+ */
177
+ listInsights(): PerformanceInsights[];
178
+ /**
179
+ * Get slow query log
180
+ */
181
+ getSlowQueryLog(id: string): SlowQueryLog | undefined;
182
+ /**
183
+ * List slow query logs
184
+ */
185
+ listSlowQueryLogs(): SlowQueryLog[];
186
+ /**
187
+ * Get report
188
+ */
189
+ getReport(id: string): PerformanceReport | undefined;
190
+ /**
191
+ * List reports
192
+ */
193
+ listReports(): PerformanceReport[];
194
+ /**
195
+ * List index recommendations
196
+ */
197
+ listIndexRecommendations(): IndexRecommendation[];
198
+ /**
199
+ * Generate CloudFormation for Performance Insights
200
+ */
201
+ generatePerformanceInsightsCF(insights: PerformanceInsights): any;
202
+ /**
203
+ * Generate CloudWatch alarm for slow queries
204
+ */
205
+ generateSlowQueryAlarmCF(options: {
206
+ alarmName: string;
207
+ logGroupName: string;
208
+ threshold: number;
209
+ snsTopicArn?: string;
210
+ }): any;
211
+ /**
212
+ * Clear all data
213
+ */
214
+ clear(): void;
215
+ }
216
+ /**
217
+ * Global performance manager instance
218
+ */
219
+ export declare const performanceManager: PerformanceManager;
@@ -0,0 +1,218 @@
1
+ /**
2
+ * Database Replicas & Connection Pooling
3
+ * Read replica management and RDS Proxy for connection pooling
4
+ */
5
+ export interface ReadReplica {
6
+ id: string;
7
+ name: string;
8
+ sourceDatabase: string;
9
+ region: string;
10
+ instanceClass: string;
11
+ multiAZ?: boolean;
12
+ autoMinorVersionUpgrade?: boolean;
13
+ backupRetentionPeriod?: number;
14
+ preferredBackupWindow?: string;
15
+ preferredMaintenanceWindow?: string;
16
+ replicationLag?: number;
17
+ status?: 'creating' | 'available' | 'failing-over' | 'failed';
18
+ }
19
+ export interface ReplicationGroup {
20
+ id: string;
21
+ name: string;
22
+ primaryDatabase: string;
23
+ replicas: ReadReplica[];
24
+ loadBalancing?: LoadBalancingStrategy;
25
+ failoverEnabled?: boolean;
26
+ autoScaling?: AutoScalingConfig;
27
+ }
28
+ export interface LoadBalancingStrategy {
29
+ type: 'round-robin' | 'least-connections' | 'weighted' | 'latency-based';
30
+ weights?: Record<string, number>;
31
+ }
32
+ export interface AutoScalingConfig {
33
+ enabled: boolean;
34
+ minReplicas: number;
35
+ maxReplicas: number;
36
+ targetCPU?: number;
37
+ targetConnections?: number;
38
+ scaleUpCooldown?: number;
39
+ scaleDownCooldown?: number;
40
+ }
41
+ export interface RDSProxy {
42
+ id: string;
43
+ name: string;
44
+ engineFamily: 'MYSQL' | 'POSTGRESQL' | 'SQLSERVER';
45
+ targetDatabase: string;
46
+ maxConnectionsPercent?: number;
47
+ maxIdleConnectionsPercent?: number;
48
+ connectionBorrowTimeout?: number;
49
+ sessionPinningFilters?: SessionPinningFilter[];
50
+ requireTLS?: boolean;
51
+ idleClientTimeout?: number;
52
+ vpcSubnetIds: string[];
53
+ securityGroupIds: string[];
54
+ secretArn?: string;
55
+ }
56
+ export type SessionPinningFilter = 'EXCLUDE_VARIABLE_SETS';
57
+ export interface ProxyTarget {
58
+ id: string;
59
+ proxyId: string;
60
+ targetArn: string;
61
+ targetType: 'RDS_INSTANCE' | 'RDS_CLUSTER' | 'TRACKED_CLUSTER';
62
+ isWritable: boolean;
63
+ weight?: number;
64
+ }
65
+ export interface ConnectionPoolConfig {
66
+ minPoolSize: number;
67
+ maxPoolSize: number;
68
+ connectionTimeout: number;
69
+ idleTimeout: number;
70
+ maxLifetime?: number;
71
+ statementTimeout?: number;
72
+ }
73
+ /**
74
+ * Replica manager
75
+ */
76
+ export declare class ReplicaManager {
77
+ private replicas;
78
+ private replicationGroups;
79
+ private proxies;
80
+ private proxyTargets;
81
+ private replicaCounter;
82
+ private groupCounter;
83
+ private proxyCounter;
84
+ private targetCounter;
85
+ /**
86
+ * Create read replica
87
+ */
88
+ createReplica(replica: Omit<ReadReplica, 'id'>): ReadReplica;
89
+ /**
90
+ * Create read replica for RDS instance
91
+ */
92
+ createRDSReplica(options: {
93
+ sourceDatabase: string;
94
+ name: string;
95
+ region?: string;
96
+ instanceClass?: string;
97
+ multiAZ?: boolean;
98
+ }): ReadReplica;
99
+ /**
100
+ * Create cross-region replica
101
+ */
102
+ createCrossRegionReplica(options: {
103
+ sourceDatabase: string;
104
+ name: string;
105
+ targetRegion: string;
106
+ instanceClass?: string;
107
+ encrypted?: boolean;
108
+ }): ReadReplica;
109
+ /**
110
+ * Create replication group
111
+ */
112
+ createReplicationGroup(group: Omit<ReplicationGroup, 'id'>): ReplicationGroup;
113
+ /**
114
+ * Create replication group with auto-scaling
115
+ */
116
+ createAutoScalingReplicationGroup(options: {
117
+ name: string;
118
+ primaryDatabase: string;
119
+ minReplicas: number;
120
+ maxReplicas: number;
121
+ targetCPU?: number;
122
+ loadBalancing?: LoadBalancingStrategy;
123
+ }): ReplicationGroup;
124
+ /**
125
+ * Add replica to group
126
+ */
127
+ addReplicaToGroup(groupId: string, replica: ReadReplica): void;
128
+ /**
129
+ * Create RDS Proxy
130
+ */
131
+ createProxy(proxy: Omit<RDSProxy, 'id'>): RDSProxy;
132
+ /**
133
+ * Create RDS Proxy for connection pooling
134
+ */
135
+ createConnectionPoolProxy(options: {
136
+ name: string;
137
+ engineFamily: 'MYSQL' | 'POSTGRESQL' | 'SQLSERVER';
138
+ targetDatabase: string;
139
+ vpcSubnetIds: string[];
140
+ securityGroupIds: string[];
141
+ secretArn: string;
142
+ maxConnections?: number;
143
+ }): RDSProxy;
144
+ /**
145
+ * Create serverless proxy (optimized for Lambda)
146
+ */
147
+ createServerlessProxy(options: {
148
+ name: string;
149
+ engineFamily: 'MYSQL' | 'POSTGRESQL' | 'SQLSERVER';
150
+ targetDatabase: string;
151
+ vpcSubnetIds: string[];
152
+ securityGroupIds: string[];
153
+ secretArn: string;
154
+ }): RDSProxy;
155
+ /**
156
+ * Add proxy target
157
+ */
158
+ addProxyTarget(target: Omit<ProxyTarget, 'id'>): ProxyTarget;
159
+ /**
160
+ * Promote replica to primary
161
+ */
162
+ promoteReplica(replicaId: string): {
163
+ success: boolean;
164
+ message: string;
165
+ };
166
+ /**
167
+ * Get replication lag for replica
168
+ */
169
+ getReplicationLag(replicaId: string): number;
170
+ /**
171
+ * Get replica
172
+ */
173
+ getReplica(id: string): ReadReplica | undefined;
174
+ /**
175
+ * List replicas
176
+ */
177
+ listReplicas(): ReadReplica[];
178
+ /**
179
+ * Get replication group
180
+ */
181
+ getReplicationGroup(id: string): ReplicationGroup | undefined;
182
+ /**
183
+ * List replication groups
184
+ */
185
+ listReplicationGroups(): ReplicationGroup[];
186
+ /**
187
+ * Get proxy
188
+ */
189
+ getProxy(id: string): RDSProxy | undefined;
190
+ /**
191
+ * List proxies
192
+ */
193
+ listProxies(): RDSProxy[];
194
+ /**
195
+ * Generate CloudFormation for read replica
196
+ */
197
+ generateReplicaCF(replica: ReadReplica): any;
198
+ /**
199
+ * Generate CloudFormation for RDS Proxy
200
+ */
201
+ generateProxyCF(proxy: RDSProxy): any;
202
+ /**
203
+ * Generate CloudFormation for proxy target
204
+ */
205
+ generateProxyTargetCF(target: ProxyTarget, proxy: RDSProxy): any;
206
+ /**
207
+ * Generate CloudFormation for proxy IAM role
208
+ */
209
+ generateProxyRoleCF(): any;
210
+ /**
211
+ * Clear all data
212
+ */
213
+ clear(): void;
214
+ }
215
+ /**
216
+ * Global replica manager instance
217
+ */
218
+ export declare const replicaManager: ReplicaManager;