@robhan-cdk-lib/aws_aps 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +6933 -0
- package/API.md +3389 -0
- package/LICENSE +19 -0
- package/README.md +64 -0
- package/lib/index.d.ts +6 -0
- package/lib/index.js +23 -0
- package/lib/rule-groups-namespace-base.d.ts +39 -0
- package/lib/rule-groups-namespace-base.js +12 -0
- package/lib/rule-groups-namespace.d.ts +87 -0
- package/lib/rule-groups-namespace.js +83 -0
- package/lib/scraper-base.d.ts +146 -0
- package/lib/scraper-base.js +15 -0
- package/lib/scraper.d.ts +111 -0
- package/lib/scraper.js +108 -0
- package/lib/validation/rule-groups-namespace-base.d.ts +21 -0
- package/lib/validation/rule-groups-namespace-base.js +46 -0
- package/lib/validation/scraper-base.d.ts +7 -0
- package/lib/validation/scraper-base.js +147 -0
- package/lib/validation/workspace-base.d.ts +11 -0
- package/lib/validation/workspace-base.js +260 -0
- package/lib/workspace-base.d.ts +217 -0
- package/lib/workspace-base.js +15 -0
- package/lib/workspace.d.ts +140 -0
- package/lib/workspace.js +102 -0
- package/package.json +156 -0
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { IKey } from 'aws-cdk-lib/aws-kms';
|
|
2
|
+
import { Construct } from 'constructs';
|
|
3
|
+
import { IWorkspace, LoggingConfiguration, QueryLoggingConfiguration, WorkspaceBase, WorkspaceConfiguration } from './workspace-base';
|
|
4
|
+
/**
|
|
5
|
+
* Properties for creating an Amazon Managed Service for Prometheus Workspace.
|
|
6
|
+
*/
|
|
7
|
+
export interface WorkspaceProps {
|
|
8
|
+
/**
|
|
9
|
+
* The alert manager definition, a YAML configuration for the alert manager in your Amazon
|
|
10
|
+
* Managed Service for Prometheus workspace.
|
|
11
|
+
*/
|
|
12
|
+
readonly alertManagerDefinition?: string;
|
|
13
|
+
/**
|
|
14
|
+
* The alias that is assigned to this workspace to help identify it. It does not need to be
|
|
15
|
+
* unique.
|
|
16
|
+
*
|
|
17
|
+
* 0 to 100 characters
|
|
18
|
+
*/
|
|
19
|
+
readonly alias?: string;
|
|
20
|
+
/**
|
|
21
|
+
* The customer managed AWS KMS key to use for encrypting data within your workspace.
|
|
22
|
+
*/
|
|
23
|
+
readonly kmsKey?: IKey;
|
|
24
|
+
/**
|
|
25
|
+
* Contains information about the current rules and alerting logging configuration for the
|
|
26
|
+
* workspace.
|
|
27
|
+
*
|
|
28
|
+
* Note: These logging configurations are only for rules and alerting logs.
|
|
29
|
+
*/
|
|
30
|
+
readonly loggingConfiguration?: LoggingConfiguration;
|
|
31
|
+
/**
|
|
32
|
+
* The definition of logging configuration in an Amazon Managed Service for Prometheus workspace.
|
|
33
|
+
*/
|
|
34
|
+
readonly queryLoggingConfiguration?: QueryLoggingConfiguration;
|
|
35
|
+
/**
|
|
36
|
+
* Use this structure to define label sets and the ingestion limits for time series that match
|
|
37
|
+
* label sets, and to specify the retention period of the workspace.
|
|
38
|
+
*/
|
|
39
|
+
readonly workspaceConfiguration?: WorkspaceConfiguration;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Properties for importing an Amazon Managed Service for Prometheus Workspace from attributes.
|
|
43
|
+
*/
|
|
44
|
+
export interface WorkspaceAttributes {
|
|
45
|
+
/**
|
|
46
|
+
* The alert manager definition, a YAML configuration for the alert manager in your Amazon
|
|
47
|
+
* Managed Service for Prometheus workspace.
|
|
48
|
+
*/
|
|
49
|
+
readonly alertManagerDefinition?: string;
|
|
50
|
+
/**
|
|
51
|
+
* The alias that is assigned to this workspace to help identify it. It does not need to be
|
|
52
|
+
* unique.
|
|
53
|
+
*/
|
|
54
|
+
readonly alias?: string;
|
|
55
|
+
/**
|
|
56
|
+
* The customer managed AWS KMS key to use for encrypting data within your workspace.
|
|
57
|
+
*/
|
|
58
|
+
readonly kmsKey?: IKey;
|
|
59
|
+
/**
|
|
60
|
+
* Contains information about the current rules and alerting logging configuration for the
|
|
61
|
+
* workspace.
|
|
62
|
+
*
|
|
63
|
+
* Note: These logging configurations are only for rules and alerting logs.
|
|
64
|
+
*/
|
|
65
|
+
readonly loggingConfiguration?: LoggingConfiguration;
|
|
66
|
+
/**
|
|
67
|
+
* The definition of logging configuration in an Amazon Managed Service for Prometheus workspace.
|
|
68
|
+
*/
|
|
69
|
+
readonly queryLoggingConfiguration?: QueryLoggingConfiguration;
|
|
70
|
+
/**
|
|
71
|
+
* Use this structure to define label sets and the ingestion limits for time series that match
|
|
72
|
+
* label sets, and to specify the retention period of the workspace.
|
|
73
|
+
*/
|
|
74
|
+
readonly workspaceConfiguration?: WorkspaceConfiguration;
|
|
75
|
+
/**
|
|
76
|
+
* The arn of this workspace.
|
|
77
|
+
*/
|
|
78
|
+
readonly workspaceArn: string;
|
|
79
|
+
}
|
|
80
|
+
export declare class Workspace extends WorkspaceBase {
|
|
81
|
+
static isWorkspace(x: any): x is Workspace;
|
|
82
|
+
static frommWorkspaceAttributes(scope: Construct, id: string, attrs: WorkspaceAttributes): IWorkspace;
|
|
83
|
+
/**
|
|
84
|
+
* Validates all workspace properties.
|
|
85
|
+
*
|
|
86
|
+
* @param props - The workspace properties to validate
|
|
87
|
+
* @returns An array of error messages if validation fails, or an empty array if valid
|
|
88
|
+
*
|
|
89
|
+
* This method aggregates validation results from all individual property validators.
|
|
90
|
+
* It throws an error if props is not an object.
|
|
91
|
+
*/
|
|
92
|
+
private static validateProps;
|
|
93
|
+
/**
|
|
94
|
+
* The alert manager definition, a YAML configuration for the alert manager in your Amazon
|
|
95
|
+
* Managed Service for Prometheus workspace.
|
|
96
|
+
*/
|
|
97
|
+
readonly alertManagerDefinition?: string;
|
|
98
|
+
/**
|
|
99
|
+
* The alias that is assigned to this workspace to help identify it. It does not need to be
|
|
100
|
+
* unique.
|
|
101
|
+
*/
|
|
102
|
+
readonly alias?: string;
|
|
103
|
+
/**
|
|
104
|
+
* The customer managed AWS KMS key to use for encrypting data within your workspace.
|
|
105
|
+
*/
|
|
106
|
+
readonly kmsKey?: IKey;
|
|
107
|
+
/**
|
|
108
|
+
* Contains information about the current rules and alerting logging configuration for the
|
|
109
|
+
* workspace.
|
|
110
|
+
*
|
|
111
|
+
* Note: These logging configurations are only for rules and alerting logs.
|
|
112
|
+
*/
|
|
113
|
+
readonly loggingConfiguration?: LoggingConfiguration;
|
|
114
|
+
/**
|
|
115
|
+
* The definition of logging configuration in an Amazon Managed Service for Prometheus workspace.
|
|
116
|
+
*/
|
|
117
|
+
readonly queryLoggingConfiguration?: QueryLoggingConfiguration;
|
|
118
|
+
/**
|
|
119
|
+
* Use this structure to define label sets and the ingestion limits for time series that match
|
|
120
|
+
* label sets, and to specify the retention period of the workspace.
|
|
121
|
+
*/
|
|
122
|
+
readonly workspaceConfiguration?: WorkspaceConfiguration;
|
|
123
|
+
/**
|
|
124
|
+
* The underlying CloudFormation resource.
|
|
125
|
+
*/
|
|
126
|
+
private readonly workspace;
|
|
127
|
+
/**
|
|
128
|
+
* The unique ID for the workspace.
|
|
129
|
+
*/
|
|
130
|
+
readonly workspaceId: string;
|
|
131
|
+
/**
|
|
132
|
+
* The ARN of the workspace.
|
|
133
|
+
*/
|
|
134
|
+
readonly workspaceArn: string;
|
|
135
|
+
/**
|
|
136
|
+
* The Prometheus endpoint available for this workspace..
|
|
137
|
+
*/
|
|
138
|
+
readonly prometheusEndpoint: string;
|
|
139
|
+
constructor(scope: Construct, id: string, props: WorkspaceProps);
|
|
140
|
+
}
|
package/lib/workspace.js
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Workspace = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const aws_aps_1 = require("aws-cdk-lib/aws-aps");
|
|
7
|
+
const workspace_base_1 = require("./validation/workspace-base");
|
|
8
|
+
const workspace_base_2 = require("./workspace-base");
|
|
9
|
+
const IS_WORKSPACE = Symbol.for('@robhan-cdk-lib/aws_aps.Workspace');
|
|
10
|
+
class Workspace extends workspace_base_2.WorkspaceBase {
|
|
11
|
+
static isWorkspace(x) {
|
|
12
|
+
return IS_WORKSPACE in x;
|
|
13
|
+
}
|
|
14
|
+
static frommWorkspaceAttributes(scope, id, attrs) {
|
|
15
|
+
class Import extends workspace_base_2.WorkspaceBase {
|
|
16
|
+
constructor(attributes) {
|
|
17
|
+
super(scope, id);
|
|
18
|
+
this.alertManagerDefinition = attributes.alertManagerDefinition;
|
|
19
|
+
this.alias = attributes.alias;
|
|
20
|
+
this.kmsKey = attributes.kmsKey;
|
|
21
|
+
this.loggingConfiguration = attributes.loggingConfiguration;
|
|
22
|
+
this.queryLoggingConfiguration = attributes.queryLoggingConfiguration;
|
|
23
|
+
this.workspaceConfiguration = attributes.workspaceConfiguration;
|
|
24
|
+
this.workspaceId = this.getWorkspaceId(attributes.workspaceArn);
|
|
25
|
+
this.workspaceArn = attributes.workspaceArn;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return new Import(attrs);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Validates all workspace properties.
|
|
32
|
+
*
|
|
33
|
+
* @param props - The workspace properties to validate
|
|
34
|
+
* @returns An array of error messages if validation fails, or an empty array if valid
|
|
35
|
+
*
|
|
36
|
+
* This method aggregates validation results from all individual property validators.
|
|
37
|
+
* It throws an error if props is not an object.
|
|
38
|
+
*/
|
|
39
|
+
static validateProps(props) {
|
|
40
|
+
const errors = [];
|
|
41
|
+
if (!props || typeof props !== 'object') {
|
|
42
|
+
throw new Error('Workspace constructor properties must be an object');
|
|
43
|
+
}
|
|
44
|
+
const workspaceProps = props;
|
|
45
|
+
if (workspaceProps.alertManagerDefinition !== undefined) {
|
|
46
|
+
errors.push(...(0, workspace_base_1.validateAlertManagerDefinition)(workspaceProps.alertManagerDefinition).map((e) => `alertManagerDefinition: ${e}`));
|
|
47
|
+
}
|
|
48
|
+
if (workspaceProps.alias !== undefined) {
|
|
49
|
+
errors.push(...(0, workspace_base_1.validateAlias)(workspaceProps.alias).map((e) => `alias: ${e}`));
|
|
50
|
+
}
|
|
51
|
+
if (workspaceProps.loggingConfiguration !== undefined) {
|
|
52
|
+
errors.push(...(0, workspace_base_1.validateLoggingConfiguration)(workspaceProps.loggingConfiguration).map((e) => `loggingConfiguration: ${e}`));
|
|
53
|
+
}
|
|
54
|
+
if (workspaceProps.queryLoggingConfiguration !== undefined) {
|
|
55
|
+
errors.push(...(0, workspace_base_1.validateQueryLoggingConfiguration)(workspaceProps.queryLoggingConfiguration).map((e) => `queryLoggingConfiguration: ${e}`));
|
|
56
|
+
}
|
|
57
|
+
if (workspaceProps.workspaceConfiguration !== undefined) {
|
|
58
|
+
errors.push(...(0, workspace_base_1.validateWorkspaceConfiguration)(workspaceProps.workspaceConfiguration).map((e) => `workspaceConfiguration: ${e}`));
|
|
59
|
+
}
|
|
60
|
+
return errors;
|
|
61
|
+
}
|
|
62
|
+
constructor(scope, id, props) {
|
|
63
|
+
super(scope, id);
|
|
64
|
+
Object.defineProperty(this, IS_WORKSPACE, { value: true });
|
|
65
|
+
const errors = Workspace.validateProps(props);
|
|
66
|
+
if (errors.length > 0) {
|
|
67
|
+
throw new Error(`Invalid props:\n${errors.join('\n')}`);
|
|
68
|
+
}
|
|
69
|
+
this.alertManagerDefinition = props.alertManagerDefinition;
|
|
70
|
+
this.alias = props.alias;
|
|
71
|
+
this.kmsKey = props.kmsKey;
|
|
72
|
+
this.loggingConfiguration = props.loggingConfiguration;
|
|
73
|
+
this.queryLoggingConfiguration = props.queryLoggingConfiguration;
|
|
74
|
+
this.workspaceConfiguration = props.workspaceConfiguration;
|
|
75
|
+
let cfnWorkspaceProps = {
|
|
76
|
+
alertManagerDefinition: props.alertManagerDefinition,
|
|
77
|
+
alias: props.alias,
|
|
78
|
+
kmsKeyArn: props.kmsKey?.keyArn,
|
|
79
|
+
loggingConfiguration: props.loggingConfiguration && props.loggingConfiguration.logGroup ? {
|
|
80
|
+
logGroupArn: props.loggingConfiguration.logGroup.logGroupArn,
|
|
81
|
+
} : undefined,
|
|
82
|
+
queryLoggingConfiguration: props.queryLoggingConfiguration ? {
|
|
83
|
+
destinations: props.queryLoggingConfiguration.destinations.map((d) => ({
|
|
84
|
+
cloudWatchLogs: {
|
|
85
|
+
logGroupArn: d.cloudWatchLogs.logGroup.logGroupArn,
|
|
86
|
+
},
|
|
87
|
+
filters: d.filters,
|
|
88
|
+
})),
|
|
89
|
+
} : undefined,
|
|
90
|
+
workspaceConfiguration: props.workspaceConfiguration,
|
|
91
|
+
};
|
|
92
|
+
this.workspace = new aws_aps_1.CfnWorkspace(this, 'Resource', cfnWorkspaceProps);
|
|
93
|
+
this.node.defaultChild = this.workspace;
|
|
94
|
+
this.workspaceId = this.workspace.attrWorkspaceId;
|
|
95
|
+
this.workspaceArn = this.workspace.attrArn;
|
|
96
|
+
this.prometheusEndpoint = this.workspace.attrPrometheusEndpoint;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.Workspace = Workspace;
|
|
100
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
101
|
+
Workspace[_a] = { fqn: "@robhan-cdk-lib/aws_aps.Workspace", version: "0.0.0" };
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3dvcmtzcGFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlEQUFzRTtBQUd0RSxnRUFBNkw7QUFDN0wscURBQXNJO0FBMkZ0SSxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7QUFFckUsTUFBYSxTQUFVLFNBQVEsOEJBQWE7SUFDbkMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFNO1FBQzlCLE9BQU8sWUFBWSxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU0sTUFBTSxDQUFDLHdCQUF3QixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCO1FBQzdGLE1BQU0sTUFBTyxTQUFRLDhCQUFhO1lBU2hDLFlBQVksVUFBK0I7Z0JBQ3pDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBRWpCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxVQUFVLENBQUMsc0JBQXNCLENBQUM7Z0JBQ2hFLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztnQkFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsVUFBVSxDQUFDLG9CQUFvQixDQUFDO2dCQUM1RCxJQUFJLENBQUMseUJBQXlCLEdBQUcsVUFBVSxDQUFDLHlCQUF5QixDQUFDO2dCQUN0RSxJQUFJLENBQUMsc0JBQXNCLEdBQUcsVUFBVSxDQUFDLHNCQUFzQixDQUFDO2dCQUNoRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNoRSxJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUM7WUFFOUMsQ0FBQztTQUNGO1FBQ0QsT0FBTyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQWM7UUFDekMsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO1FBRTVCLElBQUksQ0FBQyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDeEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7UUFDRCxNQUFNLGNBQWMsR0FBRyxLQUF1QixDQUFDO1FBRS9DLElBQ0UsY0FBYyxDQUFDLHNCQUFzQixLQUFLLFNBQVMsRUFDbkQsQ0FBQztZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFBLCtDQUE4QixFQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsMkJBQTJCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuSSxDQUFDO1FBRUQsSUFDRSxjQUFjLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFDbEMsQ0FBQztZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFBLDhCQUFhLEVBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEYsQ0FBQztRQUVELElBQ0UsY0FBYyxDQUFDLG9CQUFvQixLQUFLLFNBQVMsRUFDakQsQ0FBQztZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFBLDZDQUE0QixFQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMseUJBQXlCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3SCxDQUFDO1FBRUQsSUFDRSxjQUFjLENBQUMseUJBQXlCLEtBQUssU0FBUyxFQUN0RCxDQUFDO1lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUEsa0RBQWlDLEVBQUMsY0FBYyxDQUFDLHlCQUF5QixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVJLENBQUM7UUFFRCxJQUNFLGNBQWMsQ0FBQyxzQkFBc0IsS0FBSyxTQUFTLEVBQ25ELENBQUM7WUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBQSwrQ0FBOEIsRUFBQyxjQUFjLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLDJCQUEyQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkksQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUEwREQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFxQjtRQUM3RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTNELE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUMsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFFRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDLHNCQUFzQixDQUFDO1FBQzNELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQztRQUN2RCxJQUFJLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFDLHlCQUF5QixDQUFDO1FBQ2pFLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUMsc0JBQXNCLENBQUM7UUFFM0QsSUFBSSxpQkFBaUIsR0FBc0I7WUFDekMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLHNCQUFzQjtZQUNwRCxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTTtZQUMvQixvQkFBb0IsRUFBRSxLQUFLLENBQUMsb0JBQW9CLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hGLFdBQVcsRUFBRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLFdBQVc7YUFDN0QsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNiLHlCQUF5QixFQUFFLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7Z0JBQzNELFlBQVksRUFBRSxLQUFLLENBQUMseUJBQXlCLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDckUsY0FBYyxFQUFFO3dCQUNkLFdBQVcsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxXQUFXO3FCQUNuRDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87aUJBQ25CLENBQUMsQ0FBQzthQUNKLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDYixzQkFBc0IsRUFBRSxLQUFLLENBQUMsc0JBQXNCO1NBRXJELENBQUM7UUFFRixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksc0JBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUV4QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDO1FBQ2xELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFDM0MsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUM7SUFDbEUsQ0FBQzs7QUFyTEgsOEJBc0xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuV29ya3NwYWNlLCBDZm5Xb3Jrc3BhY2VQcm9wcyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcHMnO1xuaW1wb3J0IHsgSUtleSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1rbXMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyB2YWxpZGF0ZUFsZXJ0TWFuYWdlckRlZmluaXRpb24sIHZhbGlkYXRlQWxpYXMsIHZhbGlkYXRlTG9nZ2luZ0NvbmZpZ3VyYXRpb24sIHZhbGlkYXRlUXVlcnlMb2dnaW5nQ29uZmlndXJhdGlvbiwgdmFsaWRhdGVXb3Jrc3BhY2VDb25maWd1cmF0aW9uIH0gZnJvbSAnLi92YWxpZGF0aW9uL3dvcmtzcGFjZS1iYXNlJztcbmltcG9ydCB7IElXb3Jrc3BhY2UsIExvZ2dpbmdDb25maWd1cmF0aW9uLCBRdWVyeUxvZ2dpbmdDb25maWd1cmF0aW9uLCBXb3Jrc3BhY2VCYXNlLCBXb3Jrc3BhY2VDb25maWd1cmF0aW9uIH0gZnJvbSAnLi93b3Jrc3BhY2UtYmFzZSc7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYW4gQW1hem9uIE1hbmFnZWQgU2VydmljZSBmb3IgUHJvbWV0aGV1cyBXb3Jrc3BhY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV29ya3NwYWNlUHJvcHMge1xuICAvKipcbiAgICogVGhlIGFsZXJ0IG1hbmFnZXIgZGVmaW5pdGlvbiwgYSBZQU1MIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBhbGVydCBtYW5hZ2VyIGluIHlvdXIgQW1hem9uXG4gICAqIE1hbmFnZWQgU2VydmljZSBmb3IgUHJvbWV0aGV1cyB3b3Jrc3BhY2UuXG4gICAqL1xuICByZWFkb25seSBhbGVydE1hbmFnZXJEZWZpbml0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYWxpYXMgdGhhdCBpcyBhc3NpZ25lZCB0byB0aGlzIHdvcmtzcGFjZSB0byBoZWxwIGlkZW50aWZ5IGl0LiBJdCBkb2VzIG5vdCBuZWVkIHRvIGJlXG4gICAqIHVuaXF1ZS5cbiAgICpcbiAgICogMCB0byAxMDAgY2hhcmFjdGVyc1xuICAgKi9cbiAgcmVhZG9ubHkgYWxpYXM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXN0b21lciBtYW5hZ2VkIEFXUyBLTVMga2V5IHRvIHVzZSBmb3IgZW5jcnlwdGluZyBkYXRhIHdpdGhpbiB5b3VyIHdvcmtzcGFjZS5cbiAgICovXG4gIHJlYWRvbmx5IGttc0tleT86IElLZXk7XG5cbiAgLyoqXG4gICAqIENvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50IHJ1bGVzIGFuZCBhbGVydGluZyBsb2dnaW5nIGNvbmZpZ3VyYXRpb24gZm9yIHRoZVxuICAgKiB3b3Jrc3BhY2UuXG4gICAqXG4gICAqIE5vdGU6IFRoZXNlIGxvZ2dpbmcgY29uZmlndXJhdGlvbnMgYXJlIG9ubHkgZm9yIHJ1bGVzIGFuZCBhbGVydGluZyBsb2dzLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nZ2luZ0NvbmZpZ3VyYXRpb24/OiBMb2dnaW5nQ29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGRlZmluaXRpb24gb2YgbG9nZ2luZyBjb25maWd1cmF0aW9uIGluIGFuIEFtYXpvbiBNYW5hZ2VkIFNlcnZpY2UgZm9yIFByb21ldGhldXMgd29ya3NwYWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgcXVlcnlMb2dnaW5nQ29uZmlndXJhdGlvbj86IFF1ZXJ5TG9nZ2luZ0NvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHN0cnVjdHVyZSB0byBkZWZpbmUgbGFiZWwgc2V0cyBhbmQgdGhlIGluZ2VzdGlvbiBsaW1pdHMgZm9yIHRpbWUgc2VyaWVzIHRoYXQgbWF0Y2hcbiAgICogbGFiZWwgc2V0cywgYW5kIHRvIHNwZWNpZnkgdGhlIHJldGVudGlvbiBwZXJpb2Qgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICovXG4gIHJlYWRvbmx5IHdvcmtzcGFjZUNvbmZpZ3VyYXRpb24/OiBXb3Jrc3BhY2VDb25maWd1cmF0aW9uO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGltcG9ydGluZyBhbiBBbWF6b24gTWFuYWdlZCBTZXJ2aWNlIGZvciBQcm9tZXRoZXVzIFdvcmtzcGFjZSBmcm9tIGF0dHJpYnV0ZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV29ya3NwYWNlQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgYWxlcnQgbWFuYWdlciBkZWZpbml0aW9uLCBhIFlBTUwgY29uZmlndXJhdGlvbiBmb3IgdGhlIGFsZXJ0IG1hbmFnZXIgaW4geW91ciBBbWF6b25cbiAgICogTWFuYWdlZCBTZXJ2aWNlIGZvciBQcm9tZXRoZXVzIHdvcmtzcGFjZS5cbiAgICovXG4gIHJlYWRvbmx5IGFsZXJ0TWFuYWdlckRlZmluaXRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhbGlhcyB0aGF0IGlzIGFzc2lnbmVkIHRvIHRoaXMgd29ya3NwYWNlIHRvIGhlbHAgaWRlbnRpZnkgaXQuIEl0IGRvZXMgbm90IG5lZWQgdG8gYmVcbiAgICogdW5pcXVlLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxpYXM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXN0b21lciBtYW5hZ2VkIEFXUyBLTVMga2V5IHRvIHVzZSBmb3IgZW5jcnlwdGluZyBkYXRhIHdpdGhpbiB5b3VyIHdvcmtzcGFjZS5cbiAgICovXG4gIHJlYWRvbmx5IGttc0tleT86IElLZXk7XG5cbiAgLyoqXG4gICAqIENvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50IHJ1bGVzIGFuZCBhbGVydGluZyBsb2dnaW5nIGNvbmZpZ3VyYXRpb24gZm9yIHRoZVxuICAgKiB3b3Jrc3BhY2UuXG4gICAqXG4gICAqIE5vdGU6IFRoZXNlIGxvZ2dpbmcgY29uZmlndXJhdGlvbnMgYXJlIG9ubHkgZm9yIHJ1bGVzIGFuZCBhbGVydGluZyBsb2dzLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nZ2luZ0NvbmZpZ3VyYXRpb24/OiBMb2dnaW5nQ29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGRlZmluaXRpb24gb2YgbG9nZ2luZyBjb25maWd1cmF0aW9uIGluIGFuIEFtYXpvbiBNYW5hZ2VkIFNlcnZpY2UgZm9yIFByb21ldGhldXMgd29ya3NwYWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgcXVlcnlMb2dnaW5nQ29uZmlndXJhdGlvbj86IFF1ZXJ5TG9nZ2luZ0NvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHN0cnVjdHVyZSB0byBkZWZpbmUgbGFiZWwgc2V0cyBhbmQgdGhlIGluZ2VzdGlvbiBsaW1pdHMgZm9yIHRpbWUgc2VyaWVzIHRoYXQgbWF0Y2hcbiAgICogbGFiZWwgc2V0cywgYW5kIHRvIHNwZWNpZnkgdGhlIHJldGVudGlvbiBwZXJpb2Qgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICovXG4gIHJlYWRvbmx5IHdvcmtzcGFjZUNvbmZpZ3VyYXRpb24/OiBXb3Jrc3BhY2VDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgYXJuIG9mIHRoaXMgd29ya3NwYWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgd29ya3NwYWNlQXJuOiBzdHJpbmc7XG59XG5cbmNvbnN0IElTX1dPUktTUEFDRSA9IFN5bWJvbC5mb3IoJ0Byb2JoYW4tY2RrLWxpYi9hd3NfYXBzLldvcmtzcGFjZScpO1xuXG5leHBvcnQgY2xhc3MgV29ya3NwYWNlIGV4dGVuZHMgV29ya3NwYWNlQmFzZSB7XG4gIHB1YmxpYyBzdGF0aWMgaXNXb3Jrc3BhY2UoeDogYW55KTogeCBpcyBXb3Jrc3BhY2Uge1xuICAgIHJldHVybiBJU19XT1JLU1BBQ0UgaW4geDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZnJvbW1Xb3Jrc3BhY2VBdHRyaWJ1dGVzKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGF0dHJzOiBXb3Jrc3BhY2VBdHRyaWJ1dGVzKTogSVdvcmtzcGFjZSB7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgV29ya3NwYWNlQmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgYWxlcnRNYW5hZ2VyRGVmaW5pdGlvbj86IHN0cmluZztcbiAgICAgIHB1YmxpYyByZWFkb25seSBhbGlhcz86IHN0cmluZztcbiAgICAgIHB1YmxpYyByZWFkb25seSBrbXNLZXk/OiBJS2V5O1xuICAgICAgcHVibGljIHJlYWRvbmx5IGxvZ2dpbmdDb25maWd1cmF0aW9uPzogTG9nZ2luZ0NvbmZpZ3VyYXRpb247XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgcXVlcnlMb2dnaW5nQ29uZmlndXJhdGlvbj86IFF1ZXJ5TG9nZ2luZ0NvbmZpZ3VyYXRpb247XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgd29ya3NwYWNlQ29uZmlndXJhdGlvbj86IFdvcmtzcGFjZUNvbmZpZ3VyYXRpb247XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgd29ya3NwYWNlSWQ6IHN0cmluZztcbiAgICAgIHB1YmxpYyByZWFkb25seSB3b3Jrc3BhY2VBcm46IHN0cmluZztcbiAgICAgIGNvbnN0cnVjdG9yKGF0dHJpYnV0ZXM6IFdvcmtzcGFjZUF0dHJpYnV0ZXMpIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgICAgICB0aGlzLmFsZXJ0TWFuYWdlckRlZmluaXRpb24gPSBhdHRyaWJ1dGVzLmFsZXJ0TWFuYWdlckRlZmluaXRpb247XG4gICAgICAgIHRoaXMuYWxpYXMgPSBhdHRyaWJ1dGVzLmFsaWFzO1xuICAgICAgICB0aGlzLmttc0tleSA9IGF0dHJpYnV0ZXMua21zS2V5O1xuICAgICAgICB0aGlzLmxvZ2dpbmdDb25maWd1cmF0aW9uID0gYXR0cmlidXRlcy5sb2dnaW5nQ29uZmlndXJhdGlvbjtcbiAgICAgICAgdGhpcy5xdWVyeUxvZ2dpbmdDb25maWd1cmF0aW9uID0gYXR0cmlidXRlcy5xdWVyeUxvZ2dpbmdDb25maWd1cmF0aW9uO1xuICAgICAgICB0aGlzLndvcmtzcGFjZUNvbmZpZ3VyYXRpb24gPSBhdHRyaWJ1dGVzLndvcmtzcGFjZUNvbmZpZ3VyYXRpb247XG4gICAgICAgIHRoaXMud29ya3NwYWNlSWQgPSB0aGlzLmdldFdvcmtzcGFjZUlkKGF0dHJpYnV0ZXMud29ya3NwYWNlQXJuKTtcbiAgICAgICAgdGhpcy53b3Jrc3BhY2VBcm4gPSBhdHRyaWJ1dGVzLndvcmtzcGFjZUFybjtcblxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IEltcG9ydChhdHRycyk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGFsbCB3b3Jrc3BhY2UgcHJvcGVydGllcy5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIC0gVGhlIHdvcmtzcGFjZSBwcm9wZXJ0aWVzIHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGVycm9yIG1lc3NhZ2VzIGlmIHZhbGlkYXRpb24gZmFpbHMsIG9yIGFuIGVtcHR5IGFycmF5IGlmIHZhbGlkXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGFnZ3JlZ2F0ZXMgdmFsaWRhdGlvbiByZXN1bHRzIGZyb20gYWxsIGluZGl2aWR1YWwgcHJvcGVydHkgdmFsaWRhdG9ycy5cbiAgICogSXQgdGhyb3dzIGFuIGVycm9yIGlmIHByb3BzIGlzIG5vdCBhbiBvYmplY3QuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyB2YWxpZGF0ZVByb3BzKHByb3BzOiB1bmtub3duKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAgIGlmICghcHJvcHMgfHwgdHlwZW9mIHByb3BzICE9PSAnb2JqZWN0Jykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdXb3Jrc3BhY2UgY29uc3RydWN0b3IgcHJvcGVydGllcyBtdXN0IGJlIGFuIG9iamVjdCcpO1xuICAgIH1cbiAgICBjb25zdCB3b3Jrc3BhY2VQcm9wcyA9IHByb3BzIGFzIFdvcmtzcGFjZVByb3BzO1xuXG4gICAgaWYgKFxuICAgICAgd29ya3NwYWNlUHJvcHMuYWxlcnRNYW5hZ2VyRGVmaW5pdGlvbiAhPT0gdW5kZWZpbmVkXG4gICAgKSB7XG4gICAgICBlcnJvcnMucHVzaCguLi52YWxpZGF0ZUFsZXJ0TWFuYWdlckRlZmluaXRpb24od29ya3NwYWNlUHJvcHMuYWxlcnRNYW5hZ2VyRGVmaW5pdGlvbikubWFwKChlKSA9PiBgYWxlcnRNYW5hZ2VyRGVmaW5pdGlvbjogJHtlfWApKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB3b3Jrc3BhY2VQcm9wcy5hbGlhcyAhPT0gdW5kZWZpbmVkXG4gICAgKSB7XG4gICAgICBlcnJvcnMucHVzaCguLi52YWxpZGF0ZUFsaWFzKHdvcmtzcGFjZVByb3BzLmFsaWFzKS5tYXAoKGUpID0+IGBhbGlhczogJHtlfWApKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB3b3Jrc3BhY2VQcm9wcy5sb2dnaW5nQ29uZmlndXJhdGlvbiAhPT0gdW5kZWZpbmVkXG4gICAgKSB7XG4gICAgICBlcnJvcnMucHVzaCguLi52YWxpZGF0ZUxvZ2dpbmdDb25maWd1cmF0aW9uKHdvcmtzcGFjZVByb3BzLmxvZ2dpbmdDb25maWd1cmF0aW9uKS5tYXAoKGUpID0+IGBsb2dnaW5nQ29uZmlndXJhdGlvbjogJHtlfWApKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB3b3Jrc3BhY2VQcm9wcy5xdWVyeUxvZ2dpbmdDb25maWd1cmF0aW9uICE9PSB1bmRlZmluZWRcbiAgICApIHtcbiAgICAgIGVycm9ycy5wdXNoKC4uLnZhbGlkYXRlUXVlcnlMb2dnaW5nQ29uZmlndXJhdGlvbih3b3Jrc3BhY2VQcm9wcy5xdWVyeUxvZ2dpbmdDb25maWd1cmF0aW9uKS5tYXAoKGUpID0+IGBxdWVyeUxvZ2dpbmdDb25maWd1cmF0aW9uOiAke2V9YCkpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHdvcmtzcGFjZVByb3BzLndvcmtzcGFjZUNvbmZpZ3VyYXRpb24gIT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgZXJyb3JzLnB1c2goLi4udmFsaWRhdGVXb3Jrc3BhY2VDb25maWd1cmF0aW9uKHdvcmtzcGFjZVByb3BzLndvcmtzcGFjZUNvbmZpZ3VyYXRpb24pLm1hcCgoZSkgPT4gYHdvcmtzcGFjZUNvbmZpZ3VyYXRpb246ICR7ZX1gKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVycm9ycztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYWxlcnQgbWFuYWdlciBkZWZpbml0aW9uLCBhIFlBTUwgY29uZmlndXJhdGlvbiBmb3IgdGhlIGFsZXJ0IG1hbmFnZXIgaW4geW91ciBBbWF6b25cbiAgICogTWFuYWdlZCBTZXJ2aWNlIGZvciBQcm9tZXRoZXVzIHdvcmtzcGFjZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhbGVydE1hbmFnZXJEZWZpbml0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYWxpYXMgdGhhdCBpcyBhc3NpZ25lZCB0byB0aGlzIHdvcmtzcGFjZSB0byBoZWxwIGlkZW50aWZ5IGl0LiBJdCBkb2VzIG5vdCBuZWVkIHRvIGJlXG4gICAqIHVuaXF1ZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhbGlhcz86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGN1c3RvbWVyIG1hbmFnZWQgQVdTIEtNUyBrZXkgdG8gdXNlIGZvciBlbmNyeXB0aW5nIGRhdGEgd2l0aGluIHlvdXIgd29ya3NwYWNlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGttc0tleT86IElLZXk7XG5cbiAgLyoqXG4gICAqIENvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50IHJ1bGVzIGFuZCBhbGVydGluZyBsb2dnaW5nIGNvbmZpZ3VyYXRpb24gZm9yIHRoZVxuICAgKiB3b3Jrc3BhY2UuXG4gICAqXG4gICAqIE5vdGU6IFRoZXNlIGxvZ2dpbmcgY29uZmlndXJhdGlvbnMgYXJlIG9ubHkgZm9yIHJ1bGVzIGFuZCBhbGVydGluZyBsb2dzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGxvZ2dpbmdDb25maWd1cmF0aW9uPzogTG9nZ2luZ0NvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZpbml0aW9uIG9mIGxvZ2dpbmcgY29uZmlndXJhdGlvbiBpbiBhbiBBbWF6b24gTWFuYWdlZCBTZXJ2aWNlIGZvciBQcm9tZXRoZXVzIHdvcmtzcGFjZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBxdWVyeUxvZ2dpbmdDb25maWd1cmF0aW9uPzogUXVlcnlMb2dnaW5nQ29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogVXNlIHRoaXMgc3RydWN0dXJlIHRvIGRlZmluZSBsYWJlbCBzZXRzIGFuZCB0aGUgaW5nZXN0aW9uIGxpbWl0cyBmb3IgdGltZSBzZXJpZXMgdGhhdCBtYXRjaFxuICAgKiBsYWJlbCBzZXRzLCBhbmQgdG8gc3BlY2lmeSB0aGUgcmV0ZW50aW9uIHBlcmlvZCBvZiB0aGUgd29ya3NwYWNlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHdvcmtzcGFjZUNvbmZpZ3VyYXRpb24/OiBXb3Jrc3BhY2VDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgdW5kZXJseWluZyBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZS5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgd29ya3NwYWNlOiBDZm5Xb3Jrc3BhY2U7XG5cbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgSUQgZm9yIHRoZSB3b3Jrc3BhY2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgd29ya3NwYWNlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgd29ya3NwYWNlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHdvcmtzcGFjZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgUHJvbWV0aGV1cyBlbmRwb2ludCBhdmFpbGFibGUgZm9yIHRoaXMgd29ya3NwYWNlLi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9tZXRoZXVzRW5kcG9pbnQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogV29ya3NwYWNlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIElTX1dPUktTUEFDRSwgeyB2YWx1ZTogdHJ1ZSB9KTtcblxuICAgIGNvbnN0IGVycm9ycyA9IFdvcmtzcGFjZS52YWxpZGF0ZVByb3BzKHByb3BzKTtcblxuICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHByb3BzOlxcbiR7ZXJyb3JzLmpvaW4oJ1xcbicpfWApO1xuICAgIH1cblxuICAgIHRoaXMuYWxlcnRNYW5hZ2VyRGVmaW5pdGlvbiA9IHByb3BzLmFsZXJ0TWFuYWdlckRlZmluaXRpb247XG4gICAgdGhpcy5hbGlhcyA9IHByb3BzLmFsaWFzO1xuICAgIHRoaXMua21zS2V5ID0gcHJvcHMua21zS2V5O1xuICAgIHRoaXMubG9nZ2luZ0NvbmZpZ3VyYXRpb24gPSBwcm9wcy5sb2dnaW5nQ29uZmlndXJhdGlvbjtcbiAgICB0aGlzLnF1ZXJ5TG9nZ2luZ0NvbmZpZ3VyYXRpb24gPSBwcm9wcy5xdWVyeUxvZ2dpbmdDb25maWd1cmF0aW9uO1xuICAgIHRoaXMud29ya3NwYWNlQ29uZmlndXJhdGlvbiA9IHByb3BzLndvcmtzcGFjZUNvbmZpZ3VyYXRpb247XG5cbiAgICBsZXQgY2ZuV29ya3NwYWNlUHJvcHM6IENmbldvcmtzcGFjZVByb3BzID0ge1xuICAgICAgYWxlcnRNYW5hZ2VyRGVmaW5pdGlvbjogcHJvcHMuYWxlcnRNYW5hZ2VyRGVmaW5pdGlvbixcbiAgICAgIGFsaWFzOiBwcm9wcy5hbGlhcyxcbiAgICAgIGttc0tleUFybjogcHJvcHMua21zS2V5Py5rZXlBcm4sXG4gICAgICBsb2dnaW5nQ29uZmlndXJhdGlvbjogcHJvcHMubG9nZ2luZ0NvbmZpZ3VyYXRpb24gJiYgcHJvcHMubG9nZ2luZ0NvbmZpZ3VyYXRpb24ubG9nR3JvdXAgPyB7XG4gICAgICAgIGxvZ0dyb3VwQXJuOiBwcm9wcy5sb2dnaW5nQ29uZmlndXJhdGlvbi5sb2dHcm91cC5sb2dHcm91cEFybixcbiAgICAgIH0gOiB1bmRlZmluZWQsXG4gICAgICBxdWVyeUxvZ2dpbmdDb25maWd1cmF0aW9uOiBwcm9wcy5xdWVyeUxvZ2dpbmdDb25maWd1cmF0aW9uID8ge1xuICAgICAgICBkZXN0aW5hdGlvbnM6IHByb3BzLnF1ZXJ5TG9nZ2luZ0NvbmZpZ3VyYXRpb24uZGVzdGluYXRpb25zLm1hcCgoZCkgPT4gKHtcbiAgICAgICAgICBjbG91ZFdhdGNoTG9nczoge1xuICAgICAgICAgICAgbG9nR3JvdXBBcm46IGQuY2xvdWRXYXRjaExvZ3MubG9nR3JvdXAubG9nR3JvdXBBcm4sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBmaWx0ZXJzOiBkLmZpbHRlcnMsXG4gICAgICAgIH0pKSxcbiAgICAgIH0gOiB1bmRlZmluZWQsXG4gICAgICB3b3Jrc3BhY2VDb25maWd1cmF0aW9uOiBwcm9wcy53b3Jrc3BhY2VDb25maWd1cmF0aW9uLFxuXG4gICAgfTtcblxuICAgIHRoaXMud29ya3NwYWNlID0gbmV3IENmbldvcmtzcGFjZSh0aGlzLCAnUmVzb3VyY2UnLCBjZm5Xb3Jrc3BhY2VQcm9wcyk7XG4gICAgdGhpcy5ub2RlLmRlZmF1bHRDaGlsZCA9IHRoaXMud29ya3NwYWNlO1xuXG4gICAgdGhpcy53b3Jrc3BhY2VJZCA9IHRoaXMud29ya3NwYWNlLmF0dHJXb3Jrc3BhY2VJZDtcbiAgICB0aGlzLndvcmtzcGFjZUFybiA9IHRoaXMud29ya3NwYWNlLmF0dHJBcm47XG4gICAgdGhpcy5wcm9tZXRoZXVzRW5kcG9pbnQgPSB0aGlzLndvcmtzcGFjZS5hdHRyUHJvbWV0aGV1c0VuZHBvaW50O1xuICB9XG59XG4iXX0=
|
package/package.json
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@robhan-cdk-lib/aws_aps",
|
|
3
|
+
"description": "AWS CDK Construct Library for Amazon Managed Service for Prometheus",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "https://github.com/robert-hanuschke/cdk-aws_aps"
|
|
7
|
+
},
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "npx projen build",
|
|
10
|
+
"bump": "npx projen bump",
|
|
11
|
+
"clobber": "npx projen clobber",
|
|
12
|
+
"compat": "npx projen compat",
|
|
13
|
+
"compile": "npx projen compile",
|
|
14
|
+
"default": "npx projen default",
|
|
15
|
+
"docgen": "npx projen docgen",
|
|
16
|
+
"eject": "npx projen eject",
|
|
17
|
+
"eslint": "npx projen eslint",
|
|
18
|
+
"package": "npx projen package",
|
|
19
|
+
"package-all": "npx projen package-all",
|
|
20
|
+
"package:dotnet": "npx projen package:dotnet",
|
|
21
|
+
"package:go": "npx projen package:go",
|
|
22
|
+
"package:java": "npx projen package:java",
|
|
23
|
+
"package:js": "npx projen package:js",
|
|
24
|
+
"package:python": "npx projen package:python",
|
|
25
|
+
"post-compile": "npx projen post-compile",
|
|
26
|
+
"post-upgrade": "npx projen post-upgrade",
|
|
27
|
+
"pre-compile": "npx projen pre-compile",
|
|
28
|
+
"release": "npx projen release",
|
|
29
|
+
"test": "npx projen test",
|
|
30
|
+
"test:watch": "npx projen test:watch",
|
|
31
|
+
"unbump": "npx projen unbump",
|
|
32
|
+
"upgrade": "npx projen upgrade",
|
|
33
|
+
"watch": "npx projen watch",
|
|
34
|
+
"projen": "npx projen"
|
|
35
|
+
},
|
|
36
|
+
"author": {
|
|
37
|
+
"name": "Robert Hanuschke",
|
|
38
|
+
"email": "robhan-cdk-lib@hanuschke.eu",
|
|
39
|
+
"organization": false
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@stylistic/eslint-plugin": "^2",
|
|
43
|
+
"@types/jest": "^29.5.14",
|
|
44
|
+
"@types/node": "^22.15.32",
|
|
45
|
+
"@typescript-eslint/eslint-plugin": "^8",
|
|
46
|
+
"@typescript-eslint/parser": "^8",
|
|
47
|
+
"aws-cdk-lib": "2.201.0",
|
|
48
|
+
"commit-and-tag-version": "^12",
|
|
49
|
+
"constructs": "10.0.5",
|
|
50
|
+
"eslint": "^9",
|
|
51
|
+
"eslint-import-resolver-typescript": "^4.4.3",
|
|
52
|
+
"eslint-plugin-import": "^2.31.0",
|
|
53
|
+
"jest": "^29.7.0",
|
|
54
|
+
"jest-junit": "^16",
|
|
55
|
+
"jsii": "~5.8.0",
|
|
56
|
+
"jsii-diff": "^1.112.0",
|
|
57
|
+
"jsii-docgen": "^10.5.0",
|
|
58
|
+
"jsii-pacmak": "^1.112.0",
|
|
59
|
+
"jsii-rosetta": "~5.8.0",
|
|
60
|
+
"projen": "^0.93.0",
|
|
61
|
+
"ts-jest": "^29.4.0",
|
|
62
|
+
"ts-node": "^10.9.2",
|
|
63
|
+
"typescript": "^5.8.3"
|
|
64
|
+
},
|
|
65
|
+
"peerDependencies": {
|
|
66
|
+
"aws-cdk-lib": "^2.201.0",
|
|
67
|
+
"constructs": "^10.0.5"
|
|
68
|
+
},
|
|
69
|
+
"dependencies": {
|
|
70
|
+
"@robhan-cdk-lib/utils": "^0.0.10"
|
|
71
|
+
},
|
|
72
|
+
"keywords": [
|
|
73
|
+
"Amazon Managed Service for Prometheus",
|
|
74
|
+
"Prometheus",
|
|
75
|
+
"aps",
|
|
76
|
+
"cdk"
|
|
77
|
+
],
|
|
78
|
+
"main": "lib/index.js",
|
|
79
|
+
"license": "MIT",
|
|
80
|
+
"version": "0.0.0",
|
|
81
|
+
"jest": {
|
|
82
|
+
"coverageProvider": "v8",
|
|
83
|
+
"testMatch": [
|
|
84
|
+
"<rootDir>/@(src|test)/**/*(*.)@(spec|test).ts?(x)",
|
|
85
|
+
"<rootDir>/@(src|test)/**/__tests__/**/*.ts?(x)",
|
|
86
|
+
"<rootDir>/@(projenrc)/**/*(*.)@(spec|test).ts?(x)",
|
|
87
|
+
"<rootDir>/@(projenrc)/**/__tests__/**/*.ts?(x)"
|
|
88
|
+
],
|
|
89
|
+
"clearMocks": true,
|
|
90
|
+
"collectCoverage": true,
|
|
91
|
+
"coverageReporters": [
|
|
92
|
+
"json",
|
|
93
|
+
"lcov",
|
|
94
|
+
"clover",
|
|
95
|
+
"cobertura",
|
|
96
|
+
"text"
|
|
97
|
+
],
|
|
98
|
+
"coverageDirectory": "coverage",
|
|
99
|
+
"coveragePathIgnorePatterns": [
|
|
100
|
+
"/node_modules/"
|
|
101
|
+
],
|
|
102
|
+
"testPathIgnorePatterns": [
|
|
103
|
+
"/node_modules/"
|
|
104
|
+
],
|
|
105
|
+
"watchPathIgnorePatterns": [
|
|
106
|
+
"/node_modules/"
|
|
107
|
+
],
|
|
108
|
+
"reporters": [
|
|
109
|
+
"default",
|
|
110
|
+
[
|
|
111
|
+
"jest-junit",
|
|
112
|
+
{
|
|
113
|
+
"outputDirectory": "test-reports"
|
|
114
|
+
}
|
|
115
|
+
]
|
|
116
|
+
],
|
|
117
|
+
"transform": {
|
|
118
|
+
"^.+\\.[t]sx?$": [
|
|
119
|
+
"ts-jest",
|
|
120
|
+
{
|
|
121
|
+
"tsconfig": "tsconfig.dev.json"
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
"types": "lib/index.d.ts",
|
|
127
|
+
"stability": "stable",
|
|
128
|
+
"jsii": {
|
|
129
|
+
"outdir": "dist",
|
|
130
|
+
"targets": {
|
|
131
|
+
"java": {
|
|
132
|
+
"package": "io.github.roberthanuschke.cdk.aws.aps",
|
|
133
|
+
"maven": {
|
|
134
|
+
"groupId": "io.github.robert-hanuschke",
|
|
135
|
+
"artifactId": "cdk-aws-aps"
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
"python": {
|
|
139
|
+
"distName": "robhan_cdk_lib.aws_aps",
|
|
140
|
+
"module": "robhan_cdk_lib.aws_aps"
|
|
141
|
+
},
|
|
142
|
+
"dotnet": {
|
|
143
|
+
"namespace": "Robhan.CdkLib",
|
|
144
|
+
"packageId": "Robhan.CdkLib.AwsAps"
|
|
145
|
+
},
|
|
146
|
+
"go": {
|
|
147
|
+
"moduleName": "github.com/robert-hanuschke/robhan-cdk-lib-aws-aps"
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
"tsc": {
|
|
151
|
+
"outDir": "lib",
|
|
152
|
+
"rootDir": "src"
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
"//": "~~ Generated by projen. To modify, edit .projenrc.ts and run \"npx projen\"."
|
|
156
|
+
}
|