@cdktn/provider-pagerduty 15.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 +110408 -0
- package/LICENSE +355 -0
- package/README.md +94 -0
- package/lib/addon/index.d.ts +53 -0
- package/lib/addon/index.js +115 -0
- package/lib/alert-grouping-setting/index.d.ts +144 -0
- package/lib/alert-grouping-setting/index.js +366 -0
- package/lib/automation-actions-action/index.d.ts +232 -0
- package/lib/automation-actions-action/index.js +560 -0
- package/lib/automation-actions-action-service-association/index.d.ts +64 -0
- package/lib/automation-actions-action-service-association/index.js +129 -0
- package/lib/automation-actions-action-team-association/index.d.ts +64 -0
- package/lib/automation-actions-action-team-association/index.js +129 -0
- package/lib/automation-actions-runner/index.d.ts +102 -0
- package/lib/automation-actions-runner/index.js +224 -0
- package/lib/automation-actions-runner-team-association/index.d.ts +64 -0
- package/lib/automation-actions-runner-team-association/index.js +129 -0
- package/lib/business-service/index.d.ts +84 -0
- package/lib/business-service/index.js +190 -0
- package/lib/business-service-subscriber/index.d.ts +72 -0
- package/lib/business-service-subscriber/index.js +147 -0
- package/lib/data-pagerduty-alert-grouping-setting/index.d.ts +70 -0
- package/lib/data-pagerduty-alert-grouping-setting/index.js +190 -0
- package/lib/data-pagerduty-automation-actions-action/index.d.ts +186 -0
- package/lib/data-pagerduty-automation-actions-action/index.js +425 -0
- package/lib/data-pagerduty-automation-actions-runner/index.d.ts +78 -0
- package/lib/data-pagerduty-automation-actions-runner/index.js +172 -0
- package/lib/data-pagerduty-business-service/index.d.ts +46 -0
- package/lib/data-pagerduty-business-service/index.js +101 -0
- package/lib/data-pagerduty-escalation-policy/index.d.ts +47 -0
- package/lib/data-pagerduty-escalation-policy/index.js +105 -0
- package/lib/data-pagerduty-event-orchestration/index.d.ts +137 -0
- package/lib/data-pagerduty-event-orchestration/index.js +306 -0
- package/lib/data-pagerduty-event-orchestration-global-cache-variable/index.d.ts +138 -0
- package/lib/data-pagerduty-event-orchestration-global-cache-variable/index.js +315 -0
- package/lib/data-pagerduty-event-orchestration-integration/index.d.ts +100 -0
- package/lib/data-pagerduty-event-orchestration-integration/index.js +216 -0
- package/lib/data-pagerduty-event-orchestration-service-cache-variable/index.d.ts +138 -0
- package/lib/data-pagerduty-event-orchestration-service-cache-variable/index.js +315 -0
- package/lib/data-pagerduty-event-orchestrations/index.d.ts +161 -0
- package/lib/data-pagerduty-event-orchestrations/index.js +366 -0
- package/lib/data-pagerduty-extension-schema/index.d.ts +46 -0
- package/lib/data-pagerduty-extension-schema/index.js +101 -0
- package/lib/data-pagerduty-incident-custom-field/index.d.ts +60 -0
- package/lib/data-pagerduty-incident-custom-field/index.js +130 -0
- package/lib/data-pagerduty-incident-type/index.d.ts +50 -0
- package/lib/data-pagerduty-incident-type/index.js +117 -0
- package/lib/data-pagerduty-incident-type-custom-field/index.d.ts +115 -0
- package/lib/data-pagerduty-incident-type-custom-field/index.js +295 -0
- package/lib/data-pagerduty-incident-workflow/index.d.ts +57 -0
- package/lib/data-pagerduty-incident-workflow/index.js +118 -0
- package/lib/data-pagerduty-jira-cloud-account-mapping/index.d.ts +46 -0
- package/lib/data-pagerduty-jira-cloud-account-mapping/index.js +101 -0
- package/lib/data-pagerduty-license/index.d.ts +74 -0
- package/lib/data-pagerduty-license/index.js +170 -0
- package/lib/data-pagerduty-licenses/index.d.ts +92 -0
- package/lib/data-pagerduty-licenses/index.js +213 -0
- package/lib/data-pagerduty-priority/index.d.ts +48 -0
- package/lib/data-pagerduty-priority/index.js +101 -0
- package/lib/data-pagerduty-ruleset/index.d.ts +57 -0
- package/lib/data-pagerduty-ruleset/index.js +115 -0
- package/lib/data-pagerduty-schedule/index.d.ts +45 -0
- package/lib/data-pagerduty-schedule/index.js +97 -0
- package/lib/data-pagerduty-service/index.d.ts +86 -0
- package/lib/data-pagerduty-service/index.js +205 -0
- package/lib/data-pagerduty-service-custom-field/index.d.ts +92 -0
- package/lib/data-pagerduty-service-custom-field/index.js +221 -0
- package/lib/data-pagerduty-service-custom-field-value/index.d.ts +88 -0
- package/lib/data-pagerduty-service-custom-field-value/index.js +205 -0
- package/lib/data-pagerduty-service-integration/index.d.ts +56 -0
- package/lib/data-pagerduty-service-integration/index.js +119 -0
- package/lib/data-pagerduty-standards/index.d.ts +154 -0
- package/lib/data-pagerduty-standards/index.js +361 -0
- package/lib/data-pagerduty-standards-resource-scores/index.d.ts +112 -0
- package/lib/data-pagerduty-standards-resource-scores/index.js +268 -0
- package/lib/data-pagerduty-standards-resources-scores/index.d.ts +144 -0
- package/lib/data-pagerduty-standards-resources-scores/index.js +352 -0
- package/lib/data-pagerduty-tag/index.d.ts +47 -0
- package/lib/data-pagerduty-tag/index.js +97 -0
- package/lib/data-pagerduty-team/index.d.ts +77 -0
- package/lib/data-pagerduty-team/index.js +157 -0
- package/lib/data-pagerduty-team-members/index.d.ts +95 -0
- package/lib/data-pagerduty-team-members/index.js +203 -0
- package/lib/data-pagerduty-teams/index.d.ts +96 -0
- package/lib/data-pagerduty-teams/index.js +206 -0
- package/lib/data-pagerduty-user/index.d.ts +50 -0
- package/lib/data-pagerduty-user/index.js +117 -0
- package/lib/data-pagerduty-user-contact-method/index.d.ts +82 -0
- package/lib/data-pagerduty-user-contact-method/index.js +174 -0
- package/lib/data-pagerduty-users/index.d.ts +87 -0
- package/lib/data-pagerduty-users/index.js +208 -0
- package/lib/data-pagerduty-vendor/index.d.ts +46 -0
- package/lib/data-pagerduty-vendor/index.js +101 -0
- package/lib/enablement/index.d.ts +70 -0
- package/lib/enablement/index.js +151 -0
- package/lib/escalation-policy/index.d.ts +232 -0
- package/lib/escalation-policy/index.js +565 -0
- package/lib/event-orchestration/index.d.ts +156 -0
- package/lib/event-orchestration/index.js +352 -0
- package/lib/event-orchestration-global/index.d.ts +1253 -0
- package/lib/event-orchestration-global/index.js +3350 -0
- package/lib/event-orchestration-global-cache-variable/index.d.ts +182 -0
- package/lib/event-orchestration-global-cache-variable/index.js +459 -0
- package/lib/event-orchestration-integration/index.d.ts +88 -0
- package/lib/event-orchestration-integration/index.js +196 -0
- package/lib/event-orchestration-router/index.d.ts +363 -0
- package/lib/event-orchestration-router/index.js +954 -0
- package/lib/event-orchestration-service/index.d.ts +1328 -0
- package/lib/event-orchestration-service/index.js +3573 -0
- package/lib/event-orchestration-service-cache-variable/index.d.ts +182 -0
- package/lib/event-orchestration-service-cache-variable/index.js +459 -0
- package/lib/event-orchestration-unrouted/index.d.ts +653 -0
- package/lib/event-orchestration-unrouted/index.js +1722 -0
- package/lib/event-rule/index.d.ts +74 -0
- package/lib/event-rule/index.js +154 -0
- package/lib/extension/index.d.ts +91 -0
- package/lib/extension/index.js +204 -0
- package/lib/extension-servicenow/index.d.ts +138 -0
- package/lib/extension-servicenow/index.js +308 -0
- package/lib/incident-custom-field/index.d.ts +98 -0
- package/lib/incident-custom-field/index.js +207 -0
- package/lib/incident-custom-field-option/index.d.ts +72 -0
- package/lib/incident-custom-field-option/index.js +147 -0
- package/lib/incident-type/index.d.ts +80 -0
- package/lib/incident-type/index.js +176 -0
- package/lib/incident-type-custom-field/index.d.ts +117 -0
- package/lib/incident-type-custom-field/index.js +265 -0
- package/lib/incident-workflow/index.d.ts +378 -0
- package/lib/incident-workflow/index.js +943 -0
- package/lib/incident-workflow-trigger/index.d.ts +133 -0
- package/lib/incident-workflow-trigger/index.js +314 -0
- package/lib/index.d.ts +91 -0
- package/lib/index.js +97 -0
- package/lib/jira-cloud-account-mapping-rule/index.d.ts +559 -0
- package/lib/jira-cloud-account-mapping-rule/index.js +1578 -0
- package/lib/lazy-index.d.ts +4 -0
- package/lib/lazy-index.js +94 -0
- package/lib/maintenance-window/index.d.ts +81 -0
- package/lib/maintenance-window/index.js +168 -0
- package/lib/provider/index.d.ts +128 -0
- package/lib/provider/index.js +279 -0
- package/lib/response-play/index.d.ts +426 -0
- package/lib/response-play/index.js +1009 -0
- package/lib/ruleset/index.d.ts +94 -0
- package/lib/ruleset/index.js +215 -0
- package/lib/ruleset-rule/index.d.ts +1026 -0
- package/lib/ruleset-rule/index.js +2670 -0
- package/lib/schedule/index.d.ts +299 -0
- package/lib/schedule/index.js +740 -0
- package/lib/service/index.d.ts +592 -0
- package/lib/service/index.js +1608 -0
- package/lib/service-custom-field/index.d.ts +174 -0
- package/lib/service-custom-field/index.js +379 -0
- package/lib/service-custom-field-value/index.d.ts +117 -0
- package/lib/service-custom-field-value/index.js +269 -0
- package/lib/service-dependency/index.d.ts +216 -0
- package/lib/service-dependency/index.js +525 -0
- package/lib/service-event-rule/index.d.ts +964 -0
- package/lib/service-event-rule/index.js +2512 -0
- package/lib/service-integration/index.d.ts +546 -0
- package/lib/service-integration/index.js +1404 -0
- package/lib/slack-connection/index.d.ts +159 -0
- package/lib/slack-connection/index.js +369 -0
- package/lib/tag/index.d.ts +47 -0
- package/lib/tag/index.js +105 -0
- package/lib/tag-assignment/index.d.ts +61 -0
- package/lib/tag-assignment/index.js +130 -0
- package/lib/team/index.d.ts +73 -0
- package/lib/team/index.js +161 -0
- package/lib/team-membership/index.d.ts +62 -0
- package/lib/team-membership/index.js +136 -0
- package/lib/user/index.d.ts +130 -0
- package/lib/user/index.js +291 -0
- package/lib/user-contact-method/index.d.ts +98 -0
- package/lib/user-contact-method/index.js +219 -0
- package/lib/user-handoff-notification-rule/index.d.ts +131 -0
- package/lib/user-handoff-notification-rule/index.js +285 -0
- package/lib/user-notification-rule/index.d.ts +105 -0
- package/lib/user-notification-rule/index.js +258 -0
- package/lib/webhook-subscription/index.d.ts +276 -0
- package/lib/webhook-subscription/index.js +664 -0
- package/package.json +155 -0
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2021, 2026
|
|
3
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { Construct } from 'constructs';
|
|
6
|
+
import * as cdktn from 'cdktn';
|
|
7
|
+
export interface EventOrchestrationConfig extends cdktn.TerraformMetaArguments {
|
|
8
|
+
/**
|
|
9
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/pagerduty/pagerduty/3.31.0/docs/resources/event_orchestration#description EventOrchestration#description}
|
|
10
|
+
*/
|
|
11
|
+
readonly description?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/pagerduty/pagerduty/3.31.0/docs/resources/event_orchestration#id EventOrchestration#id}
|
|
14
|
+
*
|
|
15
|
+
* Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
|
|
16
|
+
* If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
|
|
17
|
+
*/
|
|
18
|
+
readonly id?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/pagerduty/pagerduty/3.31.0/docs/resources/event_orchestration#name EventOrchestration#name}
|
|
21
|
+
*/
|
|
22
|
+
readonly name: string;
|
|
23
|
+
/**
|
|
24
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/pagerduty/pagerduty/3.31.0/docs/resources/event_orchestration#team EventOrchestration#team}
|
|
25
|
+
*/
|
|
26
|
+
readonly team?: string;
|
|
27
|
+
/**
|
|
28
|
+
* integration block
|
|
29
|
+
*
|
|
30
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/pagerduty/pagerduty/3.31.0/docs/resources/event_orchestration#integration EventOrchestration#integration}
|
|
31
|
+
*/
|
|
32
|
+
readonly integration?: EventOrchestrationIntegration[] | cdktn.IResolvable;
|
|
33
|
+
}
|
|
34
|
+
export interface EventOrchestrationIntegrationParameters {
|
|
35
|
+
}
|
|
36
|
+
export declare function eventOrchestrationIntegrationParametersToTerraform(struct?: EventOrchestrationIntegrationParameters): any;
|
|
37
|
+
export declare function eventOrchestrationIntegrationParametersToHclTerraform(struct?: EventOrchestrationIntegrationParameters): any;
|
|
38
|
+
export declare class EventOrchestrationIntegrationParametersOutputReference extends cdktn.ComplexObject {
|
|
39
|
+
private isEmptyObject;
|
|
40
|
+
/**
|
|
41
|
+
* @param terraformResource The parent resource
|
|
42
|
+
* @param terraformAttribute The attribute on the parent resource this class is referencing
|
|
43
|
+
* @param complexObjectIndex the index of this item in the list
|
|
44
|
+
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
|
|
45
|
+
*/
|
|
46
|
+
constructor(terraformResource: cdktn.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
|
|
47
|
+
get internalValue(): EventOrchestrationIntegrationParameters | undefined;
|
|
48
|
+
set internalValue(value: EventOrchestrationIntegrationParameters | undefined);
|
|
49
|
+
get routingKey(): string;
|
|
50
|
+
get type(): string;
|
|
51
|
+
}
|
|
52
|
+
export declare class EventOrchestrationIntegrationParametersList extends cdktn.ComplexList {
|
|
53
|
+
protected terraformResource: cdktn.IInterpolatingParent;
|
|
54
|
+
protected terraformAttribute: string;
|
|
55
|
+
protected wrapsSet: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* @param terraformResource The parent resource
|
|
58
|
+
* @param terraformAttribute The attribute on the parent resource this class is referencing
|
|
59
|
+
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
|
|
60
|
+
*/
|
|
61
|
+
constructor(terraformResource: cdktn.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
|
|
62
|
+
/**
|
|
63
|
+
* @param index the index of the item to return
|
|
64
|
+
*/
|
|
65
|
+
get(index: number): EventOrchestrationIntegrationParametersOutputReference;
|
|
66
|
+
}
|
|
67
|
+
export interface EventOrchestrationIntegration {
|
|
68
|
+
}
|
|
69
|
+
export declare function eventOrchestrationIntegrationToTerraform(struct?: EventOrchestrationIntegration | cdktn.IResolvable): any;
|
|
70
|
+
export declare function eventOrchestrationIntegrationToHclTerraform(struct?: EventOrchestrationIntegration | cdktn.IResolvable): any;
|
|
71
|
+
export declare class EventOrchestrationIntegrationOutputReference extends cdktn.ComplexObject {
|
|
72
|
+
private isEmptyObject;
|
|
73
|
+
private resolvableValue?;
|
|
74
|
+
/**
|
|
75
|
+
* @param terraformResource The parent resource
|
|
76
|
+
* @param terraformAttribute The attribute on the parent resource this class is referencing
|
|
77
|
+
* @param complexObjectIndex the index of this item in the list
|
|
78
|
+
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
|
|
79
|
+
*/
|
|
80
|
+
constructor(terraformResource: cdktn.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
|
|
81
|
+
get internalValue(): EventOrchestrationIntegration | cdktn.IResolvable | undefined;
|
|
82
|
+
set internalValue(value: EventOrchestrationIntegration | cdktn.IResolvable | undefined);
|
|
83
|
+
get id(): string;
|
|
84
|
+
get label(): string;
|
|
85
|
+
private _parameters;
|
|
86
|
+
get parameters(): EventOrchestrationIntegrationParametersList;
|
|
87
|
+
}
|
|
88
|
+
export declare class EventOrchestrationIntegrationList extends cdktn.ComplexList {
|
|
89
|
+
protected terraformResource: cdktn.IInterpolatingParent;
|
|
90
|
+
protected terraformAttribute: string;
|
|
91
|
+
protected wrapsSet: boolean;
|
|
92
|
+
internalValue?: EventOrchestrationIntegration[] | cdktn.IResolvable;
|
|
93
|
+
/**
|
|
94
|
+
* @param terraformResource The parent resource
|
|
95
|
+
* @param terraformAttribute The attribute on the parent resource this class is referencing
|
|
96
|
+
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
|
|
97
|
+
*/
|
|
98
|
+
constructor(terraformResource: cdktn.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
|
|
99
|
+
/**
|
|
100
|
+
* @param index the index of the item to return
|
|
101
|
+
*/
|
|
102
|
+
get(index: number): EventOrchestrationIntegrationOutputReference;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Represents a {@link https://registry.terraform.io/providers/pagerduty/pagerduty/3.31.0/docs/resources/event_orchestration pagerduty_event_orchestration}
|
|
106
|
+
*/
|
|
107
|
+
export declare class EventOrchestration extends cdktn.TerraformResource {
|
|
108
|
+
static readonly tfResourceType = "pagerduty_event_orchestration";
|
|
109
|
+
/**
|
|
110
|
+
* Generates CDKTN code for importing a EventOrchestration resource upon running "cdktn plan <stack-name>"
|
|
111
|
+
* @param scope The scope in which to define this construct
|
|
112
|
+
* @param importToId The construct id used in the generated config for the EventOrchestration to import
|
|
113
|
+
* @param importFromId The id of the existing EventOrchestration that should be imported. Refer to the {@link https://registry.terraform.io/providers/pagerduty/pagerduty/3.31.0/docs/resources/event_orchestration#import import section} in the documentation of this resource for the id to use
|
|
114
|
+
* @param provider? Optional instance of the provider where the EventOrchestration to import is found
|
|
115
|
+
*/
|
|
116
|
+
static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktn.TerraformProvider): cdktn.ImportableResource;
|
|
117
|
+
/**
|
|
118
|
+
* Create a new {@link https://registry.terraform.io/providers/pagerduty/pagerduty/3.31.0/docs/resources/event_orchestration pagerduty_event_orchestration} Resource
|
|
119
|
+
*
|
|
120
|
+
* @param scope The scope in which to define this construct
|
|
121
|
+
* @param id The scoped construct ID. Must be unique amongst siblings in the same scope
|
|
122
|
+
* @param options EventOrchestrationConfig
|
|
123
|
+
*/
|
|
124
|
+
constructor(scope: Construct, id: string, config: EventOrchestrationConfig);
|
|
125
|
+
private _description?;
|
|
126
|
+
get description(): string;
|
|
127
|
+
set description(value: string);
|
|
128
|
+
resetDescription(): void;
|
|
129
|
+
get descriptionInput(): string | undefined;
|
|
130
|
+
private _id?;
|
|
131
|
+
get id(): string;
|
|
132
|
+
set id(value: string);
|
|
133
|
+
resetId(): void;
|
|
134
|
+
get idInput(): string | undefined;
|
|
135
|
+
private _name?;
|
|
136
|
+
get name(): string;
|
|
137
|
+
set name(value: string);
|
|
138
|
+
get nameInput(): string | undefined;
|
|
139
|
+
get routes(): number;
|
|
140
|
+
private _team?;
|
|
141
|
+
get team(): string;
|
|
142
|
+
set team(value: string);
|
|
143
|
+
resetTeam(): void;
|
|
144
|
+
get teamInput(): string | undefined;
|
|
145
|
+
private _integration;
|
|
146
|
+
get integration(): EventOrchestrationIntegrationList;
|
|
147
|
+
putIntegration(value: EventOrchestrationIntegration[] | cdktn.IResolvable): void;
|
|
148
|
+
resetIntegration(): void;
|
|
149
|
+
get integrationInput(): cdktn.IResolvable | EventOrchestrationIntegration[] | undefined;
|
|
150
|
+
protected synthesizeAttributes(): {
|
|
151
|
+
[name: string]: any;
|
|
152
|
+
};
|
|
153
|
+
protected synthesizeHclAttributes(): {
|
|
154
|
+
[name: string]: any;
|
|
155
|
+
};
|
|
156
|
+
}
|
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a, _b, _c, _d, _e;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.EventOrchestration = exports.EventOrchestrationIntegrationList = exports.EventOrchestrationIntegrationOutputReference = exports.EventOrchestrationIntegrationParametersList = exports.EventOrchestrationIntegrationParametersOutputReference = void 0;
|
|
5
|
+
exports.eventOrchestrationIntegrationParametersToTerraform = eventOrchestrationIntegrationParametersToTerraform;
|
|
6
|
+
exports.eventOrchestrationIntegrationParametersToHclTerraform = eventOrchestrationIntegrationParametersToHclTerraform;
|
|
7
|
+
exports.eventOrchestrationIntegrationToTerraform = eventOrchestrationIntegrationToTerraform;
|
|
8
|
+
exports.eventOrchestrationIntegrationToHclTerraform = eventOrchestrationIntegrationToHclTerraform;
|
|
9
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
10
|
+
const cdktn = require("cdktn");
|
|
11
|
+
function eventOrchestrationIntegrationParametersToTerraform(struct) {
|
|
12
|
+
if (!cdktn.canInspect(struct) || cdktn.Tokenization.isResolvable(struct)) {
|
|
13
|
+
return struct;
|
|
14
|
+
}
|
|
15
|
+
if (cdktn.isComplexElement(struct)) {
|
|
16
|
+
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
|
|
17
|
+
}
|
|
18
|
+
return {};
|
|
19
|
+
}
|
|
20
|
+
function eventOrchestrationIntegrationParametersToHclTerraform(struct) {
|
|
21
|
+
if (!cdktn.canInspect(struct) || cdktn.Tokenization.isResolvable(struct)) {
|
|
22
|
+
return struct;
|
|
23
|
+
}
|
|
24
|
+
if (cdktn.isComplexElement(struct)) {
|
|
25
|
+
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
|
|
26
|
+
}
|
|
27
|
+
const attrs = {};
|
|
28
|
+
return attrs;
|
|
29
|
+
}
|
|
30
|
+
class EventOrchestrationIntegrationParametersOutputReference extends cdktn.ComplexObject {
|
|
31
|
+
/**
|
|
32
|
+
* @param terraformResource The parent resource
|
|
33
|
+
* @param terraformAttribute The attribute on the parent resource this class is referencing
|
|
34
|
+
* @param complexObjectIndex the index of this item in the list
|
|
35
|
+
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
|
|
36
|
+
*/
|
|
37
|
+
constructor(terraformResource, terraformAttribute, complexObjectIndex, complexObjectIsFromSet) {
|
|
38
|
+
super(terraformResource, terraformAttribute, complexObjectIsFromSet, complexObjectIndex);
|
|
39
|
+
this.isEmptyObject = false;
|
|
40
|
+
}
|
|
41
|
+
get internalValue() {
|
|
42
|
+
let hasAnyValues = this.isEmptyObject;
|
|
43
|
+
const internalValueResult = {};
|
|
44
|
+
return hasAnyValues ? internalValueResult : undefined;
|
|
45
|
+
}
|
|
46
|
+
set internalValue(value) {
|
|
47
|
+
if (value === undefined) {
|
|
48
|
+
this.isEmptyObject = false;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
this.isEmptyObject = Object.keys(value).length === 0;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// routing_key - computed: true, optional: false, required: false
|
|
55
|
+
get routingKey() {
|
|
56
|
+
return this.getStringAttribute('routing_key');
|
|
57
|
+
}
|
|
58
|
+
// type - computed: true, optional: false, required: false
|
|
59
|
+
get type() {
|
|
60
|
+
return this.getStringAttribute('type');
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.EventOrchestrationIntegrationParametersOutputReference = EventOrchestrationIntegrationParametersOutputReference;
|
|
64
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
65
|
+
EventOrchestrationIntegrationParametersOutputReference[_a] = { fqn: "@cdktn/provider-pagerduty.eventOrchestration.EventOrchestrationIntegrationParametersOutputReference", version: "15.0.0" };
|
|
66
|
+
class EventOrchestrationIntegrationParametersList extends cdktn.ComplexList {
|
|
67
|
+
/**
|
|
68
|
+
* @param terraformResource The parent resource
|
|
69
|
+
* @param terraformAttribute The attribute on the parent resource this class is referencing
|
|
70
|
+
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
|
|
71
|
+
*/
|
|
72
|
+
constructor(terraformResource, terraformAttribute, wrapsSet) {
|
|
73
|
+
super(terraformResource, terraformAttribute, wrapsSet);
|
|
74
|
+
this.terraformResource = terraformResource;
|
|
75
|
+
this.terraformAttribute = terraformAttribute;
|
|
76
|
+
this.wrapsSet = wrapsSet;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* @param index the index of the item to return
|
|
80
|
+
*/
|
|
81
|
+
get(index) {
|
|
82
|
+
return new EventOrchestrationIntegrationParametersOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.EventOrchestrationIntegrationParametersList = EventOrchestrationIntegrationParametersList;
|
|
86
|
+
_b = JSII_RTTI_SYMBOL_1;
|
|
87
|
+
EventOrchestrationIntegrationParametersList[_b] = { fqn: "@cdktn/provider-pagerduty.eventOrchestration.EventOrchestrationIntegrationParametersList", version: "15.0.0" };
|
|
88
|
+
function eventOrchestrationIntegrationToTerraform(struct) {
|
|
89
|
+
if (!cdktn.canInspect(struct) || cdktn.Tokenization.isResolvable(struct)) {
|
|
90
|
+
return struct;
|
|
91
|
+
}
|
|
92
|
+
if (cdktn.isComplexElement(struct)) {
|
|
93
|
+
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
|
|
94
|
+
}
|
|
95
|
+
return {};
|
|
96
|
+
}
|
|
97
|
+
function eventOrchestrationIntegrationToHclTerraform(struct) {
|
|
98
|
+
if (!cdktn.canInspect(struct) || cdktn.Tokenization.isResolvable(struct)) {
|
|
99
|
+
return struct;
|
|
100
|
+
}
|
|
101
|
+
if (cdktn.isComplexElement(struct)) {
|
|
102
|
+
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
|
|
103
|
+
}
|
|
104
|
+
const attrs = {};
|
|
105
|
+
return attrs;
|
|
106
|
+
}
|
|
107
|
+
class EventOrchestrationIntegrationOutputReference extends cdktn.ComplexObject {
|
|
108
|
+
/**
|
|
109
|
+
* @param terraformResource The parent resource
|
|
110
|
+
* @param terraformAttribute The attribute on the parent resource this class is referencing
|
|
111
|
+
* @param complexObjectIndex the index of this item in the list
|
|
112
|
+
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
|
|
113
|
+
*/
|
|
114
|
+
constructor(terraformResource, terraformAttribute, complexObjectIndex, complexObjectIsFromSet) {
|
|
115
|
+
super(terraformResource, terraformAttribute, complexObjectIsFromSet, complexObjectIndex);
|
|
116
|
+
this.isEmptyObject = false;
|
|
117
|
+
// parameters - computed: true, optional: false, required: false
|
|
118
|
+
this._parameters = new EventOrchestrationIntegrationParametersList(this, "parameters", false);
|
|
119
|
+
}
|
|
120
|
+
get internalValue() {
|
|
121
|
+
if (this.resolvableValue) {
|
|
122
|
+
return this.resolvableValue;
|
|
123
|
+
}
|
|
124
|
+
let hasAnyValues = this.isEmptyObject;
|
|
125
|
+
const internalValueResult = {};
|
|
126
|
+
return hasAnyValues ? internalValueResult : undefined;
|
|
127
|
+
}
|
|
128
|
+
set internalValue(value) {
|
|
129
|
+
if (value === undefined) {
|
|
130
|
+
this.isEmptyObject = false;
|
|
131
|
+
this.resolvableValue = undefined;
|
|
132
|
+
}
|
|
133
|
+
else if (cdktn.Tokenization.isResolvable(value)) {
|
|
134
|
+
this.isEmptyObject = false;
|
|
135
|
+
this.resolvableValue = value;
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
this.isEmptyObject = Object.keys(value).length === 0;
|
|
139
|
+
this.resolvableValue = undefined;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// id - computed: true, optional: false, required: false
|
|
143
|
+
get id() {
|
|
144
|
+
return this.getStringAttribute('id');
|
|
145
|
+
}
|
|
146
|
+
// label - computed: true, optional: false, required: false
|
|
147
|
+
get label() {
|
|
148
|
+
return this.getStringAttribute('label');
|
|
149
|
+
}
|
|
150
|
+
get parameters() {
|
|
151
|
+
return this._parameters;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
exports.EventOrchestrationIntegrationOutputReference = EventOrchestrationIntegrationOutputReference;
|
|
155
|
+
_c = JSII_RTTI_SYMBOL_1;
|
|
156
|
+
EventOrchestrationIntegrationOutputReference[_c] = { fqn: "@cdktn/provider-pagerduty.eventOrchestration.EventOrchestrationIntegrationOutputReference", version: "15.0.0" };
|
|
157
|
+
class EventOrchestrationIntegrationList extends cdktn.ComplexList {
|
|
158
|
+
/**
|
|
159
|
+
* @param terraformResource The parent resource
|
|
160
|
+
* @param terraformAttribute The attribute on the parent resource this class is referencing
|
|
161
|
+
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
|
|
162
|
+
*/
|
|
163
|
+
constructor(terraformResource, terraformAttribute, wrapsSet) {
|
|
164
|
+
super(terraformResource, terraformAttribute, wrapsSet);
|
|
165
|
+
this.terraformResource = terraformResource;
|
|
166
|
+
this.terraformAttribute = terraformAttribute;
|
|
167
|
+
this.wrapsSet = wrapsSet;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* @param index the index of the item to return
|
|
171
|
+
*/
|
|
172
|
+
get(index) {
|
|
173
|
+
return new EventOrchestrationIntegrationOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
exports.EventOrchestrationIntegrationList = EventOrchestrationIntegrationList;
|
|
177
|
+
_d = JSII_RTTI_SYMBOL_1;
|
|
178
|
+
EventOrchestrationIntegrationList[_d] = { fqn: "@cdktn/provider-pagerduty.eventOrchestration.EventOrchestrationIntegrationList", version: "15.0.0" };
|
|
179
|
+
/**
|
|
180
|
+
* Represents a {@link https://registry.terraform.io/providers/pagerduty/pagerduty/3.31.0/docs/resources/event_orchestration pagerduty_event_orchestration}
|
|
181
|
+
*/
|
|
182
|
+
class EventOrchestration extends cdktn.TerraformResource {
|
|
183
|
+
// ==============
|
|
184
|
+
// STATIC Methods
|
|
185
|
+
// ==============
|
|
186
|
+
/**
|
|
187
|
+
* Generates CDKTN code for importing a EventOrchestration resource upon running "cdktn plan <stack-name>"
|
|
188
|
+
* @param scope The scope in which to define this construct
|
|
189
|
+
* @param importToId The construct id used in the generated config for the EventOrchestration to import
|
|
190
|
+
* @param importFromId The id of the existing EventOrchestration that should be imported. Refer to the {@link https://registry.terraform.io/providers/pagerduty/pagerduty/3.31.0/docs/resources/event_orchestration#import import section} in the documentation of this resource for the id to use
|
|
191
|
+
* @param provider? Optional instance of the provider where the EventOrchestration to import is found
|
|
192
|
+
*/
|
|
193
|
+
static generateConfigForImport(scope, importToId, importFromId, provider) {
|
|
194
|
+
return new cdktn.ImportableResource(scope, importToId, { terraformResourceType: "pagerduty_event_orchestration", importId: importFromId, provider });
|
|
195
|
+
}
|
|
196
|
+
// ===========
|
|
197
|
+
// INITIALIZER
|
|
198
|
+
// ===========
|
|
199
|
+
/**
|
|
200
|
+
* Create a new {@link https://registry.terraform.io/providers/pagerduty/pagerduty/3.31.0/docs/resources/event_orchestration pagerduty_event_orchestration} Resource
|
|
201
|
+
*
|
|
202
|
+
* @param scope The scope in which to define this construct
|
|
203
|
+
* @param id The scoped construct ID. Must be unique amongst siblings in the same scope
|
|
204
|
+
* @param options EventOrchestrationConfig
|
|
205
|
+
*/
|
|
206
|
+
constructor(scope, id, config) {
|
|
207
|
+
super(scope, id, {
|
|
208
|
+
terraformResourceType: 'pagerduty_event_orchestration',
|
|
209
|
+
terraformGeneratorMetadata: {
|
|
210
|
+
providerName: 'pagerduty',
|
|
211
|
+
providerVersion: '3.31.0',
|
|
212
|
+
providerVersionConstraint: '~> 3.0'
|
|
213
|
+
},
|
|
214
|
+
provider: config.provider,
|
|
215
|
+
dependsOn: config.dependsOn,
|
|
216
|
+
count: config.count,
|
|
217
|
+
lifecycle: config.lifecycle,
|
|
218
|
+
provisioners: config.provisioners,
|
|
219
|
+
connection: config.connection,
|
|
220
|
+
forEach: config.forEach
|
|
221
|
+
});
|
|
222
|
+
// integration - computed: false, optional: true, required: false
|
|
223
|
+
this._integration = new EventOrchestrationIntegrationList(this, "integration", false);
|
|
224
|
+
this._description = config.description;
|
|
225
|
+
this._id = config.id;
|
|
226
|
+
this._name = config.name;
|
|
227
|
+
this._team = config.team;
|
|
228
|
+
this._integration.internalValue = config.integration;
|
|
229
|
+
}
|
|
230
|
+
get description() {
|
|
231
|
+
return this.getStringAttribute('description');
|
|
232
|
+
}
|
|
233
|
+
set description(value) {
|
|
234
|
+
this._description = value;
|
|
235
|
+
}
|
|
236
|
+
resetDescription() {
|
|
237
|
+
this._description = undefined;
|
|
238
|
+
}
|
|
239
|
+
// Temporarily expose input value. Use with caution.
|
|
240
|
+
get descriptionInput() {
|
|
241
|
+
return this._description;
|
|
242
|
+
}
|
|
243
|
+
get id() {
|
|
244
|
+
return this.getStringAttribute('id');
|
|
245
|
+
}
|
|
246
|
+
set id(value) {
|
|
247
|
+
this._id = value;
|
|
248
|
+
}
|
|
249
|
+
resetId() {
|
|
250
|
+
this._id = undefined;
|
|
251
|
+
}
|
|
252
|
+
// Temporarily expose input value. Use with caution.
|
|
253
|
+
get idInput() {
|
|
254
|
+
return this._id;
|
|
255
|
+
}
|
|
256
|
+
get name() {
|
|
257
|
+
return this.getStringAttribute('name');
|
|
258
|
+
}
|
|
259
|
+
set name(value) {
|
|
260
|
+
this._name = value;
|
|
261
|
+
}
|
|
262
|
+
// Temporarily expose input value. Use with caution.
|
|
263
|
+
get nameInput() {
|
|
264
|
+
return this._name;
|
|
265
|
+
}
|
|
266
|
+
// routes - computed: true, optional: false, required: false
|
|
267
|
+
get routes() {
|
|
268
|
+
return this.getNumberAttribute('routes');
|
|
269
|
+
}
|
|
270
|
+
get team() {
|
|
271
|
+
return this.getStringAttribute('team');
|
|
272
|
+
}
|
|
273
|
+
set team(value) {
|
|
274
|
+
this._team = value;
|
|
275
|
+
}
|
|
276
|
+
resetTeam() {
|
|
277
|
+
this._team = undefined;
|
|
278
|
+
}
|
|
279
|
+
// Temporarily expose input value. Use with caution.
|
|
280
|
+
get teamInput() {
|
|
281
|
+
return this._team;
|
|
282
|
+
}
|
|
283
|
+
get integration() {
|
|
284
|
+
return this._integration;
|
|
285
|
+
}
|
|
286
|
+
putIntegration(value) {
|
|
287
|
+
this._integration.internalValue = value;
|
|
288
|
+
}
|
|
289
|
+
resetIntegration() {
|
|
290
|
+
this._integration.internalValue = undefined;
|
|
291
|
+
}
|
|
292
|
+
// Temporarily expose input value. Use with caution.
|
|
293
|
+
get integrationInput() {
|
|
294
|
+
return this._integration.internalValue;
|
|
295
|
+
}
|
|
296
|
+
// =========
|
|
297
|
+
// SYNTHESIS
|
|
298
|
+
// =========
|
|
299
|
+
synthesizeAttributes() {
|
|
300
|
+
return {
|
|
301
|
+
description: cdktn.stringToTerraform(this._description),
|
|
302
|
+
id: cdktn.stringToTerraform(this._id),
|
|
303
|
+
name: cdktn.stringToTerraform(this._name),
|
|
304
|
+
team: cdktn.stringToTerraform(this._team),
|
|
305
|
+
integration: cdktn.listMapper(eventOrchestrationIntegrationToTerraform, true)(this._integration.internalValue),
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
synthesizeHclAttributes() {
|
|
309
|
+
const attrs = {
|
|
310
|
+
description: {
|
|
311
|
+
value: cdktn.stringToHclTerraform(this._description),
|
|
312
|
+
isBlock: false,
|
|
313
|
+
type: "simple",
|
|
314
|
+
storageClassType: "string",
|
|
315
|
+
},
|
|
316
|
+
id: {
|
|
317
|
+
value: cdktn.stringToHclTerraform(this._id),
|
|
318
|
+
isBlock: false,
|
|
319
|
+
type: "simple",
|
|
320
|
+
storageClassType: "string",
|
|
321
|
+
},
|
|
322
|
+
name: {
|
|
323
|
+
value: cdktn.stringToHclTerraform(this._name),
|
|
324
|
+
isBlock: false,
|
|
325
|
+
type: "simple",
|
|
326
|
+
storageClassType: "string",
|
|
327
|
+
},
|
|
328
|
+
team: {
|
|
329
|
+
value: cdktn.stringToHclTerraform(this._team),
|
|
330
|
+
isBlock: false,
|
|
331
|
+
type: "simple",
|
|
332
|
+
storageClassType: "string",
|
|
333
|
+
},
|
|
334
|
+
integration: {
|
|
335
|
+
value: cdktn.listMapperHcl(eventOrchestrationIntegrationToHclTerraform, true)(this._integration.internalValue),
|
|
336
|
+
isBlock: true,
|
|
337
|
+
type: "list",
|
|
338
|
+
storageClassType: "EventOrchestrationIntegrationList",
|
|
339
|
+
},
|
|
340
|
+
};
|
|
341
|
+
// remove undefined attributes
|
|
342
|
+
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
exports.EventOrchestration = EventOrchestration;
|
|
346
|
+
_e = JSII_RTTI_SYMBOL_1;
|
|
347
|
+
EventOrchestration[_e] = { fqn: "@cdktn/provider-pagerduty.eventOrchestration.EventOrchestration", version: "15.0.0" };
|
|
348
|
+
// =================
|
|
349
|
+
// STATIC PROPERTIES
|
|
350
|
+
// =================
|
|
351
|
+
EventOrchestration.tfResourceType = "pagerduty_event_orchestration";
|
|
352
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXZlbnQtb3JjaGVzdHJhdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBMkNBLGdIQU9DO0FBR0Qsc0hBUUM7QUE4REQsNEZBT0M7QUFHRCxrR0FRQzs7QUFwSUQsK0JBQStCO0FBa0MvQixTQUFnQixrREFBa0QsQ0FBQyxNQUFnRDtJQUNqSCxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQUMsT0FBTyxNQUFNLENBQUM7SUFBQyxDQUFDO0lBQzVGLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvSEFBb0gsQ0FBQyxDQUFDO0lBQ3hJLENBQUM7SUFDRCxPQUFPLEVBQ04sQ0FBQTtBQUNILENBQUM7QUFHRCxTQUFnQixxREFBcUQsQ0FBQyxNQUFnRDtJQUNwSCxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQUMsT0FBTyxNQUFNLENBQUM7SUFBQyxDQUFDO0lBQzVGLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvSEFBb0gsQ0FBQyxDQUFDO0lBQ3hJLENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRyxFQUNiLENBQUM7SUFDRixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFhLHNEQUF1RCxTQUFRLEtBQUssQ0FBQyxhQUFhO0lBRzdGOzs7OztNQUtFO0lBQ0YsWUFBbUIsaUJBQTZDLEVBQUUsa0JBQTBCLEVBQUUs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LEVBQUUsQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFFLENBQUMsQ0FBQTtJQUM1SCxDQUFDOztBQS9MSCxnREFnTUM7OztBQTlMQyxvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNHLGlDQUFjLEdBQUcsK0JBQStCLEFBQWxDLENBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMjEsIDIwMjZcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuLy8gaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL3BhZ2VyZHV0eS9wYWdlcmR1dHkvMy4zMS4wL2RvY3MvcmVzb3VyY2VzL2V2ZW50X29yY2hlc3RyYXRpb25cbi8vIGdlbmVyYXRlZCBmcm9tIHRlcnJhZm9ybSByZXNvdXJjZSBzY2hlbWFcblxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgKiBhcyBjZGt0biBmcm9tICdjZGt0bic7XG5cbi8vIENvbmZpZ3VyYXRpb25cblxuZXhwb3J0IGludGVyZmFjZSBFdmVudE9yY2hlc3RyYXRpb25Db25maWcgZXh0ZW5kcyBjZGt0bi5UZXJyYWZvcm1NZXRhQXJndW1lbnRzIHtcbiAgLyoqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvcGFnZXJkdXR5L3BhZ2VyZHV0eS8zLjMxLjAvZG9jcy9yZXNvdXJjZXMvZXZlbnRfb3JjaGVzdHJhdGlvbiNkZXNjcmlwdGlvbiBFdmVudE9yY2hlc3RyYXRpb24jZGVzY3JpcHRpb259XG4gICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9wYWdlcmR1dHkvcGFnZXJkdXR5LzMuMzEuMC9kb2NzL3Jlc291cmNlcy9ldmVudF9vcmNoZXN0cmF0aW9uI2lkIEV2ZW50T3JjaGVzdHJhdGlvbiNpZH1cbiAgKlxuICAqIFBsZWFzZSBiZSBhd2FyZSB0aGF0IHRoZSBpZCBmaWVsZCBpcyBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIGFsbCByZXNvdXJjZXMgaW4gVGVycmFmb3JtIHByb3ZpZGVycyB1c2luZyBhIFRlcnJhZm9ybSBwcm92aWRlciBTREsgdmVyc2lvbiBiZWxvdyAyLlxuICAqIElmIHlvdSBleHBlcmllbmNlIHByb2JsZW1zIHNldHRpbmcgdGhpcyB2YWx1ZSBpdCBtaWdodCBub3QgYmUgc2V0dGFibGUuIFBsZWFzZSB0YWtlIGEgbG9vayBhdCB0aGUgcHJvdmlkZXIgZG9jdW1lbnRhdGlvbiB0byBlbnN1cmUgaXQgc2hvdWxkIGJlIHNldHRhYmxlLlxuICAqL1xuICByZWFkb25seSBpZD86IHN0cmluZztcbiAgLyoqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvcGFnZXJkdXR5L3BhZ2VyZHV0eS8zLjMxLjAvZG9jcy9yZXNvdXJjZXMvZXZlbnRfb3JjaGVzdHJhdGlvbiNuYW1lIEV2ZW50T3JjaGVzdHJhdGlvbiNuYW1lfVxuICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL3BhZ2VyZHV0eS9wYWdlcmR1dHkvMy4zMS4wL2RvY3MvcmVzb3VyY2VzL2V2ZW50X29yY2hlc3RyYXRpb24jdGVhbSBFdmVudE9yY2hlc3RyYXRpb24jdGVhbX1cbiAgKi9cbiAgcmVhZG9ubHkgdGVhbT86IHN0cmluZztcbiAgLyoqXG4gICogaW50ZWdyYXRpb24gYmxvY2tcbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL3BhZ2VyZHV0eS9wYWdlcmR1dHkvMy4zMS4wL2RvY3MvcmVzb3VyY2VzL2V2ZW50X29yY2hlc3RyYXRpb24jaW50ZWdyYXRpb24gRXZlbnRPcmNoZXN0cmF0aW9uI2ludGVncmF0aW9ufVxuICAqL1xuICByZWFkb25seSBpbnRlZ3JhdGlvbj86IEV2ZW50T3JjaGVzdHJhdGlvbkludGVncmF0aW9uW10gfCBjZGt0bi5JUmVzb2x2YWJsZTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRPcmNoZXN0cmF0aW9uSW50ZWdyYXRpb25QYXJhbWV0ZXJzIHtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZW50T3JjaGVzdHJhdGlvbkludGVncmF0aW9uUGFyYW1ldGVyc1RvVGVycmFmb3JtKHN0cnVjdD86IEV2ZW50T3JjaGVzdHJhdGlvbkludGVncmF0aW9uUGFyYW1ldGVycyk6IGFueSB7XG4gIGlmICghY2RrdG4uY2FuSW5zcGVjdChzdHJ1Y3QpIHx8IGNka3RuLlRva2VuaXphdGlvbi5pc1Jlc29sdmFibGUoc3RydWN0KSkgeyByZXR1cm4gc3RydWN0OyB9XG4gIGlmIChjZGt0bi5pc0NvbXBsZXhFbGVtZW50KHN0cnVjdCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJBIGNvbXBsZXggZWxlbWVudCB3YXMgdXNlZCBhcyBjb25maWd1cmF0aW9uLCB0aGlzIGlzIG5vdCBzdXBwb3J0ZWQ6IGh0dHBzOi8vY2RrLnRmL2NvbXBsZXgtb2JqZWN0LWFzLWNvbmZpZ3VyYXRpb25cIik7XG4gIH1cbiAgcmV0dXJuIHtcbiAgfVxufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBldmVudE9yY2hlc3RyYXRpb25JbnRlZ3JhdGlvblBhcmFtZXRlcnNUb0hjbFRlcnJhZm9ybShzdHJ1Y3Q/OiBFdmVudE9yY2hlc3RyYXRpb25JbnRlZ3JhdGlvblBhcmFtZXRlcnMpOiBhbnkge1xuICBpZiAoIWNka3RuLmNhbkluc3BlY3Qoc3RydWN0KSB8fCBjZGt0bi5Ub2tlbml6YXRpb24uaXNSZXNvbHZhYmxlKHN0cnVjdCkpIHsgcmV0dXJuIHN0cnVjdDsgfVxuICBpZiAoY2RrdG4uaXNDb21wbGV4RWxlbWVudChzdHJ1Y3QpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQSBjb21wbGV4IGVsZW1lbnQgd2FzIHVzZWQgYXMgY29uZmlndXJhdGlvbiwgdGhpcyBpcyBub3Qgc3VwcG9ydGVkOiBodHRwczovL2Nkay50Zi9jb21wbGV4LW9iamVjdC1hcy1jb25maWd1cmF0aW9uXCIpO1xuICB9XG4gIGNvbnN0IGF0dHJzID0ge1xuICB9O1xuICByZXR1cm4gYXR0cnM7XG59XG5cbmV4cG9ydCBjbGFzcyBFdmVudE9yY2hlc3RyYXRpb25JbnRlZ3JhdGlvblBhcmFtZXRlcnNPdXRwdXRSZWZlcmVuY2UgZXh0ZW5kcyBjZGt0bi5Db21wbGV4T2JqZWN0IHtcbiAgcHJpdmF0ZSBpc0VtcHR5T2JqZWN0ID0gZmFsc2U7XG5cbiAgLyoqXG4gICogQHBhcmFtIHRlcnJhZm9ybVJlc291cmNlIFRoZSBwYXJlbnQgcmVzb3VyY2VcbiAgKiBAcGFyYW0gdGVycmFmb3JtQXR0cmlidXRlIFRoZSBhdHRyaWJ1dGUgb24gdGhlIHBhcmVudCByZXNvdXJjZSB0aGlzIGNsYXNzIGlzIHJlZmVyZW5jaW5nXG4gICogQHBhcmFtIGNvbXBsZXhPYmplY3RJbmRleCB0aGUgaW5kZXggb2YgdGhpcyBpdGVtIGluIHRoZSBsaXN0XG4gICogQHBhcmFtIGNvbXBsZXhPYmplY3RJc0Zyb21TZXQgd2hldGhlciB0aGUgbGlzdCBpcyB3cmFwcGluZyBhIHNldCAod2lsbCBhZGQgdG9saXN0KCkgdG8gYmUgYWJsZSB0byBhY2Nlc3MgYW4gaXRlbSB2aWEgYW4gaW5kZXgpXG4gICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih0ZXJyYWZvcm1SZXNvdXJjZTogY2RrdG4uSUludGVycG9sYXRpbmdQYXJlbnQsIHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nLCBjb21wbGV4T2JqZWN0SW5kZXg6IG51bWJlciwgY29tcGxleE9iamVjdElzRnJvbVNldDogYm9vbGVhbikge1xuICAgIHN1cGVyKHRlcnJhZm9ybVJlc291cmNlLCB0ZXJyYWZvcm1BdHRyaWJ1dGUsIGNvbXBsZXhPYmplY3RJc0Zyb21TZXQsIGNvbXBsZXhPYmplY3RJbmRleCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGludGVybmFsVmFsdWUoKTogRXZlbnRPcmNoZXN0cmF0aW9uSW50ZWdyYXRpb25QYXJhbWV0ZXJzIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgaGFzQW55VmFsdWVzID0gdGhpcy5pc0VtcHR5T2JqZWN0O1xuICAgIGNvbnN0IGludGVybmFsVmFsdWVSZXN1bHQ6IGFueSA9IHt9O1xuICAgIHJldHVybiBoYXNBbnlWYWx1ZXMgPyBpbnRlcm5hbFZhbHVlUmVzdWx0IDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIHNldCBpbnRlcm5hbFZhbHVlKHZhbHVlOiBFdmVudE9yY2hlc3RyYXRpb25JbnRlZ3JhdGlvblBhcmFtZXRlcnMgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5pc0VtcHR5T2JqZWN0ID0gZmFsc2U7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5pc0VtcHR5T2JqZWN0ID0gT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMDtcbiAgICB9XG4gIH1cblxuICAvLyByb3V0aW5nX2tleSAtIGNvbXB1dGVkOiB0cnVlLCBvcHRpb25hbDogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZVxuICBwdWJsaWMgZ2V0IHJvdXRpbmdLZXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nQXR0cmlidXRlKCdyb3V0aW5nX2tleScpO1xuICB9XG5cbiAgLy8gdHlwZSAtIGNvbXB1dGVkOiB0cnVlLCBvcHRpb25hbDogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZVxuICBwdWJsaWMgZ2V0IHR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nQXR0cmlidXRlKCd0eXBlJyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEV2ZW50T3JjaGVzdHJhdGlvbkludGVncmF0aW9uUGFyYW1ldGVyc0xpc3QgZXh0ZW5kcyBjZGt0bi5Db21wbGV4TGlzdCB7XG5cbiAgLyoqXG4gICogQHBhcmFtIHRlcnJhZm9ybVJlc291cmNlIFRoZSBwYXJlbnQgcmVzb3VyY2VcbiAgKiBAcGFyYW0gdGVycmFmb3JtQXR0cmlidXRlIFRoZSBhdHRyaWJ1dGUgb24gdGhlIHBhcmVudCByZXNvdXJjZSB0aGlzIGNsYXNzIGlzIHJlZmVyZW5jaW5nXG4gICogQHBhcmFtIHdyYXBzU2V0IHdoZXRoZXIgdGhlIGxpc3QgaXMgd3JhcHBpbmcgYSBzZXQgKHdpbGwgYWRkIHRvbGlzdCgpIHRvIGJlIGFibGUgdG8gYWNjZXNzIGFuIGl0ZW0gdmlhIGFuIGluZGV4KVxuICAqL1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdGVycmFmb3JtUmVzb3VyY2U6IGNka3RuLklJbnRlcnBvbGF0aW5nUGFyZW50LCBwcm90ZWN0ZWQgdGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcsIHByb3RlY3RlZCB3cmFwc1NldDogYm9vbGVhbikge1xuICAgIHN1cGVyKHRlcnJhZm9ybVJlc291cmNlLCB0ZXJyYWZvcm1BdHRyaWJ1dGUsIHdyYXBzU2V0KVxuICB9XG5cbiAgLyoqXG4gICogQHBhcmFtIGluZGV4IHRoZSBpbmRleCBvZiB0aGUgaXRlbSB0byByZXR1cm5cbiAgKi9cbiAgcHVibGljIGdldChpbmRleDogbnVtYmVyKTogRXZlbnRPcmNoZXN0cmF0aW9uSW50ZWdyYXRpb25QYXJhbWV0ZXJzT3V0cHV0UmVmZXJlbmNlIHtcbiAgICByZXR1cm4gbmV3IEV2ZW50T3JjaGVzdHJhdGlvbkludGVncmF0aW9uUGFyYW1ldGVyc091dHB1dFJlZmVyZW5jZSh0aGlzLnRlcnJhZm9ybVJlc291cmNlLCB0aGlzLnRlcnJhZm9ybUF0dHJpYnV0ZSwgaW5kZXgsIHRoaXMud3JhcHNTZXQpO1xuICB9XG59XG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50T3JjaGVzdHJhdGlvbkludGVncmF0aW9uIHtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZW50T3JjaGVzdHJhdGlvbkludGVncmF0aW9uVG9UZXJyYWZvcm0oc3RydWN0PzogRXZlbnRPcmNoZXN0cmF0aW9uSW50ZWdyYXRpb24gfCBjZGt0bi5JUmVzb2x2YWJsZSk6IGFueSB7XG4gIGlmICghY2RrdG4uY2FuSW5zcGVjdChzdHJ1Y3QpIHx8IGNka3RuLlRva2VuaXphdGlvbi5pc1Jlc29sdmFibGUoc3RydWN0KSkgeyByZXR1cm4gc3RydWN0OyB9XG4gIGlmIChjZGt0bi5pc0NvbXBsZXhFbGVtZW50KHN0cnVjdCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJBIGNvbXBsZXggZWxlbWVudCB3YXMgdXNlZCBhcyBjb25maWd1cmF0aW9uLCB0aGlzIGlzIG5vdCBzdXBwb3J0ZWQ6IGh0dHBzOi8vY2RrLnRmL2NvbXBsZXgtb2JqZWN0LWFzLWNvbmZpZ3VyYXRpb25cIik7XG4gIH1cbiAgcmV0dXJuIHtcbiAgfVxufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBldmVudE9yY2hlc3RyYXRpb25JbnRlZ3JhdGlvblRvSGNsVGVycmFmb3JtKHN0cnVjdD86IEV2ZW50T3JjaGVzdHJhdGlvbkludGVncmF0aW9uIHwgY2RrdG4uSVJlc29sdmFibGUpOiBhbnkge1xuICBpZiAoIWNka3RuLmNhbkluc3BlY3Qoc3RydWN0KSB8fCBjZGt0bi5Ub2tlbml6YXRpb24uaXNSZXNvbHZhYmxlKHN0cnVjdCkpIHsgcmV0dXJuIHN0cnVjdDsgfVxuICBpZiAoY2RrdG4uaXNDb21wbGV4RWxlbWVudChzdHJ1Y3QpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQSBjb21wbGV4IGVsZW1lbnQgd2FzIHVzZWQgYXMgY29uZmlndXJhdGlvbiwgdGhpcyBpcyBub3Qgc3VwcG9ydGVkOiBodHRwczovL2Nkay50Zi9jb21wbGV4LW9iamVjdC1hcy1jb25maWd1cmF0aW9uXCIpO1xuICB9XG4gIGNvbnN0IGF0dHJzID0ge1xuICB9O1xuICByZXR1cm4gYXR0cnM7XG59XG5cbmV4cG9ydCBjbGFzcyBFdmVudE9yY2hlc3RyYXRpb25JbnRlZ3JhdGlvbk91dHB1dFJlZmVyZW5jZSBleHRlbmRzIGNka3RuLkNvbXBsZXhPYmplY3Qge1xuICBwcml2YXRlIGlzRW1wdHlPYmplY3QgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZXNvbHZhYmxlVmFsdWU/OiBjZGt0bi5JUmVzb2x2YWJsZTtcblxuICAvKipcbiAgKiBAcGFyYW0gdGVycmFmb3JtUmVzb3VyY2UgVGhlIHBhcmVudCByZXNvdXJjZVxuICAqIEBwYXJhbSB0ZXJyYWZvcm1BdHRyaWJ1dGUgVGhlIGF0dHJpYnV0ZSBvbiB0aGUgcGFyZW50IHJlc291cmNlIHRoaXMgY2xhc3MgaXMgcmVmZXJlbmNpbmdcbiAgKiBAcGFyYW0gY29tcGxleE9iamVjdEluZGV4IHRoZSBpbmRleCBvZiB0aGlzIGl0ZW0gaW4gdGhlIGxpc3RcbiAgKiBAcGFyYW0gY29tcGxleE9iamVjdElzRnJvbVNldCB3aGV0aGVyIHRoZSBsaXN0IGlzIHdyYXBwaW5nIGEgc2V0ICh3aWxsIGFkZCB0b2xpc3QoKSB0byBiZSBhYmxlIHRvIGFjY2VzcyBhbiBpdGVtIHZpYSBhbiBpbmRleClcbiAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHRlcnJhZm9ybVJlc291cmNlOiBjZGt0bi5JSW50ZXJwb2xhdGluZ1BhcmVudCwgdGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcsIGNvbXBsZXhPYmplY3RJbmRleDogbnVtYmVyLCBjb21wbGV4T2JqZWN0SXNGcm9tU2V0OiBib29sZWFuKSB7XG4gICAgc3VwZXIodGVycmFmb3JtUmVzb3VyY2UsIHRlcnJhZm9ybUF0dHJpYnV0ZSwgY29tcGxleE9iamVjdElzRnJvbVNldCwgY29tcGxleE9iamVjdEluZGV4KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW50ZXJuYWxWYWx1ZSgpOiBFdmVudE9yY2hlc3RyYXRpb25JbnRlZ3JhdGlvbiB8IGNka3RuLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5yZXNvbHZhYmxlVmFsdWUpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlc29sdmFibGVWYWx1ZTtcbiAgICB9XG4gICAgbGV0IGhhc0FueVZhbHVlcyA9IHRoaXMuaXNFbXB0eU9iamVjdDtcbiAgICBjb25zdCBpbnRlcm5hbFZhbHVlUmVzdWx0OiBhbnkgPSB7fTtcbiAgICByZXR1cm4gaGFzQW55VmFsdWVzID8gaW50ZXJuYWxWYWx1ZVJlc3VsdCA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgaW50ZXJuYWxWYWx1ZSh2YWx1ZTogRXZlbnRPcmNoZXN0cmF0aW9uSW50ZWdyYXRpb24gfCBjZGt0bi5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmlzRW1wdHlPYmplY3QgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVzb2x2YWJsZVZhbHVlID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBlbHNlIGlmIChjZGt0bi5Ub2tlbml6YXRpb24uaXNSZXNvbHZhYmxlKHZhbHVlKSkge1xuICAgICAgdGhpcy5pc0VtcHR5T2JqZWN0ID0gZmFsc2U7XG4gICAgICB0aGlzLnJlc29sdmFibGVWYWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuaXNFbXB0eU9iamVjdCA9IE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGggPT09IDA7XG4gICAgICB0aGlzLnJlc29sdmFibGVWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAvLyBpZCAtIGNvbXB1dGVkOiB0cnVlLCBvcHRpb25hbDogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZVxuICBwdWJsaWMgZ2V0IGlkKCkge1xuICAgIHJldHVybiB0aGlzLmdldFN0cmluZ0F0dHJpYnV0ZSgnaWQnKTtcbiAgfVxuXG4gIC8vIGxhYmVsIC0gY29tcHV0ZWQ6IHRydWUsIG9wdGlvbmFsOiBmYWxzZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHB1YmxpYyBnZXQgbGFiZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nQXR0cmlidXRlKCdsYWJlbCcpO1xuICB9XG5cbiAgLy8gcGFyYW1ldGVycyAtIGNvbXB1dGVkOiB0cnVlLCBvcHRpb25hbDogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9wYXJhbWV0ZXJzID0gbmV3IEV2ZW50T3JjaGVzdHJhdGlvbkludGVncmF0aW9uUGFyYW1ldGVyc0xpc3QodGhpcywgXCJwYXJhbWV0ZXJzXCIsIGZhbHNlKTtcbiAgcHVibGljIGdldCBwYXJhbWV0ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLl9wYXJhbWV0ZXJzO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFdmVudE9yY2hlc3RyYXRpb25JbnRlZ3JhdGlvbkxpc3QgZXh0ZW5kcyBjZGt0bi5Db21wbGV4TGlzdCB7XG4gIHB1YmxpYyBpbnRlcm5hbFZhbHVlPyA6IEV2ZW50T3JjaGVzdHJhdGlvbkludGVncmF0aW9uW10gfCBjZGt0bi5JUmVzb2x2YWJsZVxuXG4gIC8qKlxuICAqIEBwYXJhbSB0ZXJyYWZvcm1SZXNvdXJjZSBUaGUgcGFyZW50IHJlc291cmNlXG4gICogQHBhcmFtIHRlcnJhZm9ybUF0dHJpYnV0ZSBUaGUgYXR0cmlidXRlIG9uIHRoZSBwYXJlbnQgcmVzb3VyY2UgdGhpcyBjbGFzcyBpcyByZWZlcmVuY2luZ1xuICAqIEBwYXJhbSB3cmFwc1NldCB3aGV0aGVyIHRoZSBsaXN0IGlzIHdyYXBwaW5nIGEgc2V0ICh3aWxsIGFkZCB0b2xpc3QoKSB0byBiZSBhYmxlIHRvIGFjY2VzcyBhbiBpdGVtIHZpYSBhbiBpbmRleClcbiAgKi9cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHRlcnJhZm9ybVJlc291cmNlOiBjZGt0bi5JSW50ZXJwb2xhdGluZ1BhcmVudCwgcHJvdGVjdGVkIHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nLCBwcm90ZWN0ZWQgd3JhcHNTZXQ6IGJvb2xlYW4pIHtcbiAgICBzdXBlcih0ZXJyYWZvcm1SZXNvdXJjZSwgdGVycmFmb3JtQXR0cmlidXRlLCB3cmFwc1NldClcbiAgfVxuXG4gIC8qKlxuICAqIEBwYXJhbSBpbmRleCB0aGUgaW5kZXggb2YgdGhlIGl0ZW0gdG8gcmV0dXJuXG4gICovXG4gIHB1YmxpYyBnZXQoaW5kZXg6IG51bWJlcik6IEV2ZW50T3JjaGVzdHJhdGlvbkludGVncmF0aW9uT3V0cHV0UmVmZXJlbmNlIHtcbiAgICByZXR1cm4gbmV3IEV2ZW50T3JjaGVzdHJhdGlvbkludGVncmF0aW9uT3V0cHV0UmVmZXJlbmNlKHRoaXMudGVycmFmb3JtUmVzb3VyY2UsIHRoaXMudGVycmFmb3JtQXR0cmlidXRlLCBpbmRleCwgdGhpcy53cmFwc1NldCk7XG4gIH1cbn1cblxuLyoqXG4qIFJlcHJlc2VudHMgYSB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL3BhZ2VyZHV0eS9wYWdlcmR1dHkvMy4zMS4wL2RvY3MvcmVzb3VyY2VzL2V2ZW50X29yY2hlc3RyYXRpb24gcGFnZXJkdXR5X2V2ZW50X29yY2hlc3RyYXRpb259XG4qL1xuZXhwb3J0IGNsYXNzIEV2ZW50T3JjaGVzdHJhdGlvbiBleHRlbmRzIGNka3RuLlRlcnJhZm9ybVJlc291cmNlIHtcblxuICAvLyA9PT09PT09PT09PT09PT09PVxuICAvLyBTVEFUSUMgUFJPUEVSVElFU1xuICAvLyA9PT09PT09PT09PT09PT09PVxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHRmUmVzb3VyY2VUeXBlID0gXCJwYWdlcmR1dHlfZXZlbnRfb3JjaGVzdHJhdGlvblwiO1xuXG4gIC8vID09PT09PT09PT09PT09XG4gIC8vIFNUQVRJQyBNZXRob2RzXG4gIC8vID09PT09PT09PT09PT09XG4gIC8qKlxuICAqIEdlbmVyYXRlcyBDREtUTiBjb2RlIGZvciBpbXBvcnRpbmcgYSBFdmVudE9yY2hlc3RyYXRpb24gcmVzb3VyY2UgdXBvbiBydW5uaW5nIFwiY2RrdG4gcGxhbiA8c3RhY2stbmFtZT5cIlxuICAqIEBwYXJhbSBzY29wZSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0XG4gICogQHBhcmFtIGltcG9ydFRvSWQgVGhlIGNvbnN0cnVjdCBpZCB1c2VkIGluIHRoZSBnZW5lcmF0ZWQgY29uZmlnIGZvciB0aGUgRXZlbnRPcmNoZXN0cmF0aW9uIHRvIGltcG9ydFxuICAqIEBwYXJhbSBpbXBvcnRGcm9tSWQgVGhlIGlkIG9mIHRoZSBleGlzdGluZyBFdmVudE9yY2hlc3RyYXRpb24gdGhhdCBzaG91bGQgYmUgaW1wb3J0ZWQuIFJlZmVyIHRvIHRoZSB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL3BhZ2VyZHV0eS9wYWdlcmR1dHkvMy4zMS4wL2RvY3MvcmVzb3VyY2VzL2V2ZW50X29yY2hlc3RyYXRpb24jaW1wb3J0IGltcG9ydCBzZWN0aW9ufSBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGlzIHJlc291cmNlIGZvciB0aGUgaWQgdG8gdXNlXG4gICogQHBhcmFtIHByb3ZpZGVyPyBPcHRpb25hbCBpbnN0YW5jZSBvZiB0aGUgcHJvdmlkZXIgd2hlcmUgdGhlIEV2ZW50T3JjaGVzdHJhdGlvbiB0byBpbXBvcnQgaXMgZm91bmRcbiAgKi9cbiAgcHVibGljIHN0YXRpYyBnZW5lcmF0ZUNvbmZpZ0ZvckltcG9ydChzY29wZTogQ29uc3RydWN0LCBpbXBvcnRUb0lkOiBzdHJpbmcsIGltcG9ydEZyb21JZDogc3RyaW5nLCBwcm92aWRlcj86IGNka3RuLlRlcnJhZm9ybVByb3ZpZGVyKSB7XG4gICAgICAgIHJldHVybiBuZXcgY2RrdG4uSW1wb3J0YWJsZVJlc291cmNlKHNjb3BlLCBpbXBvcnRUb0lkLCB7IHRlcnJhZm9ybVJlc291cmNlVHlwZTogXCJwYWdlcmR1dHlfZXZlbnRfb3JjaGVzdHJhdGlvblwiLCBpbXBvcnRJZDogaW1wb3J0RnJvbUlkLCBwcm92aWRlciB9KTtcbiAgICAgIH1cblxuICAvLyA9PT09PT09PT09PVxuICAvLyBJTklUSUFMSVpFUlxuICAvLyA9PT09PT09PT09PVxuXG4gIC8qKlxuICAqIENyZWF0ZSBhIG5ldyB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL3BhZ2VyZHV0eS9wYWdlcmR1dHkvMy4zMS4wL2RvY3MvcmVzb3VyY2VzL2V2ZW50X29yY2hlc3RyYXRpb24gcGFnZXJkdXR5X2V2ZW50X29yY2hlc3RyYXRpb259IFJlc291cmNlXG4gICpcbiAgKiBAcGFyYW0gc2NvcGUgVGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdFxuICAqIEBwYXJhbSBpZCBUaGUgc2NvcGVkIGNvbnN0cnVjdCBJRC4gTXVzdCBiZSB1bmlxdWUgYW1vbmdzdCBzaWJsaW5ncyBpbiB0aGUgc2FtZSBzY29wZVxuICAqIEBwYXJhbSBvcHRpb25zIEV2ZW50T3JjaGVzdHJhdGlvbkNvbmZpZ1xuICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgY29uZmlnOiBFdmVudE9yY2hlc3RyYXRpb25Db25maWcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHRlcnJhZm9ybVJlc291cmNlVHlwZTogJ3BhZ2VyZHV0eV9ldmVudF9vcmNoZXN0cmF0aW9uJyxcbiAgICAgIHRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhOiB7XG4gICAgICAgIHByb3ZpZGVyTmFtZTogJ3BhZ2VyZHV0eScsXG4gICAgICAgIHByb3ZpZGVyVmVyc2lvbjogJzMuMzEuMCcsXG4gICAgICAgIHByb3ZpZGVyVmVyc2lvbkNvbnN0cmFpbnQ6ICd+PiAzLjAnXG4gICAgICB9LFxuICAgICAgcHJvdmlkZXI6IGNvbmZpZy5wcm92aWRlcixcbiAgICAgIGRlcGVuZHNPbjogY29uZmlnLmRlcGVuZHNPbixcbiAgICAgIGNvdW50OiBjb25maWcuY291bnQsXG4gICAgICBsaWZlY3ljbGU6IGNvbmZpZy5saWZlY3ljbGUsXG4gICAgICBwcm92aXNpb25lcnM6IGNvbmZpZy5wcm92aXNpb25lcnMsXG4gICAgICBjb25uZWN0aW9uOiBjb25maWcuY29ubmVjdGlvbixcbiAgICAgIGZvckVhY2g6IGNvbmZpZy5mb3JFYWNoXG4gICAgfSk7XG4gICAgdGhpcy5fZGVzY3JpcHRpb24gPSBjb25maWcuZGVzY3JpcHRpb247XG4gICAgdGhpcy5faWQgPSBjb25maWcuaWQ7XG4gICAgdGhpcy5fbmFtZSA9IGNvbmZpZy5uYW1lO1xuICAgIHRoaXMuX3RlYW0gPSBjb25maWcudGVhbTtcbiAgICB0aGlzLl9pbnRlZ3JhdGlvbi5pbnRlcm5hbFZhbHVlID0gY29uZmlnLmludGVncmF0aW9uO1xuICB9XG5cbiAgLy8gPT09PT09PT09PVxuICAvLyBBVFRSSUJVVEVTXG4gIC8vID09PT09PT09PT1cblxuICAvLyBkZXNjcmlwdGlvbiAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9kZXNjcmlwdGlvbj86IHN0cmluZzsgXG4gIHB1YmxpYyBnZXQgZGVzY3JpcHRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nQXR0cmlidXRlKCdkZXNjcmlwdGlvbicpO1xuICB9XG4gIHB1YmxpYyBzZXQgZGVzY3JpcHRpb24odmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2Rlc2NyaXB0aW9uID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0RGVzY3JpcHRpb24oKSB7XG4gICAgdGhpcy5fZGVzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IGRlc2NyaXB0aW9uSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rlc2NyaXB0aW9uO1xuICB9XG5cbiAgLy8gaWQgLSBjb21wdXRlZDogdHJ1ZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9pZD86IHN0cmluZzsgXG4gIHB1YmxpYyBnZXQgaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nQXR0cmlidXRlKCdpZCcpO1xuICB9XG4gIHB1YmxpYyBzZXQgaWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2lkID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0SWQoKSB7XG4gICAgdGhpcy5faWQgPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IGlkSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lkO1xuICB9XG5cbiAgLy8gbmFtZSAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IGZhbHNlLCByZXF1aXJlZDogdHJ1ZVxuICBwcml2YXRlIF9uYW1lPzogc3RyaW5nOyBcbiAgcHVibGljIGdldCBuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmdldFN0cmluZ0F0dHJpYnV0ZSgnbmFtZScpO1xuICB9XG4gIHB1YmxpYyBzZXQgbmFtZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fbmFtZSA9IHZhbHVlO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCBuYW1lSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX25hbWU7XG4gIH1cblxuICAvLyByb3V0ZXMgLSBjb21wdXRlZDogdHJ1ZSwgb3B0aW9uYWw6IGZhbHNlLCByZXF1aXJlZDogZmFsc2VcbiAgcHVibGljIGdldCByb3V0ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TnVtYmVyQXR0cmlidXRlKCdyb3V0ZXMnKTtcbiAgfVxuXG4gIC8vIHRlYW0gLSBjb21wdXRlZDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfdGVhbT86IHN0cmluZzsgXG4gIHB1YmxpYyBnZXQgdGVhbSgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmdBdHRyaWJ1dGUoJ3RlYW0nKTtcbiAgfVxuICBwdWJsaWMgc2V0IHRlYW0odmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3RlYW0gPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVzZXRUZWFtKCkge1xuICAgIHRoaXMuX3RlYW0gPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IHRlYW1JbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdGVhbTtcbiAgfVxuXG4gIC8vIGludGVncmF0aW9uIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX2ludGVncmF0aW9uID0gbmV3IEV2ZW50T3JjaGVzdHJhdGlvbkludGVncmF0aW9uTGlzdCh0aGlzLCBcImludGVncmF0aW9uXCIsIGZhbHNlKTtcbiAgcHVibGljIGdldCBpbnRlZ3JhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5faW50ZWdyYXRpb247XG4gIH1cbiAgcHVibGljIHB1dEludGVncmF0aW9uKHZhbHVlOiBFdmVudE9yY2hlc3RyYXRpb25JbnRlZ3JhdGlvbltdIHwgY2RrdG4uSVJlc29sdmFibGUpIHtcbiAgICB0aGlzLl9pbnRlZ3JhdGlvbi5pbnRlcm5hbFZhbHVlID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0SW50ZWdyYXRpb24oKSB7XG4gICAgdGhpcy5faW50ZWdyYXRpb24uaW50ZXJuYWxWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgaW50ZWdyYXRpb25JbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5faW50ZWdyYXRpb24uaW50ZXJuYWxWYWx1ZTtcbiAgfVxuXG4gIC8vID09PT09PT09PVxuICAvLyBTWU5USEVTSVNcbiAgLy8gPT09PT09PT09XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgZGVzY3JpcHRpb246IGNka3RuLnN0cmluZ1RvVGVycmFmb3JtKHRoaXMuX2Rlc2NyaXB0aW9uKSxcbiAgICAgIGlkOiBjZGt0bi5zdHJpbmdUb1RlcnJhZm9ybSh0aGlzLl9pZCksXG4gICAgICBuYW1lOiBjZGt0bi5zdHJpbmdUb1RlcnJhZm9ybSh0aGlzLl9uYW1lKSxcbiAgICAgIHRlYW06IGNka3RuLnN0cmluZ1RvVGVycmFmb3JtKHRoaXMuX3RlYW0pLFxuICAgICAgaW50ZWdyYXRpb246IGNka3RuLmxpc3RNYXBwZXIoZXZlbnRPcmNoZXN0cmF0aW9uSW50ZWdyYXRpb25Ub1RlcnJhZm9ybSwgdHJ1ZSkodGhpcy5faW50ZWdyYXRpb24uaW50ZXJuYWxWYWx1ZSksXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplSGNsQXR0cmlidXRlcygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgY29uc3QgYXR0cnMgPSB7XG4gICAgICBkZXNjcmlwdGlvbjoge1xuICAgICAgICB2YWx1ZTogY2RrdG4uc3RyaW5nVG9IY2xUZXJyYWZvcm0odGhpcy5fZGVzY3JpcHRpb24pLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICBpZDoge1xuICAgICAgICB2YWx1ZTogY2RrdG4uc3RyaW5nVG9IY2xUZXJyYWZvcm0odGhpcy5faWQpLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICBuYW1lOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0bi5zdHJpbmdUb0hjbFRlcnJhZm9ybSh0aGlzLl9uYW1lKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAgdGVhbToge1xuICAgICAgICB2YWx1ZTogY2RrdG4uc3RyaW5nVG9IY2xUZXJyYWZvcm0odGhpcy5fdGVhbSksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIGludGVncmF0aW9uOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0bi5saXN0TWFwcGVySGNsKGV2ZW50T3JjaGVzdHJhdGlvbkludGVncmF0aW9uVG9IY2xUZXJyYWZvcm0sIHRydWUpKHRoaXMuX2ludGVncmF0aW9uLmludGVybmFsVmFsdWUpLFxuICAgICAgICBpc0Jsb2NrOiB0cnVlLFxuICAgICAgICB0eXBlOiBcImxpc3RcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJFdmVudE9yY2hlc3RyYXRpb25JbnRlZ3JhdGlvbkxpc3RcIixcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIC8vIHJlbW92ZSB1bmRlZmluZWQgYXR0cmlidXRlc1xuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoYXR0cnMpLmZpbHRlcigoW18sIHZhbHVlXSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZS52YWx1ZSAhPT0gdW5kZWZpbmVkICkpXG4gIH1cbn1cbiJdfQ==
|