@mikarinneoracle/oci-cdk-code-only-preview 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/package.json +1 -1
  2. package/lib/.gen/providers/oci/identity-dynamic-group/index.d.ts +0 -166
  3. package/lib/.gen/providers/oci/identity-dynamic-group/index.js +0 -408
  4. package/lib/bin/deploy-with-build.js +0 -132
  5. package/lib/test/java-function/aws-cdk/bin/app.d.ts +0 -2
  6. package/lib/test/java-function/aws-cdk/bin/app.js +0 -51
  7. package/lib/test/java-function/aws-cdk/lib/function-stack.d.ts +0 -11
  8. package/lib/test/java-function/aws-cdk/lib/function-stack.js +0 -159
  9. package/lib/test/java-function/aws-cdk/lib/test-function-stack.d.ts +0 -5
  10. package/lib/test/java-function/aws-cdk/lib/test-function-stack.js +0 -94
  11. package/lib/test/java-function/oci-cdk/.gen/providers/oci/apigateway-deployment/index.d.ts +0 -5356
  12. package/lib/test/java-function/oci-cdk/.gen/providers/oci/apigateway-deployment/index.js +0 -14972
  13. package/lib/test/java-function/oci-cdk/.gen/providers/oci/apigateway-gateway/index.d.ts +0 -449
  14. package/lib/test/java-function/oci-cdk/.gen/providers/oci/apigateway-gateway/index.js +0 -1149
  15. package/lib/test/java-function/oci-cdk/.gen/providers/oci/artifacts-container-repository/index.d.ts +0 -217
  16. package/lib/test/java-function/oci-cdk/.gen/providers/oci/artifacts-container-repository/index.js +0 -563
  17. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-internet-gateway/index.d.ts +0 -176
  18. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-internet-gateway/index.js +0 -431
  19. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-route-table/index.d.ts +0 -255
  20. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-route-table/index.js +0 -644
  21. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-security-list/index.d.ts +0 -752
  22. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-security-list/index.js +0 -2091
  23. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-service-gateway/index.d.ts +0 -220
  24. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-service-gateway/index.js +0 -543
  25. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-subnet/index.d.ts +0 -251
  26. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-subnet/index.js +0 -612
  27. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-vcn/index.d.ts +0 -270
  28. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-vcn/index.js +0 -672
  29. package/lib/test/java-function/oci-cdk/.gen/providers/oci/data-oci-core-services/index.d.ts +0 -150
  30. package/lib/test/java-function/oci-cdk/.gen/providers/oci/data-oci-core-services/index.js +0 -386
  31. package/lib/test/java-function/oci-cdk/.gen/providers/oci/functions-application/index.d.ts +0 -330
  32. package/lib/test/java-function/oci-cdk/.gen/providers/oci/functions-application/index.js +0 -821
  33. package/lib/test/java-function/oci-cdk/.gen/providers/oci/functions-function/index.d.ts +0 -322
  34. package/lib/test/java-function/oci-cdk/.gen/providers/oci/functions-function/index.js +0 -820
  35. package/lib/test/java-function/oci-cdk/.gen/providers/oci/provider/index.d.ts +0 -190
  36. package/lib/test/java-function/oci-cdk/.gen/providers/oci/provider/index.js +0 -391
  37. package/lib/test/java-function/oci-cdk/.gen/providers/oci/vault-secret/index.d.ts +0 -439
  38. package/lib/test/java-function/oci-cdk/.gen/providers/oci/vault-secret/index.js +0 -1146
  39. package/lib/test/java-function/oci-cdk/bin/app.d.ts +0 -2
  40. package/lib/test/java-function/oci-cdk/bin/app.js +0 -34
  41. package/lib/test/java-function/oci-cdk/config/oci-config.d.ts +0 -68
  42. package/lib/test/java-function/oci-cdk/config/oci-config.js +0 -202
  43. package/lib/test/java-function/oci-cdk/lib/function-stack.d.ts +0 -31
  44. package/lib/test/java-function/oci-cdk/lib/function-stack.js +0 -549
  45. package/lib/test/java-function/oci-cdk/lib/test-function-stack.d.ts +0 -17
  46. package/lib/test/java-function/oci-cdk/lib/test-function-stack.js +0 -99
@@ -1,190 +0,0 @@
1
- import { Construct } from 'constructs';
2
- import * as cdktf from 'cdktf';
3
- export interface OciProviderConfig {
4
- /**
5
- * (Optional) The type of auth to use. Options are 'ApiKey', 'SecurityToken', 'InstancePrincipal', 'ResourcePrincipal' and 'OKEWorkloadIdentity'. By default, 'ApiKey' will be used.
6
- *
7
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#auth OciProvider#auth}
8
- */
9
- readonly auth?: string;
10
- /**
11
- * (Optional) The profile name to be used from config file, if not set it will be DEFAULT.
12
- *
13
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#config_file_profile OciProvider#config_file_profile}
14
- */
15
- readonly configFileProfile?: string;
16
- /**
17
- * (Optional) Disable automatic retries for retriable errors.
18
- * Automatic retries were introduced to solve some eventual consistency problems but it also introduced performance issues on destroy operations.
19
- *
20
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#disable_auto_retries OciProvider#disable_auto_retries}
21
- */
22
- readonly disableAutoRetries?: boolean | cdktf.IResolvable;
23
- /**
24
- * (Optional) The fingerprint for the user's RSA key. This can be found in user settings in the Oracle Cloud Infrastructure console. Required if auth is set to 'ApiKey', ignored otherwise.
25
- *
26
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#fingerprint OciProvider#fingerprint}
27
- */
28
- readonly fingerprint?: string;
29
- /**
30
- * (Optional) List of defined tags keys that Terraform should ignore when planning creates and updates to the associated remote object
31
- *
32
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#ignore_defined_tags OciProvider#ignore_defined_tags}
33
- */
34
- readonly ignoreDefinedTags?: string[];
35
- /**
36
- * (Optional) A PEM formatted RSA private key for the user.
37
- * A private_key or a private_key_path must be provided if auth is set to 'ApiKey', ignored otherwise.
38
- *
39
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#private_key OciProvider#private_key}
40
- */
41
- readonly privateKey?: string;
42
- /**
43
- * (Optional) The password used to secure the private key.
44
- *
45
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#private_key_password OciProvider#private_key_password}
46
- */
47
- readonly privateKeyPassword?: string;
48
- /**
49
- * (Optional) The path to the user's PEM formatted private key.
50
- * A private_key or a private_key_path must be provided if auth is set to 'ApiKey', ignored otherwise.
51
- *
52
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#private_key_path OciProvider#private_key_path}
53
- */
54
- readonly privateKeyPath?: string;
55
- /**
56
- * (Optional) flags to enable realm specific service endpoint.
57
- *
58
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#realm_specific_service_endpoint_template_enabled OciProvider#realm_specific_service_endpoint_template_enabled}
59
- */
60
- readonly realmSpecificServiceEndpointTemplateEnabled?: boolean | cdktf.IResolvable;
61
- /**
62
- * (Required) The region for API connections (e.g. us-ashburn-1).
63
- *
64
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#region OciProvider#region}
65
- */
66
- readonly region?: string;
67
- /**
68
- * (Optional) The minimum duration (in seconds) to retry a resource operation in response to an error.
69
- * The actual retry duration may be longer due to jittering of retry operations. This value is ignored if the `disable_auto_retries` field is set to true.
70
- *
71
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#retry_duration_seconds OciProvider#retry_duration_seconds}
72
- */
73
- readonly retryDurationSeconds?: number;
74
- /**
75
- * (Optional) The tenancy OCID for a user. The tenancy OCID can be found at the bottom of user settings in the Oracle Cloud Infrastructure console. Required if auth is set to 'ApiKey', ignored otherwise.
76
- *
77
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#tenancy_ocid OciProvider#tenancy_ocid}
78
- */
79
- readonly tenancyOcid?: string;
80
- /**
81
- * (Optional) The user OCID. This can be found in user settings in the Oracle Cloud Infrastructure console. Required if auth is set to 'ApiKey', ignored otherwise.
82
- *
83
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#user_ocid OciProvider#user_ocid}
84
- */
85
- readonly userOcid?: string;
86
- /**
87
- * Alias name
88
- *
89
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#alias OciProvider#alias}
90
- */
91
- readonly alias?: string;
92
- }
93
- /**
94
- * Represents a {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs oci}
95
- */
96
- export declare class OciProvider extends cdktf.TerraformProvider {
97
- static readonly tfResourceType = "oci";
98
- /**
99
- * Generates CDKTF code for importing a OciProvider resource upon running "cdktf plan <stack-name>"
100
- * @param scope The scope in which to define this construct
101
- * @param importToId The construct id used in the generated config for the OciProvider to import
102
- * @param importFromId The id of the existing OciProvider that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#import import section} in the documentation of this resource for the id to use
103
- * @param provider? Optional instance of the provider where the OciProvider to import is found
104
- */
105
- static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
106
- /**
107
- * Create a new {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs oci} Resource
108
- *
109
- * @param scope The scope in which to define this construct
110
- * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
111
- * @param options OciProviderConfig = {}
112
- */
113
- constructor(scope: Construct, id: string, config?: OciProviderConfig);
114
- private _auth?;
115
- get auth(): string | undefined;
116
- set auth(value: string | undefined);
117
- resetAuth(): void;
118
- get authInput(): string | undefined;
119
- private _configFileProfile?;
120
- get configFileProfile(): string | undefined;
121
- set configFileProfile(value: string | undefined);
122
- resetConfigFileProfile(): void;
123
- get configFileProfileInput(): string | undefined;
124
- private _disableAutoRetries?;
125
- get disableAutoRetries(): boolean | cdktf.IResolvable | undefined;
126
- set disableAutoRetries(value: boolean | cdktf.IResolvable | undefined);
127
- resetDisableAutoRetries(): void;
128
- get disableAutoRetriesInput(): boolean | cdktf.IResolvable | undefined;
129
- private _fingerprint?;
130
- get fingerprint(): string | undefined;
131
- set fingerprint(value: string | undefined);
132
- resetFingerprint(): void;
133
- get fingerprintInput(): string | undefined;
134
- private _ignoreDefinedTags?;
135
- get ignoreDefinedTags(): string[] | undefined;
136
- set ignoreDefinedTags(value: string[] | undefined);
137
- resetIgnoreDefinedTags(): void;
138
- get ignoreDefinedTagsInput(): string[] | undefined;
139
- private _privateKey?;
140
- get privateKey(): string | undefined;
141
- set privateKey(value: string | undefined);
142
- resetPrivateKey(): void;
143
- get privateKeyInput(): string | undefined;
144
- private _privateKeyPassword?;
145
- get privateKeyPassword(): string | undefined;
146
- set privateKeyPassword(value: string | undefined);
147
- resetPrivateKeyPassword(): void;
148
- get privateKeyPasswordInput(): string | undefined;
149
- private _privateKeyPath?;
150
- get privateKeyPath(): string | undefined;
151
- set privateKeyPath(value: string | undefined);
152
- resetPrivateKeyPath(): void;
153
- get privateKeyPathInput(): string | undefined;
154
- private _realmSpecificServiceEndpointTemplateEnabled?;
155
- get realmSpecificServiceEndpointTemplateEnabled(): boolean | cdktf.IResolvable | undefined;
156
- set realmSpecificServiceEndpointTemplateEnabled(value: boolean | cdktf.IResolvable | undefined);
157
- resetRealmSpecificServiceEndpointTemplateEnabled(): void;
158
- get realmSpecificServiceEndpointTemplateEnabledInput(): boolean | cdktf.IResolvable | undefined;
159
- private _region?;
160
- get region(): string | undefined;
161
- set region(value: string | undefined);
162
- resetRegion(): void;
163
- get regionInput(): string | undefined;
164
- private _retryDurationSeconds?;
165
- get retryDurationSeconds(): number | undefined;
166
- set retryDurationSeconds(value: number | undefined);
167
- resetRetryDurationSeconds(): void;
168
- get retryDurationSecondsInput(): number | undefined;
169
- private _tenancyOcid?;
170
- get tenancyOcid(): string | undefined;
171
- set tenancyOcid(value: string | undefined);
172
- resetTenancyOcid(): void;
173
- get tenancyOcidInput(): string | undefined;
174
- private _userOcid?;
175
- get userOcid(): string | undefined;
176
- set userOcid(value: string | undefined);
177
- resetUserOcid(): void;
178
- get userOcidInput(): string | undefined;
179
- private _alias?;
180
- get alias(): string | undefined;
181
- set alias(value: string | undefined);
182
- resetAlias(): void;
183
- get aliasInput(): string | undefined;
184
- protected synthesizeAttributes(): {
185
- [name: string]: any;
186
- };
187
- protected synthesizeHclAttributes(): {
188
- [name: string]: any;
189
- };
190
- }
@@ -1,391 +0,0 @@
1
- "use strict";
2
- // https://registry.terraform.io/providers/oracle/oci/5.47.0/docs
3
- // generated from terraform resource schema
4
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
- if (k2 === undefined) k2 = k;
6
- var desc = Object.getOwnPropertyDescriptor(m, k);
7
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
- desc = { enumerable: true, get: function() { return m[k]; } };
9
- }
10
- Object.defineProperty(o, k2, desc);
11
- }) : (function(o, m, k, k2) {
12
- if (k2 === undefined) k2 = k;
13
- o[k2] = m[k];
14
- }));
15
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
- Object.defineProperty(o, "default", { enumerable: true, value: v });
17
- }) : function(o, v) {
18
- o["default"] = v;
19
- });
20
- var __importStar = (this && this.__importStar) || (function () {
21
- var ownKeys = function(o) {
22
- ownKeys = Object.getOwnPropertyNames || function (o) {
23
- var ar = [];
24
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
25
- return ar;
26
- };
27
- return ownKeys(o);
28
- };
29
- return function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
- })();
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.OciProvider = void 0;
39
- const cdktf = __importStar(require("cdktf"));
40
- /**
41
- * Represents a {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs oci}
42
- */
43
- class OciProvider extends cdktf.TerraformProvider {
44
- // ==============
45
- // STATIC Methods
46
- // ==============
47
- /**
48
- * Generates CDKTF code for importing a OciProvider resource upon running "cdktf plan <stack-name>"
49
- * @param scope The scope in which to define this construct
50
- * @param importToId The construct id used in the generated config for the OciProvider to import
51
- * @param importFromId The id of the existing OciProvider that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#import import section} in the documentation of this resource for the id to use
52
- * @param provider? Optional instance of the provider where the OciProvider to import is found
53
- */
54
- static generateConfigForImport(scope, importToId, importFromId, provider) {
55
- return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "oci", importId: importFromId, provider });
56
- }
57
- // ===========
58
- // INITIALIZER
59
- // ===========
60
- /**
61
- * Create a new {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs oci} Resource
62
- *
63
- * @param scope The scope in which to define this construct
64
- * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
65
- * @param options OciProviderConfig = {}
66
- */
67
- constructor(scope, id, config = {}) {
68
- super(scope, id, {
69
- terraformResourceType: 'oci',
70
- terraformGeneratorMetadata: {
71
- providerName: 'oci',
72
- providerVersion: '5.47.0',
73
- providerVersionConstraint: '~> 5.0'
74
- },
75
- terraformProviderSource: 'oracle/oci'
76
- });
77
- this._auth = config.auth;
78
- this._configFileProfile = config.configFileProfile;
79
- this._disableAutoRetries = config.disableAutoRetries;
80
- this._fingerprint = config.fingerprint;
81
- this._ignoreDefinedTags = config.ignoreDefinedTags;
82
- this._privateKey = config.privateKey;
83
- this._privateKeyPassword = config.privateKeyPassword;
84
- this._privateKeyPath = config.privateKeyPath;
85
- this._realmSpecificServiceEndpointTemplateEnabled = config.realmSpecificServiceEndpointTemplateEnabled;
86
- this._region = config.region;
87
- this._retryDurationSeconds = config.retryDurationSeconds;
88
- this._tenancyOcid = config.tenancyOcid;
89
- this._userOcid = config.userOcid;
90
- this._alias = config.alias;
91
- }
92
- get auth() {
93
- return this._auth;
94
- }
95
- set auth(value) {
96
- this._auth = value;
97
- }
98
- resetAuth() {
99
- this._auth = undefined;
100
- }
101
- // Temporarily expose input value. Use with caution.
102
- get authInput() {
103
- return this._auth;
104
- }
105
- get configFileProfile() {
106
- return this._configFileProfile;
107
- }
108
- set configFileProfile(value) {
109
- this._configFileProfile = value;
110
- }
111
- resetConfigFileProfile() {
112
- this._configFileProfile = undefined;
113
- }
114
- // Temporarily expose input value. Use with caution.
115
- get configFileProfileInput() {
116
- return this._configFileProfile;
117
- }
118
- get disableAutoRetries() {
119
- return this._disableAutoRetries;
120
- }
121
- set disableAutoRetries(value) {
122
- this._disableAutoRetries = value;
123
- }
124
- resetDisableAutoRetries() {
125
- this._disableAutoRetries = undefined;
126
- }
127
- // Temporarily expose input value. Use with caution.
128
- get disableAutoRetriesInput() {
129
- return this._disableAutoRetries;
130
- }
131
- get fingerprint() {
132
- return this._fingerprint;
133
- }
134
- set fingerprint(value) {
135
- this._fingerprint = value;
136
- }
137
- resetFingerprint() {
138
- this._fingerprint = undefined;
139
- }
140
- // Temporarily expose input value. Use with caution.
141
- get fingerprintInput() {
142
- return this._fingerprint;
143
- }
144
- get ignoreDefinedTags() {
145
- return this._ignoreDefinedTags;
146
- }
147
- set ignoreDefinedTags(value) {
148
- this._ignoreDefinedTags = value;
149
- }
150
- resetIgnoreDefinedTags() {
151
- this._ignoreDefinedTags = undefined;
152
- }
153
- // Temporarily expose input value. Use with caution.
154
- get ignoreDefinedTagsInput() {
155
- return this._ignoreDefinedTags;
156
- }
157
- get privateKey() {
158
- return this._privateKey;
159
- }
160
- set privateKey(value) {
161
- this._privateKey = value;
162
- }
163
- resetPrivateKey() {
164
- this._privateKey = undefined;
165
- }
166
- // Temporarily expose input value. Use with caution.
167
- get privateKeyInput() {
168
- return this._privateKey;
169
- }
170
- get privateKeyPassword() {
171
- return this._privateKeyPassword;
172
- }
173
- set privateKeyPassword(value) {
174
- this._privateKeyPassword = value;
175
- }
176
- resetPrivateKeyPassword() {
177
- this._privateKeyPassword = undefined;
178
- }
179
- // Temporarily expose input value. Use with caution.
180
- get privateKeyPasswordInput() {
181
- return this._privateKeyPassword;
182
- }
183
- get privateKeyPath() {
184
- return this._privateKeyPath;
185
- }
186
- set privateKeyPath(value) {
187
- this._privateKeyPath = value;
188
- }
189
- resetPrivateKeyPath() {
190
- this._privateKeyPath = undefined;
191
- }
192
- // Temporarily expose input value. Use with caution.
193
- get privateKeyPathInput() {
194
- return this._privateKeyPath;
195
- }
196
- get realmSpecificServiceEndpointTemplateEnabled() {
197
- return this._realmSpecificServiceEndpointTemplateEnabled;
198
- }
199
- set realmSpecificServiceEndpointTemplateEnabled(value) {
200
- this._realmSpecificServiceEndpointTemplateEnabled = value;
201
- }
202
- resetRealmSpecificServiceEndpointTemplateEnabled() {
203
- this._realmSpecificServiceEndpointTemplateEnabled = undefined;
204
- }
205
- // Temporarily expose input value. Use with caution.
206
- get realmSpecificServiceEndpointTemplateEnabledInput() {
207
- return this._realmSpecificServiceEndpointTemplateEnabled;
208
- }
209
- get region() {
210
- return this._region;
211
- }
212
- set region(value) {
213
- this._region = value;
214
- }
215
- resetRegion() {
216
- this._region = undefined;
217
- }
218
- // Temporarily expose input value. Use with caution.
219
- get regionInput() {
220
- return this._region;
221
- }
222
- get retryDurationSeconds() {
223
- return this._retryDurationSeconds;
224
- }
225
- set retryDurationSeconds(value) {
226
- this._retryDurationSeconds = value;
227
- }
228
- resetRetryDurationSeconds() {
229
- this._retryDurationSeconds = undefined;
230
- }
231
- // Temporarily expose input value. Use with caution.
232
- get retryDurationSecondsInput() {
233
- return this._retryDurationSeconds;
234
- }
235
- get tenancyOcid() {
236
- return this._tenancyOcid;
237
- }
238
- set tenancyOcid(value) {
239
- this._tenancyOcid = value;
240
- }
241
- resetTenancyOcid() {
242
- this._tenancyOcid = undefined;
243
- }
244
- // Temporarily expose input value. Use with caution.
245
- get tenancyOcidInput() {
246
- return this._tenancyOcid;
247
- }
248
- get userOcid() {
249
- return this._userOcid;
250
- }
251
- set userOcid(value) {
252
- this._userOcid = value;
253
- }
254
- resetUserOcid() {
255
- this._userOcid = undefined;
256
- }
257
- // Temporarily expose input value. Use with caution.
258
- get userOcidInput() {
259
- return this._userOcid;
260
- }
261
- get alias() {
262
- return this._alias;
263
- }
264
- set alias(value) {
265
- this._alias = value;
266
- }
267
- resetAlias() {
268
- this._alias = undefined;
269
- }
270
- // Temporarily expose input value. Use with caution.
271
- get aliasInput() {
272
- return this._alias;
273
- }
274
- // =========
275
- // SYNTHESIS
276
- // =========
277
- synthesizeAttributes() {
278
- return {
279
- auth: cdktf.stringToTerraform(this._auth),
280
- config_file_profile: cdktf.stringToTerraform(this._configFileProfile),
281
- disable_auto_retries: cdktf.booleanToTerraform(this._disableAutoRetries),
282
- fingerprint: cdktf.stringToTerraform(this._fingerprint),
283
- ignore_defined_tags: cdktf.listMapper(cdktf.stringToTerraform, false)(this._ignoreDefinedTags),
284
- private_key: cdktf.stringToTerraform(this._privateKey),
285
- private_key_password: cdktf.stringToTerraform(this._privateKeyPassword),
286
- private_key_path: cdktf.stringToTerraform(this._privateKeyPath),
287
- realm_specific_service_endpoint_template_enabled: cdktf.booleanToTerraform(this._realmSpecificServiceEndpointTemplateEnabled),
288
- region: cdktf.stringToTerraform(this._region),
289
- retry_duration_seconds: cdktf.numberToTerraform(this._retryDurationSeconds),
290
- tenancy_ocid: cdktf.stringToTerraform(this._tenancyOcid),
291
- user_ocid: cdktf.stringToTerraform(this._userOcid),
292
- alias: cdktf.stringToTerraform(this._alias),
293
- };
294
- }
295
- synthesizeHclAttributes() {
296
- const attrs = {
297
- auth: {
298
- value: cdktf.stringToHclTerraform(this._auth),
299
- isBlock: false,
300
- type: "simple",
301
- storageClassType: "string",
302
- },
303
- config_file_profile: {
304
- value: cdktf.stringToHclTerraform(this._configFileProfile),
305
- isBlock: false,
306
- type: "simple",
307
- storageClassType: "string",
308
- },
309
- disable_auto_retries: {
310
- value: cdktf.booleanToHclTerraform(this._disableAutoRetries),
311
- isBlock: false,
312
- type: "simple",
313
- storageClassType: "boolean",
314
- },
315
- fingerprint: {
316
- value: cdktf.stringToHclTerraform(this._fingerprint),
317
- isBlock: false,
318
- type: "simple",
319
- storageClassType: "string",
320
- },
321
- ignore_defined_tags: {
322
- value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._ignoreDefinedTags),
323
- isBlock: false,
324
- type: "list",
325
- storageClassType: "stringList",
326
- },
327
- private_key: {
328
- value: cdktf.stringToHclTerraform(this._privateKey),
329
- isBlock: false,
330
- type: "simple",
331
- storageClassType: "string",
332
- },
333
- private_key_password: {
334
- value: cdktf.stringToHclTerraform(this._privateKeyPassword),
335
- isBlock: false,
336
- type: "simple",
337
- storageClassType: "string",
338
- },
339
- private_key_path: {
340
- value: cdktf.stringToHclTerraform(this._privateKeyPath),
341
- isBlock: false,
342
- type: "simple",
343
- storageClassType: "string",
344
- },
345
- realm_specific_service_endpoint_template_enabled: {
346
- value: cdktf.booleanToHclTerraform(this._realmSpecificServiceEndpointTemplateEnabled),
347
- isBlock: false,
348
- type: "simple",
349
- storageClassType: "boolean",
350
- },
351
- region: {
352
- value: cdktf.stringToHclTerraform(this._region),
353
- isBlock: false,
354
- type: "simple",
355
- storageClassType: "string",
356
- },
357
- retry_duration_seconds: {
358
- value: cdktf.numberToHclTerraform(this._retryDurationSeconds),
359
- isBlock: false,
360
- type: "simple",
361
- storageClassType: "number",
362
- },
363
- tenancy_ocid: {
364
- value: cdktf.stringToHclTerraform(this._tenancyOcid),
365
- isBlock: false,
366
- type: "simple",
367
- storageClassType: "string",
368
- },
369
- user_ocid: {
370
- value: cdktf.stringToHclTerraform(this._userOcid),
371
- isBlock: false,
372
- type: "simple",
373
- storageClassType: "string",
374
- },
375
- alias: {
376
- value: cdktf.stringToHclTerraform(this._alias),
377
- isBlock: false,
378
- type: "simple",
379
- storageClassType: "string",
380
- },
381
- };
382
- // remove undefined attributes
383
- return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
384
- }
385
- }
386
- exports.OciProvider = OciProvider;
387
- // =================
388
- // STATIC PROPERTIES
389
- // =================
390
- OciProvider.tfResourceType = "oci";
391
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi90ZXN0L2phdmEtZnVuY3Rpb24vb2NpLWNkay8uZ2VuL3Byb3ZpZGVycy9vY2kvcHJvdmlkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGlFQUFpRTtBQUNqRSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUczQyw2Q0FBK0I7QUErRi9COztFQUVFO0FBQ0YsTUFBYSxXQUFZLFNBQVEsS0FBSyxDQUFDLGlCQUFpQjtJQU90RCxpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQjs7Ozs7O01BTUU7SUFDSyxNQUFNLENBQUMsdUJBQXVCLENBQUMsS0FBZ0IsRUFBRSxVQUFrQixFQUFFLFlBQW9CLEVBQUUsUUFBa0M7UUFDOUgsT0FBTyxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM3SCxDQUFDO0lBRUwsY0FBYztJQUNkLGNBQWM7SUFDZCxjQUFjO0lBRWQ7Ozs7OztNQU1FO0lBQ0YsWUFBbUIsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsU0FBNEIsRUFBRTtRQUM3RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLHFCQUFxQixFQUFFLEtBQUs7WUFDNUIsMEJBQTBCLEVBQUU7Z0JBQzFCLFlBQVksRUFBRSxLQUFLO2dCQUNuQixlQUFlLEVBQUUsUUFBUTtnQkFDekIseUJBQXlCLEVBQUUsUUFBUTthQUNwQztZQUNELHVCQUF1QixFQUFFLFlBQVk7U0FDdEMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxrQkFBa0IsR0FB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LEVBQUUsUUFBUTtnQkFDZCxnQkFBZ0IsRUFBRSxRQUFRO2FBQzNCO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDOUMsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsZ0JBQWdCLEVBQUUsUUFBUTthQUMzQjtTQUNGLENBQUM7UUFFRiw4QkFBOEI7UUFDOUIsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUUsQ0FBQyxDQUFBO0lBQzVILENBQUM7O0FBL1lILGtDQWdaQztBQTlZQyxvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNHLDBCQUFjLEdBQUcsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL29yYWNsZS9vY2kvNS40Ny4wL2RvY3Ncbi8vIGdlbmVyYXRlZCBmcm9tIHRlcnJhZm9ybSByZXNvdXJjZSBzY2hlbWFcblxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tICdjZGt0Zic7XG5cbi8vIENvbmZpZ3VyYXRpb25cblxuZXhwb3J0IGludGVyZmFjZSBPY2lQcm92aWRlckNvbmZpZyB7XG4gIC8qKlxuICAqIChPcHRpb25hbCkgVGhlIHR5cGUgb2YgYXV0aCB0byB1c2UuIE9wdGlvbnMgYXJlICdBcGlLZXknLCAnU2VjdXJpdHlUb2tlbicsICdJbnN0YW5jZVByaW5jaXBhbCcsICdSZXNvdXJjZVByaW5jaXBhbCcgYW5kICdPS0VXb3JrbG9hZElkZW50aXR5Jy4gQnkgZGVmYXVsdCwgJ0FwaUtleScgd2lsbCBiZSB1c2VkLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvb3JhY2xlL29jaS81LjQ3LjAvZG9jcyNhdXRoIE9jaVByb3ZpZGVyI2F1dGh9XG4gICovXG4gIHJlYWRvbmx5IGF1dGg/OiBzdHJpbmc7XG4gIC8qKlxuICAqIChPcHRpb25hbCkgVGhlIHByb2ZpbGUgbmFtZSB0byBiZSB1c2VkIGZyb20gY29uZmlnIGZpbGUsIGlmIG5vdCBzZXQgaXQgd2lsbCBiZSBERUZBVUxULlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvb3JhY2xlL29jaS81LjQ3LjAvZG9jcyNjb25maWdfZmlsZV9wcm9maWxlIE9jaVByb3ZpZGVyI2NvbmZpZ19maWxlX3Byb2ZpbGV9XG4gICovXG4gIHJlYWRvbmx5IGNvbmZpZ0ZpbGVQcm9maWxlPzogc3RyaW5nO1xuICAvKipcbiAgKiAoT3B0aW9uYWwpIERpc2FibGUgYXV0b21hdGljIHJldHJpZXMgZm9yIHJldHJpYWJsZSBlcnJvcnMuXG4gICogQXV0b21hdGljIHJldHJpZXMgd2VyZSBpbnRyb2R1Y2VkIHRvIHNvbHZlIHNvbWUgZXZlbnR1YWwgY29uc2lzdGVuY3kgcHJvYmxlbXMgYnV0IGl0IGFsc28gaW50cm9kdWNlZCBwZXJmb3JtYW5jZSBpc3N1ZXMgb24gZGVzdHJveSBvcGVyYXRpb25zLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvb3JhY2xlL29jaS81LjQ3LjAvZG9jcyNkaXNhYmxlX2F1dG9fcmV0cmllcyBPY2lQcm92aWRlciNkaXNhYmxlX2F1dG9fcmV0cmllc31cbiAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZUF1dG9SZXRyaWVzPzogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlO1xuICAvKipcbiAgKiAoT3B0aW9uYWwpIFRoZSBmaW5nZXJwcmludCBmb3IgdGhlIHVzZXIncyBSU0Ega2V5LiBUaGlzIGNhbiBiZSBmb3VuZCBpbiB1c2VyIHNldHRpbmdzIGluIHRoZSBPcmFjbGUgQ2xvdWQgSW5mcmFzdHJ1Y3R1cmUgY29uc29sZS4gUmVxdWlyZWQgaWYgYXV0aCBpcyBzZXQgdG8gJ0FwaUtleScsIGlnbm9yZWQgb3RoZXJ3aXNlLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvb3JhY2xlL29jaS81LjQ3LjAvZG9jcyNmaW5nZXJwcmludCBPY2lQcm92aWRlciNmaW5nZXJwcmludH1cbiAgKi9cbiAgcmVhZG9ubHkgZmluZ2VycHJpbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAqIChPcHRpb25hbCkgTGlzdCBvZiBkZWZpbmVkIHRhZ3Mga2V5cyB0aGF0IFRlcnJhZm9ybSBzaG91bGQgaWdub3JlIHdoZW4gcGxhbm5pbmcgY3JlYXRlcyBhbmQgdXBkYXRlcyB0byB0aGUgYXNzb2NpYXRlZCByZW1vdGUgb2JqZWN0XG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9vcmFjbGUvb2NpLzUuNDcuMC9kb2NzI2lnbm9yZV9kZWZpbmVkX3RhZ3MgT2NpUHJvdmlkZXIjaWdub3JlX2RlZmluZWRfdGFnc31cbiAgKi9cbiAgcmVhZG9ubHkgaWdub3JlRGVmaW5lZFRhZ3M/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICogKE9wdGlvbmFsKSBBIFBFTSBmb3JtYXR0ZWQgUlNBIHByaXZhdGUga2V5IGZvciB0aGUgdXNlci5cbiAgKiBBIHByaXZhdGVfa2V5IG9yIGEgcHJpdmF0ZV9rZXlfcGF0aCBtdXN0IGJlIHByb3ZpZGVkIGlmIGF1dGggaXMgc2V0IHRvICdBcGlLZXknLCBpZ25vcmVkIG90aGVyd2lzZS5cbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL29yYWNsZS9vY2kvNS40Ny4wL2RvY3MjcHJpdmF0ZV9rZXkgT2NpUHJvdmlkZXIjcHJpdmF0ZV9rZXl9XG4gICovXG4gIHJlYWRvbmx5IHByaXZhdGVLZXk/OiBzdHJpbmc7XG4gIC8qKlxuICAqIChPcHRpb25hbCkgVGhlIHBhc3N3b3JkIHVzZWQgdG8gc2VjdXJlIHRoZSBwcml2YXRlIGtleS5cbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL29yYWNsZS9vY2kvNS40Ny4wL2RvY3MjcHJpdmF0ZV9rZXlfcGFzc3dvcmQgT2NpUHJvdmlkZXIjcHJpdmF0ZV9rZXlfcGFzc3dvcmR9XG4gICovXG4gIHJlYWRvbmx5IHByaXZhdGVLZXlQYXNzd29yZD86IHN0cmluZztcbiAgLyoqXG4gICogKE9wdGlvbmFsKSBUaGUgcGF0aCB0byB0aGUgdXNlcidzIFBFTSBmb3JtYXR0ZWQgcHJpdmF0ZSBrZXkuXG4gICogQSBwcml2YXRlX2tleSBvciBhIHByaXZhdGVfa2V5X3BhdGggbXVzdCBiZSBwcm92aWRlZCBpZiBhdXRoIGlzIHNldCB0byAnQXBpS2V5JywgaWdub3JlZCBvdGhlcndpc2UuXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9vcmFjbGUvb2NpLzUuNDcuMC9kb2NzI3ByaXZhdGVfa2V5X3BhdGggT2NpUHJvdmlkZXIjcHJpdmF0ZV9rZXlfcGF0aH1cbiAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZUtleVBhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAqIChPcHRpb25hbCkgZmxhZ3MgdG8gZW5hYmxlIHJlYWxtIHNwZWNpZmljIHNlcnZpY2UgZW5kcG9pbnQuXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9vcmFjbGUvb2NpLzUuNDcuMC9kb2NzI3JlYWxtX3NwZWNpZmljX3NlcnZpY2VfZW5kcG9pbnRfdGVtcGxhdGVfZW5hYmxlZCBPY2lQcm92aWRlciNyZWFsbV9zcGVjaWZpY19zZXJ2aWNlX2VuZHBvaW50X3RlbXBsYXRlX2VuYWJsZWR9XG4gICovXG4gIHJlYWRvbmx5IHJlYWxtU3BlY2lmaWNTZXJ2aWNlRW5kcG9pbnRUZW1wbGF0ZUVuYWJsZWQ/OiBib29sZWFuIHwgY2RrdGYuSVJlc29sdmFibGU7XG4gIC8qKlxuICAqIChSZXF1aXJlZCkgVGhlIHJlZ2lvbiBmb3IgQVBJIGNvbm5lY3Rpb25zIChlLmcuIHVzLWFzaGJ1cm4tMSkuXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9vcmFjbGUvb2NpLzUuNDcuMC9kb2NzI3JlZ2lvbiBPY2lQcm92aWRlciNyZWdpb259XG4gICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcbiAgLyoqXG4gICogKE9wdGlvbmFsKSBUaGUgbWluaW11bSBkdXJhdGlvbiAoaW4gc2Vjb25kcykgdG8gcmV0cnkgYSByZXNvdXJjZSBvcGVyYXRpb24gaW4gcmVzcG9uc2UgdG8gYW4gZXJyb3IuXG4gICogVGhlIGFjdHVhbCByZXRyeSBkdXJhdGlvbiBtYXkgYmUgbG9uZ2VyIGR1ZSB0byBqaXR0ZXJpbmcgb2YgcmV0cnkgb3BlcmF0aW9ucy4gVGhpcyB2YWx1ZSBpcyBpZ25vcmVkIGlmIHRoZSBgZGlzYWJsZV9hdXRvX3JldHJpZXNgIGZpZWxkIGlzIHNldCB0byB0cnVlLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvb3JhY2xlL29jaS81LjQ3LjAvZG9jcyNyZXRyeV9kdXJhdGlvbl9zZWNvbmRzIE9jaVByb3ZpZGVyI3JldHJ5X2R1cmF0aW9uX3NlY29uZHN9XG4gICovXG4gIHJlYWRvbmx5IHJldHJ5RHVyYXRpb25TZWNvbmRzPzogbnVtYmVyO1xuICAvKipcbiAgKiAoT3B0aW9uYWwpIFRoZSB0ZW5hbmN5IE9DSUQgZm9yIGEgdXNlci4gVGhlIHRlbmFuY3kgT0NJRCBjYW4gYmUgZm91bmQgYXQgdGhlIGJvdHRvbSBvZiB1c2VyIHNldHRpbmdzIGluIHRoZSBPcmFjbGUgQ2xvdWQgSW5mcmFzdHJ1Y3R1cmUgY29uc29sZS4gUmVxdWlyZWQgaWYgYXV0aCBpcyBzZXQgdG8gJ0FwaUtleScsIGlnbm9yZWQgb3RoZXJ3aXNlLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvb3JhY2xlL29jaS81LjQ3LjAvZG9jcyN0ZW5hbmN5X29jaWQgT2NpUHJvdmlkZXIjdGVuYW5jeV9vY2lkfVxuICAqL1xuICByZWFkb25seSB0ZW5hbmN5T2NpZD86IHN0cmluZztcbiAgLyoqXG4gICogKE9wdGlvbmFsKSBUaGUgdXNlciBPQ0lELiBUaGlzIGNhbiBiZSBmb3VuZCBpbiB1c2VyIHNldHRpbmdzIGluIHRoZSBPcmFjbGUgQ2xvdWQgSW5mcmFzdHJ1Y3R1cmUgY29uc29sZS4gUmVxdWlyZWQgaWYgYXV0aCBpcyBzZXQgdG8gJ0FwaUtleScsIGlnbm9yZWQgb3RoZXJ3aXNlLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvb3JhY2xlL29jaS81LjQ3LjAvZG9jcyN1c2VyX29jaWQgT2NpUHJvdmlkZXIjdXNlcl9vY2lkfVxuICAqL1xuICByZWFkb25seSB1c2VyT2NpZD86IHN0cmluZztcbiAgLyoqXG4gICogQWxpYXMgbmFtZVxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvb3JhY2xlL29jaS81LjQ3LjAvZG9jcyNhbGlhcyBPY2lQcm92aWRlciNhbGlhc31cbiAgKi9cbiAgcmVhZG9ubHkgYWxpYXM/OiBzdHJpbmc7XG59XG5cbi8qKlxuKiBSZXByZXNlbnRzIGEge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9vcmFjbGUvb2NpLzUuNDcuMC9kb2NzIG9jaX1cbiovXG5leHBvcnQgY2xhc3MgT2NpUHJvdmlkZXIgZXh0ZW5kcyBjZGt0Zi5UZXJyYWZvcm1Qcm92aWRlciB7XG5cbiAgLy8gPT09PT09PT09PT09PT09PT1cbiAgLy8gU1RBVElDIFBST1BFUlRJRVNcbiAgLy8gPT09PT09PT09PT09PT09PT1cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0ZlJlc291cmNlVHlwZSA9IFwib2NpXCI7XG5cbiAgLy8gPT09PT09PT09PT09PT1cbiAgLy8gU1RBVElDIE1ldGhvZHNcbiAgLy8gPT09PT09PT09PT09PT1cbiAgLyoqXG4gICogR2VuZXJhdGVzIENES1RGIGNvZGUgZm9yIGltcG9ydGluZyBhIE9jaVByb3ZpZGVyIHJlc291cmNlIHVwb24gcnVubmluZyBcImNka3RmIHBsYW4gPHN0YWNrLW5hbWU+XCJcbiAgKiBAcGFyYW0gc2NvcGUgVGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdFxuICAqIEBwYXJhbSBpbXBvcnRUb0lkIFRoZSBjb25zdHJ1Y3QgaWQgdXNlZCBpbiB0aGUgZ2VuZXJhdGVkIGNvbmZpZyBmb3IgdGhlIE9jaVByb3ZpZGVyIHRvIGltcG9ydFxuICAqIEBwYXJhbSBpbXBvcnRGcm9tSWQgVGhlIGlkIG9mIHRoZSBleGlzdGluZyBPY2lQcm92aWRlciB0aGF0IHNob3VsZCBiZSBpbXBvcnRlZC4gUmVmZXIgdG8gdGhlIHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvb3JhY2xlL29jaS81LjQ3LjAvZG9jcyNpbXBvcnQgaW1wb3J0IHNlY3Rpb259IGluIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoaXMgcmVzb3VyY2UgZm9yIHRoZSBpZCB0byB1c2VcbiAgKiBAcGFyYW0gcHJvdmlkZXI/IE9wdGlvbmFsIGluc3RhbmNlIG9mIHRoZSBwcm92aWRlciB3aGVyZSB0aGUgT2NpUHJvdmlkZXIgdG8gaW1wb3J0IGlzIGZvdW5kXG4gICovXG4gIHB1YmxpYyBzdGF0aWMgZ2VuZXJhdGVDb25maWdGb3JJbXBvcnQoc2NvcGU6IENvbnN0cnVjdCwgaW1wb3J0VG9JZDogc3RyaW5nLCBpbXBvcnRGcm9tSWQ6IHN0cmluZywgcHJvdmlkZXI/OiBjZGt0Zi5UZXJyYWZvcm1Qcm92aWRlcikge1xuICAgICAgICByZXR1cm4gbmV3IGNka3RmLkltcG9ydGFibGVSZXNvdXJjZShzY29wZSwgaW1wb3J0VG9JZCwgeyB0ZXJyYWZvcm1SZXNvdXJjZVR5cGU6IFwib2NpXCIsIGltcG9ydElkOiBpbXBvcnRGcm9tSWQsIHByb3ZpZGVyIH0pO1xuICAgICAgfVxuXG4gIC8vID09PT09PT09PT09XG4gIC8vIElOSVRJQUxJWkVSXG4gIC8vID09PT09PT09PT09XG5cbiAgLyoqXG4gICogQ3JlYXRlIGEgbmV3IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvb3JhY2xlL29jaS81LjQ3LjAvZG9jcyBvY2l9IFJlc291cmNlXG4gICpcbiAgKiBAcGFyYW0gc2NvcGUgVGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdFxuICAqIEBwYXJhbSBpZCBUaGUgc2NvcGVkIGNvbnN0cnVjdCBJRC4gTXVzdCBiZSB1bmlxdWUgYW1vbmdzdCBzaWJsaW5ncyBpbiB0aGUgc2FtZSBzY29wZVxuICAqIEBwYXJhbSBvcHRpb25zIE9jaVByb3ZpZGVyQ29uZmlnID0ge31cbiAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGNvbmZpZzogT2NpUHJvdmlkZXJDb25maWcgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgdGVycmFmb3JtUmVzb3VyY2VUeXBlOiAnb2NpJyxcbiAgICAgIHRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhOiB7XG4gICAgICAgIHByb3ZpZGVyTmFtZTogJ29jaScsXG4gICAgICAgIHByb3ZpZGVyVmVyc2lvbjogJzUuNDcuMCcsXG4gICAgICAgIHByb3ZpZGVyVmVyc2lvbkNvbnN0cmFpbnQ6ICd+PiA1LjAnXG4gICAgICB9LFxuICAgICAgdGVycmFmb3JtUHJvdmlkZXJTb3VyY2U6ICdvcmFjbGUvb2NpJ1xuICAgIH0pO1xuICAgIHRoaXMuX2F1dGggPSBjb25maWcuYXV0aDtcbiAgICB0aGlzLl9jb25maWdGaWxlUHJvZmlsZSA9IGNvbmZpZy5jb25maWdGaWxlUHJvZmlsZTtcbiAgICB0aGlzLl9kaXNhYmxlQXV0b1JldHJpZXMgPSBjb25maWcuZGlzYWJsZUF1dG9SZXRyaWVzO1xuICAgIHRoaXMuX2ZpbmdlcnByaW50ID0gY29uZmlnLmZpbmdlcnByaW50O1xuICAgIHRoaXMuX2lnbm9yZURlZmluZWRUYWdzID0gY29uZmlnLmlnbm9yZURlZmluZWRUYWdzO1xuICAgIHRoaXMuX3ByaXZhdGVLZXkgPSBjb25maWcucHJpdmF0ZUtleTtcbiAgICB0aGlzLl9wcml2YXRlS2V5UGFzc3dvcmQgPSBjb25maWcucHJpdmF0ZUtleVBhc3N3b3JkO1xuICAgIHRoaXMuX3ByaXZhdGVLZXlQYXRoID0gY29uZmlnLnByaXZhdGVLZXlQYXRoO1xuICAgIHRoaXMuX3JlYWxtU3BlY2lmaWNTZXJ2aWNlRW5kcG9pbnRUZW1wbGF0ZUVuYWJsZWQgPSBjb25maWcucmVhbG1TcGVjaWZpY1NlcnZpY2VFbmRwb2ludFRlbXBsYXRlRW5hYmxlZDtcbiAgICB0aGlzLl9yZWdpb24gPSBjb25maWcucmVnaW9uO1xuICAgIHRoaXMuX3JldHJ5RHVyYXRpb25TZWNvbmRzID0gY29uZmlnLnJldHJ5RHVyYXRpb25TZWNvbmRzO1xuICAgIHRoaXMuX3RlbmFuY3lPY2lkID0gY29uZmlnLnRlbmFuY3lPY2lkO1xuICAgIHRoaXMuX3VzZXJPY2lkID0gY29uZmlnLnVzZXJPY2lkO1xuICAgIHRoaXMuX2FsaWFzID0gY29uZmlnLmFsaWFzO1xuICB9XG5cbiAgLy8gPT09PT09PT09PVxuICAvLyBBVFRSSUJVVEVTXG4gIC8vID09PT09PT09PT1cblxuICAvLyBhdXRoIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX2F1dGg/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IGF1dGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dGg7XG4gIH1cbiAgcHVibGljIHNldCBhdXRoKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9hdXRoID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0QXV0aCgpIHtcbiAgICB0aGlzLl9hdXRoID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCBhdXRoSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dGg7XG4gIH1cblxuICAvLyBjb25maWdfZmlsZV9wcm9maWxlIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX2NvbmZpZ0ZpbGVQcm9maWxlPzogc3RyaW5nOyBcbiAgcHVibGljIGdldCBjb25maWdGaWxlUHJvZmlsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnRmlsZVByb2ZpbGU7XG4gIH1cbiAgcHVibGljIHNldCBjb25maWdGaWxlUHJvZmlsZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fY29uZmlnRmlsZVByb2ZpbGUgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVzZXRDb25maWdGaWxlUHJvZmlsZSgpIHtcbiAgICB0aGlzLl9jb25maWdGaWxlUHJvZmlsZSA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgY29uZmlnRmlsZVByb2ZpbGVJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnRmlsZVByb2ZpbGU7XG4gIH1cblxuICAvLyBkaXNhYmxlX2F1dG9fcmV0cmllcyAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9kaXNhYmxlQXV0b1JldHJpZXM/OiBib29sZWFuIHwgY2RrdGYuSVJlc29sdmFibGU7IFxuICBwdWJsaWMgZ2V0IGRpc2FibGVBdXRvUmV0cmllcygpIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZUF1dG9SZXRyaWVzO1xuICB9XG4gIHB1YmxpYyBzZXQgZGlzYWJsZUF1dG9SZXRyaWVzKHZhbHVlOiBib29sZWFuIHwgY2RrdGYuSVJlc29sdmFibGUgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9kaXNhYmxlQXV0b1JldHJpZXMgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVzZXREaXNhYmxlQXV0b1JldHJpZXMoKSB7XG4gICAgdGhpcy5fZGlzYWJsZUF1dG9SZXRyaWVzID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCBkaXNhYmxlQXV0b1JldHJpZXNJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZUF1dG9SZXRyaWVzO1xuICB9XG5cbiAgLy8gZmluZ2VycHJpbnQgLSBjb21wdXRlZDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfZmluZ2VycHJpbnQ/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IGZpbmdlcnByaW50KCkge1xuICAgIHJldHVybiB0aGlzLl9maW5nZXJwcmludDtcbiAgfVxuICBwdWJsaWMgc2V0IGZpbmdlcnByaW50KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9maW5nZXJwcmludCA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldEZpbmdlcnByaW50KCkge1xuICAgIHRoaXMuX2ZpbmdlcnByaW50ID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCBmaW5nZXJwcmludElucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9maW5nZXJwcmludDtcbiAgfVxuXG4gIC8vIGlnbm9yZV9kZWZpbmVkX3RhZ3MgLSBjb21wdXRlZDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfaWdub3JlRGVmaW5lZFRhZ3M/OiBzdHJpbmdbXTsgXG4gIHB1YmxpYyBnZXQgaWdub3JlRGVmaW5lZFRhZ3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lnbm9yZURlZmluZWRUYWdzO1xuICB9XG4gIHB1YmxpYyBzZXQgaWdub3JlRGVmaW5lZFRhZ3ModmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5faWdub3JlRGVmaW5lZFRhZ3MgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVzZXRJZ25vcmVEZWZpbmVkVGFncygpIHtcbiAgICB0aGlzLl9pZ25vcmVEZWZpbmVkVGFncyA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgaWdub3JlRGVmaW5lZFRhZ3NJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5faWdub3JlRGVmaW5lZFRhZ3M7XG4gIH1cblxuICAvLyBwcml2YXRlX2tleSAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9wcml2YXRlS2V5Pzogc3RyaW5nOyBcbiAgcHVibGljIGdldCBwcml2YXRlS2V5KCkge1xuICAgIHJldHVybiB0aGlzLl9wcml2YXRlS2V5O1xuICB9XG4gIHB1YmxpYyBzZXQgcHJpdmF0ZUtleSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fcHJpdmF0ZUtleSA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldFByaXZhdGVLZXkoKSB7XG4gICAgdGhpcy5fcHJpdmF0ZUtleSA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgcHJpdmF0ZUtleUlucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9wcml2YXRlS2V5O1xuICB9XG5cbiAgLy8gcHJpdmF0ZV9rZXlfcGFzc3dvcmQgLSBjb21wdXRlZDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfcHJpdmF0ZUtleVBhc3N3b3JkPzogc3RyaW5nOyBcbiAgcHVibGljIGdldCBwcml2YXRlS2V5UGFzc3dvcmQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByaXZhdGVLZXlQYXNzd29yZDtcbiAgfVxuICBwdWJsaWMgc2V0IHByaXZhdGVLZXlQYXNzd29yZCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fcHJpdmF0ZUtleVBhc3N3b3JkID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0UHJpdmF0ZUtleVBhc3N3b3JkKCkge1xuICAgIHRoaXMuX3ByaXZhdGVLZXlQYXNzd29yZCA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgcHJpdmF0ZUtleVBhc3N3b3JkSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByaXZhdGVLZXlQYXNzd29yZDtcbiAgfVxuXG4gIC8vIHByaXZhdGVfa2V5X3BhdGggLSBjb21wdXRlZDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfcHJpdmF0ZUtleVBhdGg/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IHByaXZhdGVLZXlQYXRoKCkge1xuICAgIHJldHVybiB0aGlzLl9wcml2YXRlS2V5UGF0aDtcbiAgfVxuICBwdWJsaWMgc2V0IHByaXZhdGVLZXlQYXRoKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9wcml2YXRlS2V5UGF0aCA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldFByaXZhdGVLZXlQYXRoKCkge1xuICAgIHRoaXMuX3ByaXZhdGVLZXlQYXRoID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCBwcml2YXRlS2V5UGF0aElucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9wcml2YXRlS2V5UGF0aDtcbiAgfVxuXG4gIC8vIHJlYWxtX3NwZWNpZmljX3NlcnZpY2VfZW5kcG9pbnRfdGVtcGxhdGVfZW5hYmxlZCAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9yZWFsbVNwZWNpZmljU2VydmljZUVuZHBvaW50VGVtcGxhdGVFbmFibGVkPzogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlOyBcbiAgcHVibGljIGdldCByZWFsbVNwZWNpZmljU2VydmljZUVuZHBvaW50VGVtcGxhdGVFbmFibGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9yZWFsbVNwZWNpZmljU2VydmljZUVuZHBvaW50VGVtcGxhdGVFbmFibGVkO1xuICB9XG4gIHB1YmxpYyBzZXQgcmVhbG1TcGVjaWZpY1NlcnZpY2VFbmRwb2ludFRlbXBsYXRlRW5hYmxlZCh2YWx1ZTogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fcmVhbG1TcGVjaWZpY1NlcnZpY2VFbmRwb2ludFRlbXBsYXRlRW5hYmxlZCA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldFJlYWxtU3BlY2lmaWNTZXJ2aWNlRW5kcG9pbnRUZW1wbGF0ZUVuYWJsZWQoKSB7XG4gICAgdGhpcy5fcmVhbG1TcGVjaWZpY1NlcnZpY2VFbmRwb2ludFRlbXBsYXRlRW5hYmxlZCA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgcmVhbG1TcGVjaWZpY1NlcnZpY2VFbmRwb2ludFRlbXBsYXRlRW5hYmxlZElucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9yZWFsbVNwZWNpZmljU2VydmljZUVuZHBvaW50VGVtcGxhdGVFbmFibGVkO1xuICB9XG5cbiAgLy8gcmVnaW9uIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX3JlZ2lvbj86IHN0cmluZzsgXG4gIHB1YmxpYyBnZXQgcmVnaW9uKCkge1xuICAgIHJldHVybiB0aGlzLl9yZWdpb247XG4gIH1cbiAgcHVibGljIHNldCByZWdpb24odmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3JlZ2lvbiA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldFJlZ2lvbigpIHtcbiAgICB0aGlzLl9yZWdpb24gPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IHJlZ2lvbklucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9yZWdpb247XG4gIH1cblxuICAvLyByZXRyeV9kdXJhdGlvbl9zZWNvbmRzIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX3JldHJ5RHVyYXRpb25TZWNvbmRzPzogbnVtYmVyOyBcbiAgcHVibGljIGdldCByZXRyeUR1cmF0aW9uU2Vjb25kcygpIHtcbiAgICByZXR1cm4gdGhpcy5fcmV0cnlEdXJhdGlvblNlY29uZHM7XG4gIH1cbiAgcHVibGljIHNldCByZXRyeUR1cmF0aW9uU2Vjb25kcyh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fcmV0cnlEdXJhdGlvblNlY29uZHMgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVzZXRSZXRyeUR1cmF0aW9uU2Vjb25kcygpIHtcbiAgICB0aGlzLl9yZXRyeUR1cmF0aW9uU2Vjb25kcyA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgcmV0cnlEdXJhdGlvblNlY29uZHNJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmV0cnlEdXJhdGlvblNlY29uZHM7XG4gIH1cblxuICAvLyB0ZW5hbmN5X29jaWQgLSBjb21wdXRlZDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfdGVuYW5jeU9jaWQ/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IHRlbmFuY3lPY2lkKCkge1xuICAgIHJldHVybiB0aGlzLl90ZW5hbmN5T2NpZDtcbiAgfVxuICBwdWJsaWMgc2V0IHRlbmFuY3lPY2lkKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl90ZW5hbmN5T2NpZCA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldFRlbmFuY3lPY2lkKCkge1xuICAgIHRoaXMuX3RlbmFuY3lPY2lkID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCB0ZW5hbmN5T2NpZElucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl90ZW5hbmN5T2NpZDtcbiAgfVxuXG4gIC8vIHVzZXJfb2NpZCAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF91c2VyT2NpZD86IHN0cmluZzsgXG4gIHB1YmxpYyBnZXQgdXNlck9jaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3VzZXJPY2lkO1xuICB9XG4gIHB1YmxpYyBzZXQgdXNlck9jaWQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3VzZXJPY2lkID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0VXNlck9jaWQoKSB7XG4gICAgdGhpcy5fdXNlck9jaWQgPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IHVzZXJPY2lkSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3VzZXJPY2lkO1xuICB9XG5cbiAgLy8gYWxpYXMgLSBjb21wdXRlZDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfYWxpYXM/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IGFsaWFzKCkge1xuICAgIHJldHVybiB0aGlzLl9hbGlhcztcbiAgfVxuICBwdWJsaWMgc2V0IGFsaWFzKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9hbGlhcyA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldEFsaWFzKCkge1xuICAgIHRoaXMuX2FsaWFzID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCBhbGlhc0lucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9hbGlhcztcbiAgfVxuXG4gIC8vID09PT09PT09PVxuICAvLyBTWU5USEVTSVNcbiAgLy8gPT09PT09PT09XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgYXV0aDogY2RrdGYuc3RyaW5nVG9UZXJyYWZvcm0odGhpcy5fYXV0aCksXG4gICAgICBjb25maWdfZmlsZV9wcm9maWxlOiBjZGt0Zi5zdHJpbmdUb1RlcnJhZm9ybSh0aGlzLl9jb25maWdGaWxlUHJvZmlsZSksXG4gICAgICBkaXNhYmxlX2F1dG9fcmV0cmllczogY2RrdGYuYm9vbGVhblRvVGVycmFmb3JtKHRoaXMuX2Rpc2FibGVBdXRvUmV0cmllcyksXG4gICAgICBmaW5nZXJwcmludDogY2RrdGYuc3RyaW5nVG9UZXJyYWZvcm0odGhpcy5fZmluZ2VycHJpbnQpLFxuICAgICAgaWdub3JlX2RlZmluZWRfdGFnczogY2RrdGYubGlzdE1hcHBlcihjZGt0Zi5zdHJpbmdUb1RlcnJhZm9ybSwgZmFsc2UpKHRoaXMuX2lnbm9yZURlZmluZWRUYWdzKSxcbiAgICAgIHByaXZhdGVfa2V5OiBjZGt0Zi5zdHJpbmdUb1RlcnJhZm9ybSh0aGlzLl9wcml2YXRlS2V5KSxcbiAgICAgIHByaXZhdGVfa2V5X3Bhc3N3b3JkOiBjZGt0Zi5zdHJpbmdUb1RlcnJhZm9ybSh0aGlzLl9wcml2YXRlS2V5UGFzc3dvcmQpLFxuICAgICAgcHJpdmF0ZV9rZXlfcGF0aDogY2RrdGYuc3RyaW5nVG9UZXJyYWZvcm0odGhpcy5fcHJpdmF0ZUtleVBhdGgpLFxuICAgICAgcmVhbG1fc3BlY2lmaWNfc2VydmljZV9lbmRwb2ludF90ZW1wbGF0ZV9lbmFibGVkOiBjZGt0Zi5ib29sZWFuVG9UZXJyYWZvcm0odGhpcy5fcmVhbG1TcGVjaWZpY1NlcnZpY2VFbmRwb2ludFRlbXBsYXRlRW5hYmxlZCksXG4gICAgICByZWdpb246IGNka3RmLnN0cmluZ1RvVGVycmFmb3JtKHRoaXMuX3JlZ2lvbiksXG4gICAgICByZXRyeV9kdXJhdGlvbl9zZWNvbmRzOiBjZGt0Zi5udW1iZXJUb1RlcnJhZm9ybSh0aGlzLl9yZXRyeUR1cmF0aW9uU2Vjb25kcyksXG4gICAgICB0ZW5hbmN5X29jaWQ6IGNka3RmLnN0cmluZ1RvVGVycmFmb3JtKHRoaXMuX3RlbmFuY3lPY2lkKSxcbiAgICAgIHVzZXJfb2NpZDogY2RrdGYuc3RyaW5nVG9UZXJyYWZvcm0odGhpcy5fdXNlck9jaWQpLFxuICAgICAgYWxpYXM6IGNka3RmLnN0cmluZ1RvVGVycmFmb3JtKHRoaXMuX2FsaWFzKSxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVIY2xBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICBjb25zdCBhdHRycyA9IHtcbiAgICAgIGF1dGg6IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLnN0cmluZ1RvSGNsVGVycmFmb3JtKHRoaXMuX2F1dGgpLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICBjb25maWdfZmlsZV9wcm9maWxlOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5zdHJpbmdUb0hjbFRlcnJhZm9ybSh0aGlzLl9jb25maWdGaWxlUHJvZmlsZSksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIGRpc2FibGVfYXV0b19yZXRyaWVzOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5ib29sZWFuVG9IY2xUZXJyYWZvcm0odGhpcy5fZGlzYWJsZUF1dG9SZXRyaWVzKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgfSxcbiAgICAgIGZpbmdlcnByaW50OiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5zdHJpbmdUb0hjbFRlcnJhZm9ybSh0aGlzLl9maW5nZXJwcmludCksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIGlnbm9yZV9kZWZpbmVkX3RhZ3M6IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLmxpc3RNYXBwZXJIY2woY2RrdGYuc3RyaW5nVG9IY2xUZXJyYWZvcm0sIGZhbHNlKSh0aGlzLl9pZ25vcmVEZWZpbmVkVGFncyksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcImxpc3RcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdMaXN0XCIsXG4gICAgICB9LFxuICAgICAgcHJpdmF0ZV9rZXk6IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLnN0cmluZ1RvSGNsVGVycmFmb3JtKHRoaXMuX3ByaXZhdGVLZXkpLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICBwcml2YXRlX2tleV9wYXNzd29yZDoge1xuICAgICAgICB2YWx1ZTogY2RrdGYuc3RyaW5nVG9IY2xUZXJyYWZvcm0odGhpcy5fcHJpdmF0ZUtleVBhc3N3b3JkKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAgcHJpdmF0ZV9rZXlfcGF0aDoge1xuICAgICAgICB2YWx1ZTogY2RrdGYuc3RyaW5nVG9IY2xUZXJyYWZvcm0odGhpcy5fcHJpdmF0ZUtleVBhdGgpLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICByZWFsbV9zcGVjaWZpY19zZXJ2aWNlX2VuZHBvaW50X3RlbXBsYXRlX2VuYWJsZWQ6IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLmJvb2xlYW5Ub0hjbFRlcnJhZm9ybSh0aGlzLl9yZWFsbVNwZWNpZmljU2VydmljZUVuZHBvaW50VGVtcGxhdGVFbmFibGVkKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgfSxcbiAgICAgIHJlZ2lvbjoge1xuICAgICAgICB2YWx1ZTogY2RrdGYuc3RyaW5nVG9IY2xUZXJyYWZvcm0odGhpcy5fcmVnaW9uKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAgcmV0cnlfZHVyYXRpb25fc2Vjb25kczoge1xuICAgICAgICB2YWx1ZTogY2RrdGYubnVtYmVyVG9IY2xUZXJyYWZvcm0odGhpcy5fcmV0cnlEdXJhdGlvblNlY29uZHMpLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJudW1iZXJcIixcbiAgICAgIH0sXG4gICAgICB0ZW5hbmN5X29jaWQ6IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLnN0cmluZ1RvSGNsVGVycmFmb3JtKHRoaXMuX3RlbmFuY3lPY2lkKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAgdXNlcl9vY2lkOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5zdHJpbmdUb0hjbFRlcnJhZm9ybSh0aGlzLl91c2VyT2NpZCksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIGFsaWFzOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5zdHJpbmdUb0hjbFRlcnJhZm9ybSh0aGlzLl9hbGlhcyksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgLy8gcmVtb3ZlIHVuZGVmaW5lZCBhdHRyaWJ1dGVzXG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhhdHRycykuZmlsdGVyKChbXywgdmFsdWVdKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlLnZhbHVlICE9PSB1bmRlZmluZWQgKSlcbiAgfVxufVxuIl19