@stacksjs/ts-cloud-core 0.1.6 → 0.1.7
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 +0 -0
- package/dist/aws/cloudformation.d.ts +69 -0
- package/dist/aws/cloudfront.d.ts +21 -0
- package/dist/aws/credentials.d.ts +66 -0
- package/dist/aws/credentials.test.d.ts +0 -0
- package/dist/aws/index.d.ts +73 -0
- package/dist/aws/s3.d.ts +130 -0
- package/dist/aws/s3.test.d.ts +0 -0
- package/dist/aws/signature.d.ts +101 -0
- package/dist/aws/signature.test.d.ts +0 -0
- package/dist/backup/disaster-recovery.d.ts +98 -0
- package/dist/backup/disaster-recovery.test.d.ts +0 -0
- package/dist/backup/index.d.ts +24 -0
- package/dist/backup/manager.d.ts +112 -0
- package/dist/backup/manager.test.d.ts +0 -0
- package/dist/cicd/circleci.d.ts +47 -0
- package/dist/cicd/github-actions.d.ts +55 -0
- package/dist/cicd/gitlab-ci.d.ts +46 -0
- package/dist/cicd/index.d.ts +3 -0
- package/dist/cli/history.d.ts +66 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/progress.d.ts +97 -0
- package/dist/cli/repl.d.ts +76 -0
- package/dist/cli/suggestions.d.ts +67 -0
- package/dist/cli/table.d.ts +70 -0
- package/dist/cli/table.test.d.ts +0 -0
- package/dist/cloudformation/builder.d.ts +59 -0
- package/dist/cloudformation/builder.test.d.ts +0 -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 +66 -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 +36 -0
- package/dist/cloudformation/builders/network.d.ts +14 -0
- package/dist/cloudformation/builders/queue.d.ts +8 -0
- package/dist/cloudformation/builders/security.d.ts +31 -0
- package/dist/cloudformation/builders/storage.d.ts +8 -0
- package/dist/cloudformation/index.d.ts +24 -0
- package/dist/cloudformation/types.d.ts +132 -0
- package/dist/compliance/aws-config.d.ts +88 -0
- package/dist/compliance/cloudtrail.d.ts +96 -0
- package/dist/compliance/compliance.test.d.ts +0 -0
- package/dist/compliance/guardduty.d.ts +110 -0
- package/dist/compliance/index.d.ts +50 -0
- package/dist/compliance/security-hub.d.ts +110 -0
- package/dist/containers/build-optimization.d.ts +110 -0
- package/dist/containers/containers.test.d.ts +0 -0
- package/dist/containers/image-scanning.d.ts +96 -0
- package/dist/containers/index.d.ts +4 -0
- package/dist/containers/registry.d.ts +99 -0
- package/dist/containers/service-mesh.d.ts +206 -0
- package/dist/database/database.test.d.ts +0 -0
- package/dist/database/index.d.ts +4 -0
- package/dist/database/migrations.d.ts +102 -0
- package/dist/database/performance.d.ts +168 -0
- package/dist/database/replicas.d.ts +146 -0
- package/dist/database/users.d.ts +102 -0
- package/dist/dependency-graph.d.ts +19 -0
- package/dist/deployment/ab-testing.d.ts +114 -0
- package/dist/deployment/blue-green.d.ts +98 -0
- package/dist/deployment/canary.d.ts +103 -0
- package/dist/deployment/deployment.test.d.ts +0 -0
- package/dist/deployment/index.d.ts +45 -0
- package/dist/deployment/progressive.d.ts +34 -0
- package/dist/dns/dns.test.d.ts +0 -0
- package/dist/dns/dnssec.d.ts +75 -0
- package/dist/dns/index.d.ts +3 -0
- package/dist/dns/resolver.d.ts +150 -0
- package/dist/dns/routing.d.ts +217 -0
- package/dist/email/advanced/analytics.d.ts +78 -0
- package/dist/email/advanced/index.d.ts +7 -0
- package/dist/email/advanced/rules.d.ts +60 -0
- package/dist/email/advanced/scheduling.d.ts +63 -0
- package/dist/email/advanced/search.d.ts +76 -0
- package/dist/email/advanced/shared-mailboxes.d.ts +66 -0
- package/dist/email/advanced/templates.d.ts +39 -0
- package/dist/email/advanced/threading.d.ts +53 -0
- package/dist/email/analytics.d.ts +144 -0
- package/dist/email/bounce-handling.d.ts +120 -0
- package/dist/email/email.test.d.ts +0 -0
- package/dist/email/handlers/__tests__/inbound.test.d.ts +0 -0
- package/dist/email/handlers/__tests__/outbound.test.d.ts +0 -0
- package/dist/email/handlers/converter.d.ts +225 -0
- package/dist/email/handlers/feedback.d.ts +226 -0
- package/dist/email/handlers/inbound.d.ts +167 -0
- package/dist/email/handlers/outbound.d.ts +176 -0
- package/dist/email/index.d.ts +6 -0
- package/dist/email/reputation.d.ts +97 -0
- package/dist/email/templates.d.ts +82 -0
- package/dist/errors/index.d.ts +186 -0
- package/dist/errors/index.test.d.ts +0 -0
- package/dist/health-checks/index.d.ts +35 -0
- package/dist/index.d.ts +256 -0
- package/dist/index.js +63499 -0
- package/dist/intrinsic-functions.d.ts +37 -0
- package/dist/lambda/concurrency.d.ts +98 -0
- package/dist/lambda/destinations.d.ts +99 -0
- package/dist/lambda/dlq.d.ts +109 -0
- package/dist/lambda/index.d.ts +6 -0
- package/dist/lambda/lambda.test.d.ts +0 -0
- package/dist/lambda/layers.d.ts +81 -0
- package/dist/lambda/versions.d.ts +91 -0
- package/dist/lambda/vpc.d.ts +116 -0
- package/dist/local/config.d.ts +44 -0
- package/dist/local/index.d.ts +2 -0
- package/dist/local/mock-aws.d.ts +60 -0
- package/dist/modules/ai.d.ts +47 -0
- package/dist/modules/api.d.ts +98 -0
- package/dist/modules/auth.d.ts +165 -0
- package/dist/modules/cache.d.ts +73 -0
- package/dist/modules/cdn.d.ts +125 -0
- package/dist/modules/communication.d.ts +98 -0
- package/dist/modules/compute.d.ts +309 -0
- package/dist/modules/database.d.ts +105 -0
- package/dist/modules/deployment.d.ts +181 -0
- package/dist/modules/dns.d.ts +45 -0
- package/dist/modules/email.d.ts +217 -0
- package/dist/modules/filesystem.d.ts +94 -0
- package/dist/modules/index.d.ts +27 -0
- package/dist/modules/messaging.d.ts +108 -0
- package/dist/modules/monitoring.d.ts +127 -0
- package/dist/modules/network.d.ts +102 -0
- package/dist/modules/parameter-store.d.ts +33 -0
- package/dist/modules/permissions.d.ts +132 -0
- package/dist/modules/phone.d.ts +80 -0
- package/dist/modules/queue.d.ts +210 -0
- package/dist/modules/redirects.d.ts +59 -0
- package/dist/modules/registry.d.ts +73 -0
- package/dist/modules/search.d.ts +56 -0
- package/dist/modules/secrets.d.ts +80 -0
- package/dist/modules/security.d.ts +100 -0
- package/dist/modules/sms.d.ts +52 -0
- package/dist/modules/storage.d.ts +160 -0
- package/dist/modules/workflow.d.ts +205 -0
- package/dist/multi-account/config.d.ts +315 -0
- package/dist/multi-account/index.d.ts +2 -0
- package/dist/multi-account/manager.d.ts +100 -0
- package/dist/multi-region/cross-region.d.ts +114 -0
- package/dist/multi-region/index.d.ts +3 -0
- package/dist/multi-region/manager.d.ts +72 -0
- package/dist/multi-region/regions.d.ts +98 -0
- package/dist/network-security/index.d.ts +39 -0
- package/dist/observability/index.d.ts +4 -0
- package/dist/observability/logs.d.ts +129 -0
- package/dist/observability/metrics.d.ts +153 -0
- package/dist/observability/observability.test.d.ts +0 -0
- package/dist/observability/synthetics.d.ts +146 -0
- package/dist/observability/xray.d.ts +129 -0
- package/dist/phone/advanced/analytics.d.ts +66 -0
- package/dist/phone/advanced/callbacks.d.ts +50 -0
- package/dist/phone/advanced/index.d.ts +4 -0
- package/dist/phone/advanced/ivr-builder.d.ts +83 -0
- package/dist/phone/advanced/recording.d.ts +48 -0
- package/dist/phone/handlers/__tests__/incoming-call.test.d.ts +0 -0
- package/dist/phone/handlers/incoming-call.d.ts +115 -0
- package/dist/phone/handlers/missed-call.d.ts +114 -0
- package/dist/phone/handlers/voicemail.d.ts +177 -0
- package/dist/phone/index.d.ts +2 -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 +0 -0
- package/dist/presets/fullstack-app.d.ts +12 -0
- package/dist/presets/index.d.ts +24 -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 +0 -0
- package/dist/preview/index.d.ts +27 -0
- package/dist/preview/manager.d.ts +58 -0
- package/dist/preview/manager.test.d.ts +0 -0
- package/dist/preview/notifications.d.ts +55 -0
- package/dist/preview/notifications.test.d.ts +0 -0
- package/dist/queue/batch-processing.d.ts +87 -0
- package/dist/queue/dlq-monitoring.d.ts +95 -0
- package/dist/queue/fifo.d.ts +90 -0
- package/dist/queue/index.d.ts +4 -0
- package/dist/queue/management.d.ts +105 -0
- package/dist/queue/queue.test.d.ts +0 -0
- package/dist/resource-mgmt/index.d.ts +29 -0
- package/dist/resource-naming.d.ts +26 -0
- package/dist/s3/index.d.ts +173 -0
- package/dist/schema/index.d.ts +9 -0
- package/dist/security/certificate-manager.d.ts +121 -0
- package/dist/security/index.d.ts +4 -0
- package/dist/security/scanning.d.ts +147 -0
- package/dist/security/secrets-manager.d.ts +144 -0
- package/dist/security/secrets-rotation.d.ts +115 -0
- package/dist/security/security.test.d.ts +0 -0
- package/dist/sms/advanced/ab-testing.d.ts +54 -0
- package/dist/sms/advanced/analytics.d.ts +56 -0
- package/dist/sms/advanced/campaigns.d.ts +82 -0
- package/dist/sms/advanced/chatbot.d.ts +48 -0
- package/dist/sms/advanced/index.d.ts +6 -0
- package/dist/sms/advanced/link-tracking.d.ts +42 -0
- package/dist/sms/advanced/mms.d.ts +35 -0
- package/dist/sms/handlers/__tests__/send.test.d.ts +0 -0
- package/dist/sms/handlers/delivery-status.d.ts +131 -0
- package/dist/sms/handlers/receive.d.ts +160 -0
- package/dist/sms/handlers/send.d.ts +172 -0
- package/dist/sms/index.d.ts +2 -0
- package/dist/stack-diff.d.ts +34 -0
- package/dist/static-site/index.d.ts +49 -0
- package/dist/template-builder.d.ts +14 -0
- package/dist/template-validator.d.ts +24 -0
- package/dist/utils/cache.d.ts +55 -0
- package/dist/utils/diff.d.ts +48 -0
- package/dist/utils/hash.d.ts +58 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/parallel.d.ts +60 -0
- package/dist/validators/credentials.d.ts +23 -0
- package/dist/validators/credentials.test.d.ts +0 -0
- package/dist/validators/quotas.d.ts +60 -0
- package/dist/validators/quotas.test.d.ts +0 -0
- package/package.json +4 -4
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export declare const networkSecurityManager: NetworkSecurityManager;
|
|
2
|
+
/**
|
|
3
|
+
* Network Security - WAF, Shield, security groups, NACLs
|
|
4
|
+
*/
|
|
5
|
+
export declare interface WAFRule {
|
|
6
|
+
id: string
|
|
7
|
+
name: string
|
|
8
|
+
priority: number
|
|
9
|
+
action: 'allow' | 'block' | 'count'
|
|
10
|
+
conditions: string[]
|
|
11
|
+
}
|
|
12
|
+
export declare interface ShieldProtection {
|
|
13
|
+
id: string
|
|
14
|
+
resourceArn: string
|
|
15
|
+
protectionType: 'standard' | 'advanced'
|
|
16
|
+
}
|
|
17
|
+
export declare interface SecurityGroup {
|
|
18
|
+
id: string
|
|
19
|
+
name: string
|
|
20
|
+
vpcId: string
|
|
21
|
+
rules: Array<{ protocol: string; port: number; source: string }>
|
|
22
|
+
}
|
|
23
|
+
export declare interface NACL {
|
|
24
|
+
id: string
|
|
25
|
+
vpcId: string
|
|
26
|
+
rules: Array<{ ruleNumber: number; protocol: string; action: 'allow' | 'deny' }>
|
|
27
|
+
}
|
|
28
|
+
export declare class NetworkSecurityManager {
|
|
29
|
+
private wafRules: any;
|
|
30
|
+
private shieldProtections: any;
|
|
31
|
+
private securityGroups: any;
|
|
32
|
+
private nacls: any;
|
|
33
|
+
private counter: any;
|
|
34
|
+
createWAFRule(name: string, priority: number, action: 'allow' | 'block' | 'count', conditions: string[]): WAFRule;
|
|
35
|
+
enableShield(resourceArn: string, protectionType?: 'standard' | 'advanced'): ShieldProtection;
|
|
36
|
+
createSecurityGroup(name: string, vpcId: string, rules: Array<{ protocol: string; port: number; source: string }>): SecurityGroup;
|
|
37
|
+
createNACL(vpcId: string, rules: Array<{ ruleNumber: number; protocol: string; action: 'allow' | 'deny' }>): NACL;
|
|
38
|
+
clear(): void;
|
|
39
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global logs manager instance
|
|
3
|
+
*/
|
|
4
|
+
export declare const logsManager: LogsManager;
|
|
5
|
+
/**
|
|
6
|
+
* Log Aggregation
|
|
7
|
+
* Centralized logging across services with CloudWatch Logs
|
|
8
|
+
*/
|
|
9
|
+
export declare interface LogGroup {
|
|
10
|
+
id: string
|
|
11
|
+
name: string
|
|
12
|
+
retentionDays?: number
|
|
13
|
+
kmsKeyId?: string
|
|
14
|
+
logStreams?: LogStream[]
|
|
15
|
+
metricFilters?: MetricFilter[]
|
|
16
|
+
subscriptionFilters?: SubscriptionFilter[]
|
|
17
|
+
}
|
|
18
|
+
export declare interface LogStream {
|
|
19
|
+
id: string
|
|
20
|
+
name: string
|
|
21
|
+
logGroupName: string
|
|
22
|
+
creationTime: Date
|
|
23
|
+
lastEventTime?: Date
|
|
24
|
+
}
|
|
25
|
+
export declare interface MetricFilter {
|
|
26
|
+
id: string
|
|
27
|
+
name: string
|
|
28
|
+
filterPattern: string
|
|
29
|
+
metricTransformations: MetricTransformation[]
|
|
30
|
+
}
|
|
31
|
+
export declare interface MetricTransformation {
|
|
32
|
+
metricName: string
|
|
33
|
+
metricNamespace: string
|
|
34
|
+
metricValue: string
|
|
35
|
+
defaultValue?: number
|
|
36
|
+
unit?: string
|
|
37
|
+
dimensions?: Record<string, string>
|
|
38
|
+
}
|
|
39
|
+
export declare interface SubscriptionFilter {
|
|
40
|
+
id: string
|
|
41
|
+
name: string
|
|
42
|
+
logGroupName: string
|
|
43
|
+
filterPattern: string
|
|
44
|
+
destinationArn: string
|
|
45
|
+
roleArn?: string
|
|
46
|
+
distribution?: 'Random' | 'ByLogStream'
|
|
47
|
+
}
|
|
48
|
+
export declare interface LogQuery {
|
|
49
|
+
id: string
|
|
50
|
+
name: string
|
|
51
|
+
queryString: string
|
|
52
|
+
logGroupNames: string[]
|
|
53
|
+
startTime?: Date
|
|
54
|
+
endTime?: Date
|
|
55
|
+
}
|
|
56
|
+
export declare interface LogInsightsQuery {
|
|
57
|
+
id: string
|
|
58
|
+
name: string
|
|
59
|
+
description?: string
|
|
60
|
+
query: string
|
|
61
|
+
logGroupNames: string[]
|
|
62
|
+
schedule?: string
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Logs manager
|
|
66
|
+
*/
|
|
67
|
+
export declare class LogsManager {
|
|
68
|
+
private logGroups: Map<string, LogGroup>;
|
|
69
|
+
private queries: Map<string, LogQuery>;
|
|
70
|
+
private insightsQueries: Map<string, LogInsightsQuery>;
|
|
71
|
+
private logGroupCounter: any;
|
|
72
|
+
private filterCounter: any;
|
|
73
|
+
private queryCounter: any;
|
|
74
|
+
createLogGroup(group: Omit<LogGroup, 'id'>): LogGroup;
|
|
75
|
+
createLambdaLogGroup(functionName: string, retentionDays?: number): LogGroup;
|
|
76
|
+
createECSLogGroup(options: {
|
|
77
|
+
clusterName: string
|
|
78
|
+
serviceName: string
|
|
79
|
+
retentionDays?: number
|
|
80
|
+
}): LogGroup;
|
|
81
|
+
createAPIGatewayLogGroup(apiName: string, stage: string, retentionDays?: number): LogGroup;
|
|
82
|
+
createApplicationLogGroup(options: {
|
|
83
|
+
appName: string
|
|
84
|
+
environment: string
|
|
85
|
+
retentionDays?: number
|
|
86
|
+
kmsKeyId?: string
|
|
87
|
+
}): LogGroup;
|
|
88
|
+
createMetricFilter(logGroupId: string, filter: Omit<MetricFilter, 'id'>): MetricFilter;
|
|
89
|
+
createErrorCountFilter(logGroupId: string, namespace: string): MetricFilter;
|
|
90
|
+
createLatencyFilter(logGroupId: string, namespace: string): MetricFilter;
|
|
91
|
+
createCustomPatternFilter(options: {
|
|
92
|
+
logGroupId: string
|
|
93
|
+
name: string
|
|
94
|
+
pattern: string
|
|
95
|
+
metricName: string
|
|
96
|
+
namespace: string
|
|
97
|
+
}): MetricFilter;
|
|
98
|
+
createSubscriptionFilter(logGroupId: string, filter: Omit<SubscriptionFilter, 'id'>): SubscriptionFilter;
|
|
99
|
+
createKinesisSubscription(options: {
|
|
100
|
+
logGroupId: string
|
|
101
|
+
kinesisStreamArn: string
|
|
102
|
+
roleArn: string
|
|
103
|
+
filterPattern?: string
|
|
104
|
+
}): SubscriptionFilter;
|
|
105
|
+
createLambdaSubscription(options: {
|
|
106
|
+
logGroupId: string
|
|
107
|
+
lambdaFunctionArn: string
|
|
108
|
+
filterPattern?: string
|
|
109
|
+
}): SubscriptionFilter;
|
|
110
|
+
createInsightsQuery(query: Omit<LogInsightsQuery, 'id'>): LogInsightsQuery;
|
|
111
|
+
createErrorAnalysisQuery(logGroupNames: string[]): LogInsightsQuery;
|
|
112
|
+
createLatencyAnalysisQuery(logGroupNames: string[]): LogInsightsQuery;
|
|
113
|
+
createTopErrorsQuery(logGroupNames: string[]): LogInsightsQuery;
|
|
114
|
+
getLogGroup(id: string): LogGroup | undefined;
|
|
115
|
+
listLogGroups(): LogGroup[];
|
|
116
|
+
getInsightsQuery(id: string): LogInsightsQuery | undefined;
|
|
117
|
+
listInsightsQueries(): LogInsightsQuery[];
|
|
118
|
+
generateLogGroupCF(group: LogGroup): any;
|
|
119
|
+
generateMetricFilterCF(logGroup: LogGroup, filter: MetricFilter): any;
|
|
120
|
+
generateSubscriptionFilterCF(filter: SubscriptionFilter): any;
|
|
121
|
+
generateQueryDefinitionCF(query: LogInsightsQuery): any;
|
|
122
|
+
createLogAggregation(logGroup: string, filters: Array<{ pattern: string; metric: string }>, retention?: any): {
|
|
123
|
+
id: string
|
|
124
|
+
logGroup: string
|
|
125
|
+
filters: Array<{ pattern: string; metric: string }>
|
|
126
|
+
retention: number
|
|
127
|
+
};
|
|
128
|
+
clear(): void;
|
|
129
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global metrics manager instance
|
|
3
|
+
*/
|
|
4
|
+
export declare const metricsManager: MetricsManager;
|
|
5
|
+
/**
|
|
6
|
+
* Custom CloudWatch Metrics
|
|
7
|
+
* Application and business metrics collection
|
|
8
|
+
*/
|
|
9
|
+
export declare interface MetricNamespace {
|
|
10
|
+
id: string
|
|
11
|
+
name: string
|
|
12
|
+
description?: string
|
|
13
|
+
metrics: CustomMetric[]
|
|
14
|
+
}
|
|
15
|
+
export declare interface CustomMetric {
|
|
16
|
+
id: string
|
|
17
|
+
name: string
|
|
18
|
+
namespace: string
|
|
19
|
+
unit: MetricUnit
|
|
20
|
+
dimensions?: MetricDimension[]
|
|
21
|
+
statisticValues?: MetricStatistic[]
|
|
22
|
+
alarms?: MetricAlarm[]
|
|
23
|
+
}
|
|
24
|
+
export declare interface MetricDimension {
|
|
25
|
+
name: string
|
|
26
|
+
value: string
|
|
27
|
+
}
|
|
28
|
+
export declare interface MetricStatistic {
|
|
29
|
+
sampleCount: number
|
|
30
|
+
sum: number
|
|
31
|
+
minimum: number
|
|
32
|
+
maximum: number
|
|
33
|
+
timestamp: Date
|
|
34
|
+
}
|
|
35
|
+
export declare interface MetricAlarm {
|
|
36
|
+
id: string
|
|
37
|
+
name: string
|
|
38
|
+
description?: string
|
|
39
|
+
comparisonOperator: 'GreaterThanThreshold' | 'GreaterThanOrEqualToThreshold' | 'LessThanThreshold' | 'LessThanOrEqualToThreshold'
|
|
40
|
+
evaluationPeriods: number
|
|
41
|
+
threshold: number
|
|
42
|
+
period: number
|
|
43
|
+
statistic: 'Average' | 'Sum' | 'Minimum' | 'Maximum' | 'SampleCount'
|
|
44
|
+
treatMissingData?: 'notBreaching' | 'breaching' | 'ignore' | 'missing'
|
|
45
|
+
actionsEnabled?: boolean
|
|
46
|
+
alarmActions?: string[]
|
|
47
|
+
okActions?: string[]
|
|
48
|
+
insufficientDataActions?: string[]
|
|
49
|
+
}
|
|
50
|
+
export type MetricUnit = | 'Seconds'
|
|
51
|
+
| 'Microseconds'
|
|
52
|
+
| 'Milliseconds'
|
|
53
|
+
| 'Bytes'
|
|
54
|
+
| 'Kilobytes'
|
|
55
|
+
| 'Megabytes'
|
|
56
|
+
| 'Gigabytes'
|
|
57
|
+
| 'Terabytes'
|
|
58
|
+
| 'Bits'
|
|
59
|
+
| 'Kilobits'
|
|
60
|
+
| 'Megabits'
|
|
61
|
+
| 'Gigabits'
|
|
62
|
+
| 'Terabits'
|
|
63
|
+
| 'Percent'
|
|
64
|
+
| 'Count'
|
|
65
|
+
| 'Bytes/Second'
|
|
66
|
+
| 'Kilobytes/Second'
|
|
67
|
+
| 'Megabytes/Second'
|
|
68
|
+
| 'Gigabytes/Second'
|
|
69
|
+
| 'Terabytes/Second'
|
|
70
|
+
| 'Bits/Second'
|
|
71
|
+
| 'Kilobits/Second'
|
|
72
|
+
| 'Megabits/Second'
|
|
73
|
+
| 'Gigabits/Second'
|
|
74
|
+
| 'Terabits/Second'
|
|
75
|
+
| 'Count/Second'
|
|
76
|
+
| 'None'
|
|
77
|
+
/**
|
|
78
|
+
* Metrics manager
|
|
79
|
+
*/
|
|
80
|
+
export declare class MetricsManager {
|
|
81
|
+
private namespaces: Map<string, MetricNamespace>;
|
|
82
|
+
private metrics: Map<string, CustomMetric>;
|
|
83
|
+
private namespaceCounter: any;
|
|
84
|
+
private metricCounter: any;
|
|
85
|
+
private alarmCounter: any;
|
|
86
|
+
createNamespace(namespace: Omit<MetricNamespace, 'id'>): MetricNamespace;
|
|
87
|
+
createMetric(metric: Omit<CustomMetric, 'id'>): CustomMetric;
|
|
88
|
+
createBusinessMetric(options: {
|
|
89
|
+
name: string
|
|
90
|
+
namespace: string
|
|
91
|
+
unit: MetricUnit
|
|
92
|
+
description?: string
|
|
93
|
+
}): CustomMetric;
|
|
94
|
+
createApplicationMetric(options: {
|
|
95
|
+
name: string
|
|
96
|
+
namespace: string
|
|
97
|
+
unit: MetricUnit
|
|
98
|
+
serviceName: string
|
|
99
|
+
}): CustomMetric;
|
|
100
|
+
createPerformanceMetric(options: {
|
|
101
|
+
name: string
|
|
102
|
+
namespace: string
|
|
103
|
+
operation: string
|
|
104
|
+
}): CustomMetric;
|
|
105
|
+
createErrorMetric(options: {
|
|
106
|
+
name: string
|
|
107
|
+
namespace: string
|
|
108
|
+
errorType: string
|
|
109
|
+
}): CustomMetric;
|
|
110
|
+
createAlarm(metricId: string, alarm: Omit<MetricAlarm, 'id'>): MetricAlarm;
|
|
111
|
+
createErrorRateAlarm(options: {
|
|
112
|
+
metricId: string
|
|
113
|
+
name: string
|
|
114
|
+
threshold: number // errors per minute
|
|
115
|
+
snsTopicArn?: string
|
|
116
|
+
}): MetricAlarm;
|
|
117
|
+
createLatencyAlarm(options: {
|
|
118
|
+
metricId: string
|
|
119
|
+
name: string
|
|
120
|
+
thresholdMs: number
|
|
121
|
+
snsTopicArn?: string
|
|
122
|
+
}): MetricAlarm;
|
|
123
|
+
createThroughputAlarm(options: {
|
|
124
|
+
metricId: string
|
|
125
|
+
name: string
|
|
126
|
+
minimumThreshold: number
|
|
127
|
+
snsTopicArn?: string
|
|
128
|
+
}): MetricAlarm;
|
|
129
|
+
createCompositeAlarm(options: {
|
|
130
|
+
name: string
|
|
131
|
+
description?: string
|
|
132
|
+
alarmRule: string
|
|
133
|
+
actionsEnabled?: boolean
|
|
134
|
+
alarmActions?: string[]
|
|
135
|
+
}): any;
|
|
136
|
+
getNamespace(id: string): MetricNamespace | undefined;
|
|
137
|
+
listNamespaces(): MetricNamespace[];
|
|
138
|
+
getMetric(id: string): CustomMetric | undefined;
|
|
139
|
+
listMetrics(): CustomMetric[];
|
|
140
|
+
generateAlarmCF(metric: CustomMetric, alarm: MetricAlarm): any;
|
|
141
|
+
generateCompositeAlarmCF(alarm: any): any;
|
|
142
|
+
generateDashboardWidget(metric: CustomMetric): any;
|
|
143
|
+
publishCustomMetric(namespace: string, name: string, value: number, dimensions?: Record<string, string>, unit?: string): {
|
|
144
|
+
id: string
|
|
145
|
+
namespace: string
|
|
146
|
+
name: string
|
|
147
|
+
dimensions: Record<string, string>
|
|
148
|
+
value: number
|
|
149
|
+
unit: string
|
|
150
|
+
timestamp: Date
|
|
151
|
+
};
|
|
152
|
+
clear(): void;
|
|
153
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global synthetics manager instance
|
|
3
|
+
*/
|
|
4
|
+
export declare const syntheticsManager: SyntheticsManager;
|
|
5
|
+
/**
|
|
6
|
+
* Synthetic Monitoring
|
|
7
|
+
* CloudWatch Synthetics Canaries for proactive monitoring
|
|
8
|
+
*/
|
|
9
|
+
export declare interface SyntheticCanary {
|
|
10
|
+
id: string
|
|
11
|
+
name: string
|
|
12
|
+
description?: string
|
|
13
|
+
runtimeVersion: string
|
|
14
|
+
handler: string
|
|
15
|
+
code: CanaryCode
|
|
16
|
+
schedule: CanarySchedule
|
|
17
|
+
runConfig?: CanaryRunConfig
|
|
18
|
+
vpcConfig?: VpcConfig
|
|
19
|
+
artifactS3Location: string
|
|
20
|
+
successRetentionPeriod?: number
|
|
21
|
+
failureRetentionPeriod?: number
|
|
22
|
+
alarms?: CanaryAlarm[]
|
|
23
|
+
}
|
|
24
|
+
export declare interface CanaryCode {
|
|
25
|
+
type: 'script' | 's3'
|
|
26
|
+
script?: string
|
|
27
|
+
s3Bucket?: string
|
|
28
|
+
s3Key?: string
|
|
29
|
+
s3Version?: string
|
|
30
|
+
}
|
|
31
|
+
export declare interface CanarySchedule {
|
|
32
|
+
expression: string
|
|
33
|
+
durationInSeconds?: number
|
|
34
|
+
}
|
|
35
|
+
export declare interface CanaryRunConfig {
|
|
36
|
+
timeoutInSeconds: number
|
|
37
|
+
memoryInMB: number
|
|
38
|
+
environmentVariables?: Record<string, string>
|
|
39
|
+
activeTracing?: boolean
|
|
40
|
+
}
|
|
41
|
+
export declare interface VpcConfig {
|
|
42
|
+
subnetIds: string[]
|
|
43
|
+
securityGroupIds: string[]
|
|
44
|
+
}
|
|
45
|
+
export declare interface CanaryAlarm {
|
|
46
|
+
id: string
|
|
47
|
+
name: string
|
|
48
|
+
metric: 'SuccessPercent' | 'Duration' | 'Failed'
|
|
49
|
+
threshold: number
|
|
50
|
+
evaluationPeriods: number
|
|
51
|
+
snsTopicArn?: string
|
|
52
|
+
}
|
|
53
|
+
export declare interface HeartbeatMonitor {
|
|
54
|
+
id: string
|
|
55
|
+
name: string
|
|
56
|
+
url: string
|
|
57
|
+
interval: number
|
|
58
|
+
timeout: number
|
|
59
|
+
expectedStatus?: number
|
|
60
|
+
}
|
|
61
|
+
export declare interface ApiMonitor {
|
|
62
|
+
id: string
|
|
63
|
+
name: string
|
|
64
|
+
baseUrl: string
|
|
65
|
+
endpoints: ApiEndpoint[]
|
|
66
|
+
headers?: Record<string, string>
|
|
67
|
+
interval: number
|
|
68
|
+
}
|
|
69
|
+
export declare interface ApiEndpoint {
|
|
70
|
+
path: string
|
|
71
|
+
method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'
|
|
72
|
+
expectedStatus: number
|
|
73
|
+
body?: any
|
|
74
|
+
assertions?: ApiAssertion[]
|
|
75
|
+
}
|
|
76
|
+
export declare interface ApiAssertion {
|
|
77
|
+
type: 'status' | 'header' | 'body' | 'latency'
|
|
78
|
+
field?: string
|
|
79
|
+
operator: 'equals' | 'contains' | 'lessThan' | 'greaterThan'
|
|
80
|
+
value: any
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Workflow step interface
|
|
84
|
+
*/
|
|
85
|
+
export declare interface WorkflowStep {
|
|
86
|
+
description: string
|
|
87
|
+
url: string
|
|
88
|
+
actions?: WorkflowAction[]
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Workflow action interface
|
|
92
|
+
*/
|
|
93
|
+
export declare interface WorkflowAction {
|
|
94
|
+
type: 'click' | 'type' | 'wait' | 'waitForSelector'
|
|
95
|
+
selector?: string
|
|
96
|
+
value?: string
|
|
97
|
+
duration?: number
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Synthetics manager
|
|
101
|
+
*/
|
|
102
|
+
export declare class SyntheticsManager {
|
|
103
|
+
private canaries: Map<string, SyntheticCanary>;
|
|
104
|
+
private heartbeats: Map<string, HeartbeatMonitor>;
|
|
105
|
+
private apiMonitors: Map<string, ApiMonitor>;
|
|
106
|
+
private canaryCounter: any;
|
|
107
|
+
private heartbeatCounter: any;
|
|
108
|
+
private apiMonitorCounter: any;
|
|
109
|
+
private alarmCounter: any;
|
|
110
|
+
static readonly RuntimeVersions: any;
|
|
111
|
+
createCanary(canary: Omit<SyntheticCanary, 'id'>): SyntheticCanary;
|
|
112
|
+
createHeartbeatCanary(options: {
|
|
113
|
+
name: string
|
|
114
|
+
url: string
|
|
115
|
+
interval: number // minutes
|
|
116
|
+
s3Bucket: string
|
|
117
|
+
}): SyntheticCanary;
|
|
118
|
+
createAPICanary(options: {
|
|
119
|
+
name: string
|
|
120
|
+
baseUrl: string
|
|
121
|
+
endpoints: ApiEndpoint[]
|
|
122
|
+
interval: number
|
|
123
|
+
s3Bucket: string
|
|
124
|
+
}): SyntheticCanary;
|
|
125
|
+
createVisualRegressionCanary(options: {
|
|
126
|
+
name: string
|
|
127
|
+
url: string
|
|
128
|
+
screenshotName: string
|
|
129
|
+
interval: number
|
|
130
|
+
s3Bucket: string
|
|
131
|
+
}): SyntheticCanary;
|
|
132
|
+
createWorkflowCanary(options: {
|
|
133
|
+
name: string
|
|
134
|
+
description: string
|
|
135
|
+
steps: WorkflowStep[]
|
|
136
|
+
interval: number
|
|
137
|
+
s3Bucket: string
|
|
138
|
+
}): SyntheticCanary;
|
|
139
|
+
private generateActionScript(action: WorkflowAction): string;
|
|
140
|
+
createAlarm(canaryId: string, alarm: Omit<CanaryAlarm, 'id'>): CanaryAlarm;
|
|
141
|
+
getCanary(id: string): SyntheticCanary | undefined;
|
|
142
|
+
listCanaries(): SyntheticCanary[];
|
|
143
|
+
generateCanaryCF(canary: SyntheticCanary): any;
|
|
144
|
+
generateCanaryRoleCF(): any;
|
|
145
|
+
clear(): void;
|
|
146
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global X-Ray manager instance
|
|
3
|
+
*/
|
|
4
|
+
export declare const xrayManager: XRayManager;
|
|
5
|
+
/**
|
|
6
|
+
* AWS X-Ray Integration
|
|
7
|
+
* Distributed tracing for microservices and serverless applications
|
|
8
|
+
*/
|
|
9
|
+
export declare interface XRayConfig {
|
|
10
|
+
id: string
|
|
11
|
+
name: string
|
|
12
|
+
serviceName: string
|
|
13
|
+
samplingRate: number
|
|
14
|
+
enableActiveTracing: boolean
|
|
15
|
+
segmentDocuments?: SegmentDocument[]
|
|
16
|
+
}
|
|
17
|
+
export declare interface SegmentDocument {
|
|
18
|
+
id: string
|
|
19
|
+
name: string
|
|
20
|
+
startTime: number
|
|
21
|
+
endTime?: number
|
|
22
|
+
subsegments?: SubSegment[]
|
|
23
|
+
annotations?: Record<string, string | number | boolean>
|
|
24
|
+
metadata?: Record<string, any>
|
|
25
|
+
http?: HttpData
|
|
26
|
+
aws?: AWSData
|
|
27
|
+
error?: boolean
|
|
28
|
+
fault?: boolean
|
|
29
|
+
throttle?: boolean
|
|
30
|
+
}
|
|
31
|
+
export declare interface SubSegment {
|
|
32
|
+
id: string
|
|
33
|
+
name: string
|
|
34
|
+
startTime: number
|
|
35
|
+
endTime?: number
|
|
36
|
+
namespace?: 'aws' | 'remote'
|
|
37
|
+
http?: HttpData
|
|
38
|
+
sql?: SqlData
|
|
39
|
+
annotations?: Record<string, string | number | boolean>
|
|
40
|
+
metadata?: Record<string, any>
|
|
41
|
+
}
|
|
42
|
+
export declare interface HttpData {
|
|
43
|
+
request?: {
|
|
44
|
+
method?: string
|
|
45
|
+
url?: string
|
|
46
|
+
userAgent?: string
|
|
47
|
+
clientIp?: string
|
|
48
|
+
}
|
|
49
|
+
response?: {
|
|
50
|
+
status?: number
|
|
51
|
+
contentLength?: number
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
export declare interface AWSData {
|
|
55
|
+
accountId?: string
|
|
56
|
+
operation?: string
|
|
57
|
+
region?: string
|
|
58
|
+
requestId?: string
|
|
59
|
+
queueUrl?: string
|
|
60
|
+
tableName?: string
|
|
61
|
+
}
|
|
62
|
+
export declare interface SqlData {
|
|
63
|
+
url?: string
|
|
64
|
+
preparation?: 'statement' | 'call'
|
|
65
|
+
databaseType?: string
|
|
66
|
+
databaseVersion?: string
|
|
67
|
+
driverVersion?: string
|
|
68
|
+
user?: string
|
|
69
|
+
sanitizedQuery?: string
|
|
70
|
+
}
|
|
71
|
+
export declare interface SamplingRule {
|
|
72
|
+
id: string
|
|
73
|
+
ruleName: string
|
|
74
|
+
priority: number
|
|
75
|
+
fixedRate: number
|
|
76
|
+
reservoirSize: number
|
|
77
|
+
serviceName: string
|
|
78
|
+
serviceType: string
|
|
79
|
+
host: string
|
|
80
|
+
httpMethod: string
|
|
81
|
+
urlPath: string
|
|
82
|
+
version: number
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* X-Ray manager
|
|
86
|
+
*/
|
|
87
|
+
export declare class XRayManager {
|
|
88
|
+
private configs: Map<string, XRayConfig>;
|
|
89
|
+
private samplingRules: Map<string, SamplingRule>;
|
|
90
|
+
private configCounter: any;
|
|
91
|
+
private ruleCounter: any;
|
|
92
|
+
createConfig(config: Omit<XRayConfig, 'id'>): XRayConfig;
|
|
93
|
+
createLambdaConfig(options: {
|
|
94
|
+
functionName: string
|
|
95
|
+
samplingRate?: number
|
|
96
|
+
}): XRayConfig;
|
|
97
|
+
createECSConfig(options: {
|
|
98
|
+
serviceName: string
|
|
99
|
+
clusterName: string
|
|
100
|
+
samplingRate?: number
|
|
101
|
+
}): XRayConfig;
|
|
102
|
+
createAPIGatewayConfig(options: {
|
|
103
|
+
apiName: string
|
|
104
|
+
stage: string
|
|
105
|
+
samplingRate?: number
|
|
106
|
+
}): XRayConfig;
|
|
107
|
+
createSamplingRule(rule: Omit<SamplingRule, 'id'>): SamplingRule;
|
|
108
|
+
createHighPrioritySamplingRule(options: {
|
|
109
|
+
ruleName: string
|
|
110
|
+
serviceName: string
|
|
111
|
+
urlPath: string
|
|
112
|
+
}): SamplingRule;
|
|
113
|
+
createErrorSamplingRule(serviceName: string): SamplingRule;
|
|
114
|
+
createDefaultSamplingRule(serviceName: string, samplingRate?: number): SamplingRule;
|
|
115
|
+
getConfig(id: string): XRayConfig | undefined;
|
|
116
|
+
listConfigs(): XRayConfig[];
|
|
117
|
+
getSamplingRule(id: string): SamplingRule | undefined;
|
|
118
|
+
listSamplingRules(): SamplingRule[];
|
|
119
|
+
generateLambdaXRayCF(config: XRayConfig): any;
|
|
120
|
+
generateAPIGatewayXRayCF(config: XRayConfig): any;
|
|
121
|
+
generateECSXRaySidecarCF(): any;
|
|
122
|
+
generateSamplingRuleCF(rule: SamplingRule): any;
|
|
123
|
+
createTrace(traceId: string, spans: Array<{ spanId: string; name: string; duration: number; tags: Record<string, any> }>): {
|
|
124
|
+
id: string
|
|
125
|
+
traceId: string
|
|
126
|
+
spans: Array<{ spanId: string; name: string; duration: number; tags: Record<string, any> }>
|
|
127
|
+
};
|
|
128
|
+
clear(): void;
|
|
129
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Call Analytics and Reporting
|
|
3
|
+
*
|
|
4
|
+
* Provides call metrics, reporting, and insights
|
|
5
|
+
*/
|
|
6
|
+
export declare interface CallMetrics {
|
|
7
|
+
period: string
|
|
8
|
+
totalCalls: number
|
|
9
|
+
answeredCalls: number
|
|
10
|
+
missedCalls: number
|
|
11
|
+
abandonedCalls: number
|
|
12
|
+
voicemails: number
|
|
13
|
+
averageWaitTime: number
|
|
14
|
+
averageHandleTime: number
|
|
15
|
+
averageTalkTime: number
|
|
16
|
+
serviceLevel: number
|
|
17
|
+
abandonRate: number
|
|
18
|
+
answerRate: number
|
|
19
|
+
}
|
|
20
|
+
export declare interface AgentMetrics {
|
|
21
|
+
agentId: string
|
|
22
|
+
agentName: string
|
|
23
|
+
callsHandled: number
|
|
24
|
+
averageHandleTime: number
|
|
25
|
+
averageTalkTime: number
|
|
26
|
+
averageHoldTime: number
|
|
27
|
+
occupancy: number
|
|
28
|
+
availability: number
|
|
29
|
+
}
|
|
30
|
+
export declare interface QueueMetrics {
|
|
31
|
+
queueId: string
|
|
32
|
+
queueName: string
|
|
33
|
+
callsInQueue: number
|
|
34
|
+
oldestCallWaitTime: number
|
|
35
|
+
averageWaitTime: number
|
|
36
|
+
agentsAvailable: number
|
|
37
|
+
agentsOnCall: number
|
|
38
|
+
}
|
|
39
|
+
export declare interface CallInsight {
|
|
40
|
+
callId: string
|
|
41
|
+
sentiment: 'positive' | 'neutral' | 'negative'
|
|
42
|
+
topics: string[]
|
|
43
|
+
keywords: string[]
|
|
44
|
+
issues: string[]
|
|
45
|
+
resolution: boolean
|
|
46
|
+
customerSatisfaction?: number
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Call Analytics Module
|
|
50
|
+
*/
|
|
51
|
+
export declare class CallAnalytics {
|
|
52
|
+
static MetricsAggregatorCode: any;
|
|
53
|
+
static QueueMetricsCode: any;
|
|
54
|
+
static createMetricsTable(config: { slug: string }): Record<string, any>;
|
|
55
|
+
static createMetricsAggregatorLambda(config: {
|
|
56
|
+
slug: string
|
|
57
|
+
roleArn: string
|
|
58
|
+
callLogTable: string
|
|
59
|
+
metricsTable: string
|
|
60
|
+
}): Record<string, any>;
|
|
61
|
+
static createMetricsSchedule(config: {
|
|
62
|
+
slug: string
|
|
63
|
+
lambdaArn: string
|
|
64
|
+
}): Record<string, any>;
|
|
65
|
+
}
|
|
66
|
+
export default CallAnalytics;
|