@cdktn/provider-tls 11.1.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 +6405 -0
- package/LICENSE +355 -0
- package/README.md +94 -0
- package/lib/cert-request/index.d.ts +236 -0
- package/lib/cert-request/index.js +534 -0
- package/lib/data-tls-certificate/index.d.ts +114 -0
- package/lib/data-tls-certificate/index.js +262 -0
- package/lib/data-tls-public-key/index.d.ts +64 -0
- package/lib/data-tls-public-key/index.js +141 -0
- package/lib/index.d.ts +11 -0
- package/lib/index.js +16 -0
- package/lib/lazy-index.d.ts +4 -0
- package/lib/lazy-index.js +14 -0
- package/lib/locally-signed-cert/index.d.ts +125 -0
- package/lib/locally-signed-cert/index.js +249 -0
- package/lib/private-key/index.d.ts +76 -0
- package/lib/private-key/index.js +164 -0
- package/lib/provider/index.d.ts +86 -0
- package/lib/provider/index.js +160 -0
- package/lib/self-signed-cert/index.d.ts +303 -0
- package/lib/self-signed-cert/index.js +663 -0
- package/package.json +152 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) HashiCorp, Inc.
|
|
3
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { Construct } from 'constructs';
|
|
6
|
+
import * as cdktf from 'cdktf';
|
|
7
|
+
export interface DataTlsCertificateConfig extends cdktf.TerraformMetaArguments {
|
|
8
|
+
/**
|
|
9
|
+
* The content of the certificate in [PEM (RFC 1421)](https://datatracker.ietf.org/doc/html/rfc1421) format.
|
|
10
|
+
*
|
|
11
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/data-sources/certificate#content DataTlsCertificate#content}
|
|
12
|
+
*/
|
|
13
|
+
readonly content?: string;
|
|
14
|
+
/**
|
|
15
|
+
* URL of the endpoint to get the certificates from. Accepted schemes are: `https`, `tls`. For scheme `https://` it will use the HTTP protocol and apply the `proxy` configuration of the provider, if set. For scheme `tls://` it will instead use a secure TCP socket.
|
|
16
|
+
*
|
|
17
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/data-sources/certificate#url DataTlsCertificate#url}
|
|
18
|
+
*/
|
|
19
|
+
readonly url?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Whether to verify the certificate chain while parsing it or not (default: `true`).
|
|
22
|
+
*
|
|
23
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/data-sources/certificate#verify_chain DataTlsCertificate#verify_chain}
|
|
24
|
+
*/
|
|
25
|
+
readonly verifyChain?: boolean | cdktf.IResolvable;
|
|
26
|
+
}
|
|
27
|
+
export interface DataTlsCertificateCertificates {
|
|
28
|
+
}
|
|
29
|
+
export declare function dataTlsCertificateCertificatesToTerraform(struct?: DataTlsCertificateCertificates): any;
|
|
30
|
+
export declare function dataTlsCertificateCertificatesToHclTerraform(struct?: DataTlsCertificateCertificates): any;
|
|
31
|
+
export declare class DataTlsCertificateCertificatesOutputReference extends cdktf.ComplexObject {
|
|
32
|
+
private isEmptyObject;
|
|
33
|
+
/**
|
|
34
|
+
* @param terraformResource The parent resource
|
|
35
|
+
* @param terraformAttribute The attribute on the parent resource this class is referencing
|
|
36
|
+
* @param complexObjectIndex the index of this item in the list
|
|
37
|
+
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
|
|
38
|
+
*/
|
|
39
|
+
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
|
|
40
|
+
get internalValue(): DataTlsCertificateCertificates | undefined;
|
|
41
|
+
set internalValue(value: DataTlsCertificateCertificates | undefined);
|
|
42
|
+
get certPem(): string;
|
|
43
|
+
get isCa(): cdktf.IResolvable;
|
|
44
|
+
get issuer(): string;
|
|
45
|
+
get notAfter(): string;
|
|
46
|
+
get notBefore(): string;
|
|
47
|
+
get publicKeyAlgorithm(): string;
|
|
48
|
+
get serialNumber(): string;
|
|
49
|
+
get sha1Fingerprint(): string;
|
|
50
|
+
get signatureAlgorithm(): string;
|
|
51
|
+
get subject(): string;
|
|
52
|
+
get version(): number;
|
|
53
|
+
}
|
|
54
|
+
export declare class DataTlsCertificateCertificatesList extends cdktf.ComplexList {
|
|
55
|
+
protected terraformResource: cdktf.IInterpolatingParent;
|
|
56
|
+
protected terraformAttribute: string;
|
|
57
|
+
protected wrapsSet: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* @param terraformResource The parent resource
|
|
60
|
+
* @param terraformAttribute The attribute on the parent resource this class is referencing
|
|
61
|
+
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
|
|
62
|
+
*/
|
|
63
|
+
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
|
|
64
|
+
/**
|
|
65
|
+
* @param index the index of the item to return
|
|
66
|
+
*/
|
|
67
|
+
get(index: number): DataTlsCertificateCertificatesOutputReference;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Represents a {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/data-sources/certificate tls_certificate}
|
|
71
|
+
*/
|
|
72
|
+
export declare class DataTlsCertificate extends cdktf.TerraformDataSource {
|
|
73
|
+
static readonly tfResourceType = "tls_certificate";
|
|
74
|
+
/**
|
|
75
|
+
* Generates CDKTF code for importing a DataTlsCertificate resource upon running "cdktf plan <stack-name>"
|
|
76
|
+
* @param scope The scope in which to define this construct
|
|
77
|
+
* @param importToId The construct id used in the generated config for the DataTlsCertificate to import
|
|
78
|
+
* @param importFromId The id of the existing DataTlsCertificate that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/data-sources/certificate#import import section} in the documentation of this resource for the id to use
|
|
79
|
+
* @param provider? Optional instance of the provider where the DataTlsCertificate to import is found
|
|
80
|
+
*/
|
|
81
|
+
static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
|
|
82
|
+
/**
|
|
83
|
+
* Create a new {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/data-sources/certificate tls_certificate} Data Source
|
|
84
|
+
*
|
|
85
|
+
* @param scope The scope in which to define this construct
|
|
86
|
+
* @param id The scoped construct ID. Must be unique amongst siblings in the same scope
|
|
87
|
+
* @param options DataTlsCertificateConfig = {}
|
|
88
|
+
*/
|
|
89
|
+
constructor(scope: Construct, id: string, config?: DataTlsCertificateConfig);
|
|
90
|
+
private _certificates;
|
|
91
|
+
get certificates(): DataTlsCertificateCertificatesList;
|
|
92
|
+
private _content?;
|
|
93
|
+
get content(): string;
|
|
94
|
+
set content(value: string);
|
|
95
|
+
resetContent(): void;
|
|
96
|
+
get contentInput(): string | undefined;
|
|
97
|
+
get id(): string;
|
|
98
|
+
private _url?;
|
|
99
|
+
get url(): string;
|
|
100
|
+
set url(value: string);
|
|
101
|
+
resetUrl(): void;
|
|
102
|
+
get urlInput(): string | undefined;
|
|
103
|
+
private _verifyChain?;
|
|
104
|
+
get verifyChain(): boolean | cdktf.IResolvable;
|
|
105
|
+
set verifyChain(value: boolean | cdktf.IResolvable);
|
|
106
|
+
resetVerifyChain(): void;
|
|
107
|
+
get verifyChainInput(): boolean | cdktf.IResolvable | undefined;
|
|
108
|
+
protected synthesizeAttributes(): {
|
|
109
|
+
[name: string]: any;
|
|
110
|
+
};
|
|
111
|
+
protected synthesizeHclAttributes(): {
|
|
112
|
+
[name: string]: any;
|
|
113
|
+
};
|
|
114
|
+
}
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a, _b, _c;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.DataTlsCertificate = exports.DataTlsCertificateCertificatesList = exports.DataTlsCertificateCertificatesOutputReference = void 0;
|
|
5
|
+
exports.dataTlsCertificateCertificatesToTerraform = dataTlsCertificateCertificatesToTerraform;
|
|
6
|
+
exports.dataTlsCertificateCertificatesToHclTerraform = dataTlsCertificateCertificatesToHclTerraform;
|
|
7
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
8
|
+
const cdktf = require("cdktf");
|
|
9
|
+
function dataTlsCertificateCertificatesToTerraform(struct) {
|
|
10
|
+
if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
|
|
11
|
+
return struct;
|
|
12
|
+
}
|
|
13
|
+
if (cdktf.isComplexElement(struct)) {
|
|
14
|
+
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
|
|
15
|
+
}
|
|
16
|
+
return {};
|
|
17
|
+
}
|
|
18
|
+
function dataTlsCertificateCertificatesToHclTerraform(struct) {
|
|
19
|
+
if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
|
|
20
|
+
return struct;
|
|
21
|
+
}
|
|
22
|
+
if (cdktf.isComplexElement(struct)) {
|
|
23
|
+
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
|
|
24
|
+
}
|
|
25
|
+
const attrs = {};
|
|
26
|
+
return attrs;
|
|
27
|
+
}
|
|
28
|
+
class DataTlsCertificateCertificatesOutputReference extends cdktf.ComplexObject {
|
|
29
|
+
/**
|
|
30
|
+
* @param terraformResource The parent resource
|
|
31
|
+
* @param terraformAttribute The attribute on the parent resource this class is referencing
|
|
32
|
+
* @param complexObjectIndex the index of this item in the list
|
|
33
|
+
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
|
|
34
|
+
*/
|
|
35
|
+
constructor(terraformResource, terraformAttribute, complexObjectIndex, complexObjectIsFromSet) {
|
|
36
|
+
super(terraformResource, terraformAttribute, complexObjectIsFromSet, complexObjectIndex);
|
|
37
|
+
this.isEmptyObject = false;
|
|
38
|
+
}
|
|
39
|
+
get internalValue() {
|
|
40
|
+
let hasAnyValues = this.isEmptyObject;
|
|
41
|
+
const internalValueResult = {};
|
|
42
|
+
return hasAnyValues ? internalValueResult : undefined;
|
|
43
|
+
}
|
|
44
|
+
set internalValue(value) {
|
|
45
|
+
if (value === undefined) {
|
|
46
|
+
this.isEmptyObject = false;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
this.isEmptyObject = Object.keys(value).length === 0;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// cert_pem - computed: true, optional: false, required: false
|
|
53
|
+
get certPem() {
|
|
54
|
+
return this.getStringAttribute('cert_pem');
|
|
55
|
+
}
|
|
56
|
+
// is_ca - computed: true, optional: false, required: false
|
|
57
|
+
get isCa() {
|
|
58
|
+
return this.getBooleanAttribute('is_ca');
|
|
59
|
+
}
|
|
60
|
+
// issuer - computed: true, optional: false, required: false
|
|
61
|
+
get issuer() {
|
|
62
|
+
return this.getStringAttribute('issuer');
|
|
63
|
+
}
|
|
64
|
+
// not_after - computed: true, optional: false, required: false
|
|
65
|
+
get notAfter() {
|
|
66
|
+
return this.getStringAttribute('not_after');
|
|
67
|
+
}
|
|
68
|
+
// not_before - computed: true, optional: false, required: false
|
|
69
|
+
get notBefore() {
|
|
70
|
+
return this.getStringAttribute('not_before');
|
|
71
|
+
}
|
|
72
|
+
// public_key_algorithm - computed: true, optional: false, required: false
|
|
73
|
+
get publicKeyAlgorithm() {
|
|
74
|
+
return this.getStringAttribute('public_key_algorithm');
|
|
75
|
+
}
|
|
76
|
+
// serial_number - computed: true, optional: false, required: false
|
|
77
|
+
get serialNumber() {
|
|
78
|
+
return this.getStringAttribute('serial_number');
|
|
79
|
+
}
|
|
80
|
+
// sha1_fingerprint - computed: true, optional: false, required: false
|
|
81
|
+
get sha1Fingerprint() {
|
|
82
|
+
return this.getStringAttribute('sha1_fingerprint');
|
|
83
|
+
}
|
|
84
|
+
// signature_algorithm - computed: true, optional: false, required: false
|
|
85
|
+
get signatureAlgorithm() {
|
|
86
|
+
return this.getStringAttribute('signature_algorithm');
|
|
87
|
+
}
|
|
88
|
+
// subject - computed: true, optional: false, required: false
|
|
89
|
+
get subject() {
|
|
90
|
+
return this.getStringAttribute('subject');
|
|
91
|
+
}
|
|
92
|
+
// version - computed: true, optional: false, required: false
|
|
93
|
+
get version() {
|
|
94
|
+
return this.getNumberAttribute('version');
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
exports.DataTlsCertificateCertificatesOutputReference = DataTlsCertificateCertificatesOutputReference;
|
|
98
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
99
|
+
DataTlsCertificateCertificatesOutputReference[_a] = { fqn: "@cdktn/provider-tls.dataTlsCertificate.DataTlsCertificateCertificatesOutputReference", version: "11.1.0" };
|
|
100
|
+
class DataTlsCertificateCertificatesList extends cdktf.ComplexList {
|
|
101
|
+
/**
|
|
102
|
+
* @param terraformResource The parent resource
|
|
103
|
+
* @param terraformAttribute The attribute on the parent resource this class is referencing
|
|
104
|
+
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
|
|
105
|
+
*/
|
|
106
|
+
constructor(terraformResource, terraformAttribute, wrapsSet) {
|
|
107
|
+
super(terraformResource, terraformAttribute, wrapsSet);
|
|
108
|
+
this.terraformResource = terraformResource;
|
|
109
|
+
this.terraformAttribute = terraformAttribute;
|
|
110
|
+
this.wrapsSet = wrapsSet;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* @param index the index of the item to return
|
|
114
|
+
*/
|
|
115
|
+
get(index) {
|
|
116
|
+
return new DataTlsCertificateCertificatesOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
exports.DataTlsCertificateCertificatesList = DataTlsCertificateCertificatesList;
|
|
120
|
+
_b = JSII_RTTI_SYMBOL_1;
|
|
121
|
+
DataTlsCertificateCertificatesList[_b] = { fqn: "@cdktn/provider-tls.dataTlsCertificate.DataTlsCertificateCertificatesList", version: "11.1.0" };
|
|
122
|
+
/**
|
|
123
|
+
* Represents a {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/data-sources/certificate tls_certificate}
|
|
124
|
+
*/
|
|
125
|
+
class DataTlsCertificate extends cdktf.TerraformDataSource {
|
|
126
|
+
// ==============
|
|
127
|
+
// STATIC Methods
|
|
128
|
+
// ==============
|
|
129
|
+
/**
|
|
130
|
+
* Generates CDKTF code for importing a DataTlsCertificate resource upon running "cdktf plan <stack-name>"
|
|
131
|
+
* @param scope The scope in which to define this construct
|
|
132
|
+
* @param importToId The construct id used in the generated config for the DataTlsCertificate to import
|
|
133
|
+
* @param importFromId The id of the existing DataTlsCertificate that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/data-sources/certificate#import import section} in the documentation of this resource for the id to use
|
|
134
|
+
* @param provider? Optional instance of the provider where the DataTlsCertificate to import is found
|
|
135
|
+
*/
|
|
136
|
+
static generateConfigForImport(scope, importToId, importFromId, provider) {
|
|
137
|
+
return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "tls_certificate", importId: importFromId, provider });
|
|
138
|
+
}
|
|
139
|
+
// ===========
|
|
140
|
+
// INITIALIZER
|
|
141
|
+
// ===========
|
|
142
|
+
/**
|
|
143
|
+
* Create a new {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/data-sources/certificate tls_certificate} Data Source
|
|
144
|
+
*
|
|
145
|
+
* @param scope The scope in which to define this construct
|
|
146
|
+
* @param id The scoped construct ID. Must be unique amongst siblings in the same scope
|
|
147
|
+
* @param options DataTlsCertificateConfig = {}
|
|
148
|
+
*/
|
|
149
|
+
constructor(scope, id, config = {}) {
|
|
150
|
+
super(scope, id, {
|
|
151
|
+
terraformResourceType: 'tls_certificate',
|
|
152
|
+
terraformGeneratorMetadata: {
|
|
153
|
+
providerName: 'tls',
|
|
154
|
+
providerVersion: '4.1.0',
|
|
155
|
+
providerVersionConstraint: '~> 4.0'
|
|
156
|
+
},
|
|
157
|
+
provider: config.provider,
|
|
158
|
+
dependsOn: config.dependsOn,
|
|
159
|
+
count: config.count,
|
|
160
|
+
lifecycle: config.lifecycle,
|
|
161
|
+
provisioners: config.provisioners,
|
|
162
|
+
connection: config.connection,
|
|
163
|
+
forEach: config.forEach
|
|
164
|
+
});
|
|
165
|
+
// ==========
|
|
166
|
+
// ATTRIBUTES
|
|
167
|
+
// ==========
|
|
168
|
+
// certificates - computed: true, optional: false, required: false
|
|
169
|
+
this._certificates = new DataTlsCertificateCertificatesList(this, "certificates", false);
|
|
170
|
+
this._content = config.content;
|
|
171
|
+
this._url = config.url;
|
|
172
|
+
this._verifyChain = config.verifyChain;
|
|
173
|
+
}
|
|
174
|
+
get certificates() {
|
|
175
|
+
return this._certificates;
|
|
176
|
+
}
|
|
177
|
+
get content() {
|
|
178
|
+
return this.getStringAttribute('content');
|
|
179
|
+
}
|
|
180
|
+
set content(value) {
|
|
181
|
+
this._content = value;
|
|
182
|
+
}
|
|
183
|
+
resetContent() {
|
|
184
|
+
this._content = undefined;
|
|
185
|
+
}
|
|
186
|
+
// Temporarily expose input value. Use with caution.
|
|
187
|
+
get contentInput() {
|
|
188
|
+
return this._content;
|
|
189
|
+
}
|
|
190
|
+
// id - computed: true, optional: false, required: false
|
|
191
|
+
get id() {
|
|
192
|
+
return this.getStringAttribute('id');
|
|
193
|
+
}
|
|
194
|
+
get url() {
|
|
195
|
+
return this.getStringAttribute('url');
|
|
196
|
+
}
|
|
197
|
+
set url(value) {
|
|
198
|
+
this._url = value;
|
|
199
|
+
}
|
|
200
|
+
resetUrl() {
|
|
201
|
+
this._url = undefined;
|
|
202
|
+
}
|
|
203
|
+
// Temporarily expose input value. Use with caution.
|
|
204
|
+
get urlInput() {
|
|
205
|
+
return this._url;
|
|
206
|
+
}
|
|
207
|
+
get verifyChain() {
|
|
208
|
+
return this.getBooleanAttribute('verify_chain');
|
|
209
|
+
}
|
|
210
|
+
set verifyChain(value) {
|
|
211
|
+
this._verifyChain = value;
|
|
212
|
+
}
|
|
213
|
+
resetVerifyChain() {
|
|
214
|
+
this._verifyChain = undefined;
|
|
215
|
+
}
|
|
216
|
+
// Temporarily expose input value. Use with caution.
|
|
217
|
+
get verifyChainInput() {
|
|
218
|
+
return this._verifyChain;
|
|
219
|
+
}
|
|
220
|
+
// =========
|
|
221
|
+
// SYNTHESIS
|
|
222
|
+
// =========
|
|
223
|
+
synthesizeAttributes() {
|
|
224
|
+
return {
|
|
225
|
+
content: cdktf.stringToTerraform(this._content),
|
|
226
|
+
url: cdktf.stringToTerraform(this._url),
|
|
227
|
+
verify_chain: cdktf.booleanToTerraform(this._verifyChain),
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
synthesizeHclAttributes() {
|
|
231
|
+
const attrs = {
|
|
232
|
+
content: {
|
|
233
|
+
value: cdktf.stringToHclTerraform(this._content),
|
|
234
|
+
isBlock: false,
|
|
235
|
+
type: "simple",
|
|
236
|
+
storageClassType: "string",
|
|
237
|
+
},
|
|
238
|
+
url: {
|
|
239
|
+
value: cdktf.stringToHclTerraform(this._url),
|
|
240
|
+
isBlock: false,
|
|
241
|
+
type: "simple",
|
|
242
|
+
storageClassType: "string",
|
|
243
|
+
},
|
|
244
|
+
verify_chain: {
|
|
245
|
+
value: cdktf.booleanToHclTerraform(this._verifyChain),
|
|
246
|
+
isBlock: false,
|
|
247
|
+
type: "simple",
|
|
248
|
+
storageClassType: "boolean",
|
|
249
|
+
},
|
|
250
|
+
};
|
|
251
|
+
// remove undefined attributes
|
|
252
|
+
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
exports.DataTlsCertificate = DataTlsCertificate;
|
|
256
|
+
_c = JSII_RTTI_SYMBOL_1;
|
|
257
|
+
DataTlsCertificate[_c] = { fqn: "@cdktn/provider-tls.dataTlsCertificate.DataTlsCertificate", version: "11.1.0" };
|
|
258
|
+
// =================
|
|
259
|
+
// STATIC PROPERTIES
|
|
260
|
+
// =================
|
|
261
|
+
DataTlsCertificate.tfResourceType = "tls_certificate";
|
|
262
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YS10bHMtY2VydGlmaWNhdGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQW9DQSw4RkFPQztBQUdELG9HQVFDOztBQTdDRCwrQkFBK0I7QUEyQi9CLFNBQWdCLHlDQUF5QyxDQUFDLE1BQXVDO0lBQy9GLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLE1BQU0sQ0FBQztJQUFDLENBQUM7SUFDNUYsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLG9IQUFvSCxDQUFDLENBQUM7SUFDeEksQ0FBQztJQUNELE9BQU8sRUFDTixDQUFBO0FBQ0gsQ0FBQztBQUdELFNBQWdCLDRDQUE0QyxDQUFDLE1BQXVDO0lBQ2xHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLE1BQU0sQ0FBQztJQUFDLENBQUM7SUFDNUYsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLG9IQUFvSCxDQUFDLENBQUM7SUFDeEksQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHLEVBQ2IsQ0FBQztJQUNGLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQWEsNkNBQThDLFNBQVEsS0FBSyxDQUFDLGFBQWE7SUFHcEY7Ozs7O01BS0U7SUFDRixZQUFtQixpQkFBNkMsRUFBRSxrQkFBMEIsRUFBRSxrQkFBMEIsRUFBRSxzQkFBK0I7UUFD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QixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7Z0JBQ3JELE9BQU8sRUFBRSxLQUFLO2dCQUNkLElBQUksRUFBRSxRQUFRO2dCQUNkLGdCQUFnQixFQUFFLFNBQVM7YUFDNUI7U0FDRixDQUFDO1FBRUYsOEJBQThCO1FBQzlCLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFFLENBQUMsQ0FBQTtJQUM1SCxDQUFDOztBQXhKSCxnREF5SkM7OztBQXZKQyxvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNHLGlDQUFjLEdBQUcsaUJBQWlCLEFBQXBCLENBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG4vLyBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL3Rscy80LjEuMC9kb2NzL2RhdGEtc291cmNlcy9jZXJ0aWZpY2F0ZVxuLy8gZ2VuZXJhdGVkIGZyb20gdGVycmFmb3JtIHJlc291cmNlIHNjaGVtYVxuXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGNka3RmIGZyb20gJ2Nka3RmJztcblxuLy8gQ29uZmlndXJhdGlvblxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFUbHNDZXJ0aWZpY2F0ZUNvbmZpZyBleHRlbmRzIGNka3RmLlRlcnJhZm9ybU1ldGFBcmd1bWVudHMge1xuICAvKipcbiAgKiBUaGUgY29udGVudCBvZiB0aGUgY2VydGlmaWNhdGUgaW4gW1BFTSAoUkZDIDE0MjEpXShodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzE0MjEpIGZvcm1hdC5cbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC90bHMvNC4xLjAvZG9jcy9kYXRhLXNvdXJjZXMvY2VydGlmaWNhdGUjY29udGVudCBEYXRhVGxzQ2VydGlmaWNhdGUjY29udGVudH1cbiAgKi9cbiAgcmVhZG9ubHkgY29udGVudD86IHN0cmluZztcbiAgLyoqXG4gICogVVJMIG9mIHRoZSBlbmRwb2ludCB0byBnZXQgdGhlIGNlcnRpZmljYXRlcyBmcm9tLiBBY2NlcHRlZCBzY2hlbWVzIGFyZTogYGh0dHBzYCwgYHRsc2AuIEZvciBzY2hlbWUgYGh0dHBzOi8vYCBpdCB3aWxsIHVzZSB0aGUgSFRUUCBwcm90b2NvbCBhbmQgYXBwbHkgdGhlIGBwcm94eWAgY29uZmlndXJhdGlvbiBvZiB0aGUgcHJvdmlkZXIsIGlmIHNldC4gRm9yIHNjaGVtZSBgdGxzOi8vYCBpdCB3aWxsIGluc3RlYWQgdXNlIGEgc2VjdXJlIFRDUCBzb2NrZXQuXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvdGxzLzQuMS4wL2RvY3MvZGF0YS1zb3VyY2VzL2NlcnRpZmljYXRlI3VybCBEYXRhVGxzQ2VydGlmaWNhdGUjdXJsfVxuICAqL1xuICByZWFkb25seSB1cmw/OiBzdHJpbmc7XG4gIC8qKlxuICAqIFdoZXRoZXIgdG8gdmVyaWZ5IHRoZSBjZXJ0aWZpY2F0ZSBjaGFpbiB3aGlsZSBwYXJzaW5nIGl0IG9yIG5vdCAoZGVmYXVsdDogYHRydWVgKS5cbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC90bHMvNC4xLjAvZG9jcy9kYXRhLXNvdXJjZXMvY2VydGlmaWNhdGUjdmVyaWZ5X2NoYWluIERhdGFUbHNDZXJ0aWZpY2F0ZSN2ZXJpZnlfY2hhaW59XG4gICovXG4gIHJlYWRvbmx5IHZlcmlmeUNoYWluPzogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlO1xufVxuZXhwb3J0IGludGVyZmFjZSBEYXRhVGxzQ2VydGlmaWNhdGVDZXJ0aWZpY2F0ZXMge1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0YVRsc0NlcnRpZmljYXRlQ2VydGlmaWNhdGVzVG9UZXJyYWZvcm0oc3RydWN0PzogRGF0YVRsc0NlcnRpZmljYXRlQ2VydGlmaWNhdGVzKTogYW55IHtcbiAgaWYgKCFjZGt0Zi5jYW5JbnNwZWN0KHN0cnVjdCkgfHwgY2RrdGYuVG9rZW5pemF0aW9uLmlzUmVzb2x2YWJsZShzdHJ1Y3QpKSB7IHJldHVybiBzdHJ1Y3Q7IH1cbiAgaWYgKGNka3RmLmlzQ29tcGxleEVsZW1lbnQoc3RydWN0KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkEgY29tcGxleCBlbGVtZW50IHdhcyB1c2VkIGFzIGNvbmZpZ3VyYXRpb24sIHRoaXMgaXMgbm90IHN1cHBvcnRlZDogaHR0cHM6Ly9jZGsudGYvY29tcGxleC1vYmplY3QtYXMtY29uZmlndXJhdGlvblwiKTtcbiAgfVxuICByZXR1cm4ge1xuICB9XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGFUbHNDZXJ0aWZpY2F0ZUNlcnRpZmljYXRlc1RvSGNsVGVycmFmb3JtKHN0cnVjdD86IERhdGFUbHNDZXJ0aWZpY2F0ZUNlcnRpZmljYXRlcyk6IGFueSB7XG4gIGlmICghY2RrdGYuY2FuSW5zcGVjdChzdHJ1Y3QpIHx8IGNka3RmLlRva2VuaXphdGlvbi5pc1Jlc29sdmFibGUoc3RydWN0KSkgeyByZXR1cm4gc3RydWN0OyB9XG4gIGlmIChjZGt0Zi5pc0NvbXBsZXhFbGVtZW50KHN0cnVjdCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJBIGNvbXBsZXggZWxlbWVudCB3YXMgdXNlZCBhcyBjb25maWd1cmF0aW9uLCB0aGlzIGlzIG5vdCBzdXBwb3J0ZWQ6IGh0dHBzOi8vY2RrLnRmL2NvbXBsZXgtb2JqZWN0LWFzLWNvbmZpZ3VyYXRpb25cIik7XG4gIH1cbiAgY29uc3QgYXR0cnMgPSB7XG4gIH07XG4gIHJldHVybiBhdHRycztcbn1cblxuZXhwb3J0IGNsYXNzIERhdGFUbHNDZXJ0aWZpY2F0ZUNlcnRpZmljYXRlc091dHB1dFJlZmVyZW5jZSBleHRlbmRzIGNka3RmLkNvbXBsZXhPYmplY3Qge1xuICBwcml2YXRlIGlzRW1wdHlPYmplY3QgPSBmYWxzZTtcblxuICAvKipcbiAgKiBAcGFyYW0gdGVycmFmb3JtUmVzb3VyY2UgVGhlIHBhcmVudCByZXNvdXJjZVxuICAqIEBwYXJhbSB0ZXJyYWZvcm1BdHRyaWJ1dGUgVGhlIGF0dHJpYnV0ZSBvbiB0aGUgcGFyZW50IHJlc291cmNlIHRoaXMgY2xhc3MgaXMgcmVmZXJlbmNpbmdcbiAgKiBAcGFyYW0gY29tcGxleE9iamVjdEluZGV4IHRoZSBpbmRleCBvZiB0aGlzIGl0ZW0gaW4gdGhlIGxpc3RcbiAgKiBAcGFyYW0gY29tcGxleE9iamVjdElzRnJvbVNldCB3aGV0aGVyIHRoZSBsaXN0IGlzIHdyYXBwaW5nIGEgc2V0ICh3aWxsIGFkZCB0b2xpc3QoKSB0byBiZSBhYmxlIHRvIGFjY2VzcyBhbiBpdGVtIHZpYSBhbiBpbmRleClcbiAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHRlcnJhZm9ybVJlc291cmNlOiBjZGt0Zi5JSW50ZXJwb2xhdGluZ1BhcmVudCwgdGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcsIGNvbXBsZXhPYmplY3RJbmRleDogbnVtYmVyLCBjb21wbGV4T2JqZWN0SXNGcm9tU2V0OiBib29sZWFuKSB7XG4gICAgc3VwZXIodGVycmFmb3JtUmVzb3VyY2UsIHRlcnJhZm9ybUF0dHJpYnV0ZSwgY29tcGxleE9iamVjdElzRnJvbVNldCwgY29tcGxleE9iamVjdEluZGV4KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW50ZXJuYWxWYWx1ZSgpOiBEYXRhVGxzQ2VydGlmaWNhdGVDZXJ0aWZpY2F0ZXMgfCB1bmRlZmluZWQge1xuICAgIGxldCBoYXNBbnlWYWx1ZXMgPSB0aGlzLmlzRW1wdHlPYmplY3Q7XG4gICAgY29uc3QgaW50ZXJuYWxWYWx1ZVJlc3VsdDogYW55ID0ge307XG4gICAgcmV0dXJuIGhhc0FueVZhbHVlcyA/IGludGVybmFsVmFsdWVSZXN1bHQgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IGludGVybmFsVmFsdWUodmFsdWU6IERhdGFUbHNDZXJ0aWZpY2F0ZUNlcnRpZmljYXRlcyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmlzRW1wdHlPYmplY3QgPSBmYWxzZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmlzRW1wdHlPYmplY3QgPSBPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoID09PSAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIGNlcnRfcGVtIC0gY29tcHV0ZWQ6IHRydWUsIG9wdGlvbmFsOiBmYWxzZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHB1YmxpYyBnZXQgY2VydFBlbSgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmdBdHRyaWJ1dGUoJ2NlcnRfcGVtJyk7XG4gIH1cblxuICAvLyBpc19jYSAtIGNvbXB1dGVkOiB0cnVlLCBvcHRpb25hbDogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZVxuICBwdWJsaWMgZ2V0IGlzQ2EoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Qm9vbGVhbkF0dHJpYnV0ZSgnaXNfY2EnKTtcbiAgfVxuXG4gIC8vIGlzc3VlciAtIGNvbXB1dGVkOiB0cnVlLCBvcHRpb25hbDogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZVxuICBwdWJsaWMgZ2V0IGlzc3VlcigpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmdBdHRyaWJ1dGUoJ2lzc3VlcicpO1xuICB9XG5cbiAgLy8gbm90X2FmdGVyIC0gY29tcHV0ZWQ6IHRydWUsIG9wdGlvbmFsOiBmYWxzZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHB1YmxpYyBnZXQgbm90QWZ0ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nQXR0cmlidXRlKCdub3RfYWZ0ZXInKTtcbiAgfVxuXG4gIC8vIG5vdF9iZWZvcmUgLSBjb21wdXRlZDogdHJ1ZSwgb3B0aW9uYWw6IGZhbHNlLCByZXF1aXJlZDogZmFsc2VcbiAgcHVibGljIGdldCBub3RCZWZvcmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nQXR0cmlidXRlKCdub3RfYmVmb3JlJyk7XG4gIH1cblxuICAvLyBwdWJsaWNfa2V5X2FsZ29yaXRobSAtIGNvbXB1dGVkOiB0cnVlLCBvcHRpb25hbDogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZVxuICBwdWJsaWMgZ2V0IHB1YmxpY0tleUFsZ29yaXRobSgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmdBdHRyaWJ1dGUoJ3B1YmxpY19rZXlfYWxnb3JpdGhtJyk7XG4gIH1cblxuICAvLyBzZXJpYWxfbnVtYmVyIC0gY29tcHV0ZWQ6IHRydWUsIG9wdGlvbmFsOiBmYWxzZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHB1YmxpYyBnZXQgc2VyaWFsTnVtYmVyKCkge1xuICAgIHJldHVybiB0aGlzLmdldFN0cmluZ0F0dHJpYnV0ZSgnc2VyaWFsX251bWJlcicpO1xuICB9XG5cbiAgLy8gc2hhMV9maW5nZXJwcmludCAtIGNvbXB1dGVkOiB0cnVlLCBvcHRpb25hbDogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZVxuICBwdWJsaWMgZ2V0IHNoYTFGaW5nZXJwcmludCgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmdBdHRyaWJ1dGUoJ3NoYTFfZmluZ2VycHJpbnQnKTtcbiAgfVxuXG4gIC8vIHNpZ25hdHVyZV9hbGdvcml0aG0gLSBjb21wdXRlZDogdHJ1ZSwgb3B0aW9uYWw6IGZhbHNlLCByZXF1aXJlZDogZmFsc2VcbiAgcHVibGljIGdldCBzaWduYXR1cmVBbGdvcml0aG0oKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nQXR0cmlidXRlKCdzaWduYXR1cmVfYWxnb3JpdGhtJyk7XG4gIH1cblxuICAvLyBzdWJqZWN0IC0gY29tcHV0ZWQ6IHRydWUsIG9wdGlvbmFsOiBmYWxzZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHB1YmxpYyBnZXQgc3ViamVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmdBdHRyaWJ1dGUoJ3N1YmplY3QnKTtcbiAgfVxuXG4gIC8vIHZlcnNpb24gLSBjb21wdXRlZDogdHJ1ZSwgb3B0aW9uYWw6IGZhbHNlLCByZXF1aXJlZDogZmFsc2VcbiAgcHVibGljIGdldCB2ZXJzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLmdldE51bWJlckF0dHJpYnV0ZSgndmVyc2lvbicpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhVGxzQ2VydGlmaWNhdGVDZXJ0aWZpY2F0ZXNMaXN0IGV4dGVuZHMgY2RrdGYuQ29tcGxleExpc3Qge1xuXG4gIC8qKlxuICAqIEBwYXJhbSB0ZXJyYWZvcm1SZXNvdXJjZSBUaGUgcGFyZW50IHJlc291cmNlXG4gICogQHBhcmFtIHRlcnJhZm9ybUF0dHJpYnV0ZSBUaGUgYXR0cmlidXRlIG9uIHRoZSBwYXJlbnQgcmVzb3VyY2UgdGhpcyBjbGFzcyBpcyByZWZlcmVuY2luZ1xuICAqIEBwYXJhbSB3cmFwc1NldCB3aGV0aGVyIHRoZSBsaXN0IGlzIHdyYXBwaW5nIGEgc2V0ICh3aWxsIGFkZCB0b2xpc3QoKSB0byBiZSBhYmxlIHRvIGFjY2VzcyBhbiBpdGVtIHZpYSBhbiBpbmRleClcbiAgKi9cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHRlcnJhZm9ybVJlc291cmNlOiBjZGt0Zi5JSW50ZXJwb2xhdGluZ1BhcmVudCwgcHJvdGVjdGVkIHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nLCBwcm90ZWN0ZWQgd3JhcHNTZXQ6IGJvb2xlYW4pIHtcbiAgICBzdXBlcih0ZXJyYWZvcm1SZXNvdXJjZSwgdGVycmFmb3JtQXR0cmlidXRlLCB3cmFwc1NldClcbiAgfVxuXG4gIC8qKlxuICAqIEBwYXJhbSBpbmRleCB0aGUgaW5kZXggb2YgdGhlIGl0ZW0gdG8gcmV0dXJuXG4gICovXG4gIHB1YmxpYyBnZXQoaW5kZXg6IG51bWJlcik6IERhdGFUbHNDZXJ0aWZpY2F0ZUNlcnRpZmljYXRlc091dHB1dFJlZmVyZW5jZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRhVGxzQ2VydGlmaWNhdGVDZXJ0aWZpY2F0ZXNPdXRwdXRSZWZlcmVuY2UodGhpcy50ZXJyYWZvcm1SZXNvdXJjZSwgdGhpcy50ZXJyYWZvcm1BdHRyaWJ1dGUsIGluZGV4LCB0aGlzLndyYXBzU2V0KTtcbiAgfVxufVxuXG4vKipcbiogUmVwcmVzZW50cyBhIHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL3Rscy80LjEuMC9kb2NzL2RhdGEtc291cmNlcy9jZXJ0aWZpY2F0ZSB0bHNfY2VydGlmaWNhdGV9XG4qL1xuZXhwb3J0IGNsYXNzIERhdGFUbHNDZXJ0aWZpY2F0ZSBleHRlbmRzIGNka3RmLlRlcnJhZm9ybURhdGFTb3VyY2Uge1xuXG4gIC8vID09PT09PT09PT09PT09PT09XG4gIC8vIFNUQVRJQyBQUk9QRVJUSUVTXG4gIC8vID09PT09PT09PT09PT09PT09XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdGZSZXNvdXJjZVR5cGUgPSBcInRsc19jZXJ0aWZpY2F0ZVwiO1xuXG4gIC8vID09PT09PT09PT09PT09XG4gIC8vIFNUQVRJQyBNZXRob2RzXG4gIC8vID09PT09PT09PT09PT09XG4gIC8qKlxuICAqIEdlbmVyYXRlcyBDREtURiBjb2RlIGZvciBpbXBvcnRpbmcgYSBEYXRhVGxzQ2VydGlmaWNhdGUgcmVzb3VyY2UgdXBvbiBydW5uaW5nIFwiY2RrdGYgcGxhbiA8c3RhY2stbmFtZT5cIlxuICAqIEBwYXJhbSBzY29wZSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0XG4gICogQHBhcmFtIGltcG9ydFRvSWQgVGhlIGNvbnN0cnVjdCBpZCB1c2VkIGluIHRoZSBnZW5lcmF0ZWQgY29uZmlnIGZvciB0aGUgRGF0YVRsc0NlcnRpZmljYXRlIHRvIGltcG9ydFxuICAqIEBwYXJhbSBpbXBvcnRGcm9tSWQgVGhlIGlkIG9mIHRoZSBleGlzdGluZyBEYXRhVGxzQ2VydGlmaWNhdGUgdGhhdCBzaG91bGQgYmUgaW1wb3J0ZWQuIFJlZmVyIHRvIHRoZSB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC90bHMvNC4xLjAvZG9jcy9kYXRhLXNvdXJjZXMvY2VydGlmaWNhdGUjaW1wb3J0IGltcG9ydCBzZWN0aW9ufSBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGlzIHJlc291cmNlIGZvciB0aGUgaWQgdG8gdXNlXG4gICogQHBhcmFtIHByb3ZpZGVyPyBPcHRpb25hbCBpbnN0YW5jZSBvZiB0aGUgcHJvdmlkZXIgd2hlcmUgdGhlIERhdGFUbHNDZXJ0aWZpY2F0ZSB0byBpbXBvcnQgaXMgZm91bmRcbiAgKi9cbiAgcHVibGljIHN0YXRpYyBnZW5lcmF0ZUNvbmZpZ0ZvckltcG9ydChzY29wZTogQ29uc3RydWN0LCBpbXBvcnRUb0lkOiBzdHJpbmcsIGltcG9ydEZyb21JZDogc3RyaW5nLCBwcm92aWRlcj86IGNka3RmLlRlcnJhZm9ybVByb3ZpZGVyKSB7XG4gICAgICAgIHJldHVybiBuZXcgY2RrdGYuSW1wb3J0YWJsZVJlc291cmNlKHNjb3BlLCBpbXBvcnRUb0lkLCB7IHRlcnJhZm9ybVJlc291cmNlVHlwZTogXCJ0bHNfY2VydGlmaWNhdGVcIiwgaW1wb3J0SWQ6IGltcG9ydEZyb21JZCwgcHJvdmlkZXIgfSk7XG4gICAgICB9XG5cbiAgLy8gPT09PT09PT09PT1cbiAgLy8gSU5JVElBTElaRVJcbiAgLy8gPT09PT09PT09PT1cblxuICAvKipcbiAgKiBDcmVhdGUgYSBuZXcge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvdGxzLzQuMS4wL2RvY3MvZGF0YS1zb3VyY2VzL2NlcnRpZmljYXRlIHRsc19jZXJ0aWZpY2F0ZX0gRGF0YSBTb3VyY2VcbiAgKlxuICAqIEBwYXJhbSBzY29wZSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0XG4gICogQHBhcmFtIGlkIFRoZSBzY29wZWQgY29uc3RydWN0IElELiBNdXN0IGJlIHVuaXF1ZSBhbW9uZ3N0IHNpYmxpbmdzIGluIHRoZSBzYW1lIHNjb3BlXG4gICogQHBhcmFtIG9wdGlvbnMgRGF0YVRsc0NlcnRpZmljYXRlQ29uZmlnID0ge31cbiAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGNvbmZpZzogRGF0YVRsc0NlcnRpZmljYXRlQ29uZmlnID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHRlcnJhZm9ybVJlc291cmNlVHlwZTogJ3Rsc19jZXJ0aWZpY2F0ZScsXG4gICAgICB0ZXJyYWZvcm1HZW5lcmF0b3JNZXRhZGF0YToge1xuICAgICAgICBwcm92aWRlck5hbWU6ICd0bHMnLFxuICAgICAgICBwcm92aWRlclZlcnNpb246ICc0LjEuMCcsXG4gICAgICAgIHByb3ZpZGVyVmVyc2lvbkNvbnN0cmFpbnQ6ICd+PiA0LjAnXG4gICAgICB9LFxuICAgICAgcHJvdmlkZXI6IGNvbmZpZy5wcm92aWRlcixcbiAgICAgIGRlcGVuZHNPbjogY29uZmlnLmRlcGVuZHNPbixcbiAgICAgIGNvdW50OiBjb25maWcuY291bnQsXG4gICAgICBsaWZlY3ljbGU6IGNvbmZpZy5saWZlY3ljbGUsXG4gICAgICBwcm92aXNpb25lcnM6IGNvbmZpZy5wcm92aXNpb25lcnMsXG4gICAgICBjb25uZWN0aW9uOiBjb25maWcuY29ubmVjdGlvbixcbiAgICAgIGZvckVhY2g6IGNvbmZpZy5mb3JFYWNoXG4gICAgfSk7XG4gICAgdGhpcy5fY29udGVudCA9IGNvbmZpZy5jb250ZW50O1xuICAgIHRoaXMuX3VybCA9IGNvbmZpZy51cmw7XG4gICAgdGhpcy5fdmVyaWZ5Q2hhaW4gPSBjb25maWcudmVyaWZ5Q2hhaW47XG4gIH1cblxuICAvLyA9PT09PT09PT09XG4gIC8vIEFUVFJJQlVURVNcbiAgLy8gPT09PT09PT09PVxuXG4gIC8vIGNlcnRpZmljYXRlcyAtIGNvbXB1dGVkOiB0cnVlLCBvcHRpb25hbDogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9jZXJ0aWZpY2F0ZXMgPSBuZXcgRGF0YVRsc0NlcnRpZmljYXRlQ2VydGlmaWNhdGVzTGlzdCh0aGlzLCBcImNlcnRpZmljYXRlc1wiLCBmYWxzZSk7XG4gIHB1YmxpYyBnZXQgY2VydGlmaWNhdGVzKCkge1xuICAgIHJldHVybiB0aGlzLl9jZXJ0aWZpY2F0ZXM7XG4gIH1cblxuICAvLyBjb250ZW50IC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX2NvbnRlbnQ/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IGNvbnRlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nQXR0cmlidXRlKCdjb250ZW50Jyk7XG4gIH1cbiAgcHVibGljIHNldCBjb250ZW50KHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9jb250ZW50ID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0Q29udGVudCgpIHtcbiAgICB0aGlzLl9jb250ZW50ID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCBjb250ZW50SW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRlbnQ7XG4gIH1cblxuICAvLyBpZCAtIGNvbXB1dGVkOiB0cnVlLCBvcHRpb25hbDogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZVxuICBwdWJsaWMgZ2V0IGlkKCkge1xuICAgIHJldHVybiB0aGlzLmdldFN0cmluZ0F0dHJpYnV0ZSgnaWQnKTtcbiAgfVxuXG4gIC8vIHVybCAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF91cmw/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IHVybCgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmdBdHRyaWJ1dGUoJ3VybCcpO1xuICB9XG4gIHB1YmxpYyBzZXQgdXJsKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl91cmwgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVzZXRVcmwoKSB7XG4gICAgdGhpcy5fdXJsID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCB1cmxJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdXJsO1xuICB9XG5cbiAgLy8gdmVyaWZ5X2NoYWluIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX3ZlcmlmeUNoYWluPzogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlOyBcbiAgcHVibGljIGdldCB2ZXJpZnlDaGFpbigpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRCb29sZWFuQXR0cmlidXRlKCd2ZXJpZnlfY2hhaW4nKTtcbiAgfVxuICBwdWJsaWMgc2V0IHZlcmlmeUNoYWluKHZhbHVlOiBib29sZWFuIHwgY2RrdGYuSVJlc29sdmFibGUpIHtcbiAgICB0aGlzLl92ZXJpZnlDaGFpbiA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldFZlcmlmeUNoYWluKCkge1xuICAgIHRoaXMuX3ZlcmlmeUNoYWluID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCB2ZXJpZnlDaGFpbklucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl92ZXJpZnlDaGFpbjtcbiAgfVxuXG4gIC8vID09PT09PT09PVxuICAvLyBTWU5USEVTSVNcbiAgLy8gPT09PT09PT09XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgY29udGVudDogY2RrdGYuc3RyaW5nVG9UZXJyYWZvcm0odGhpcy5fY29udGVudCksXG4gICAgICB1cmw6IGNka3RmLnN0cmluZ1RvVGVycmFmb3JtKHRoaXMuX3VybCksXG4gICAgICB2ZXJpZnlfY2hhaW46IGNka3RmLmJvb2xlYW5Ub1RlcnJhZm9ybSh0aGlzLl92ZXJpZnlDaGFpbiksXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplSGNsQXR0cmlidXRlcygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgY29uc3QgYXR0cnMgPSB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5zdHJpbmdUb0hjbFRlcnJhZm9ybSh0aGlzLl9jb250ZW50KSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAgdXJsOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5zdHJpbmdUb0hjbFRlcnJhZm9ybSh0aGlzLl91cmwpLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICB2ZXJpZnlfY2hhaW46IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLmJvb2xlYW5Ub0hjbFRlcnJhZm9ybSh0aGlzLl92ZXJpZnlDaGFpbiksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcImJvb2xlYW5cIixcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIC8vIHJlbW92ZSB1bmRlZmluZWQgYXR0cmlidXRlc1xuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoYXR0cnMpLmZpbHRlcigoW18sIHZhbHVlXSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZS52YWx1ZSAhPT0gdW5kZWZpbmVkICkpXG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) HashiCorp, Inc.
|
|
3
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { Construct } from 'constructs';
|
|
6
|
+
import * as cdktf from 'cdktf';
|
|
7
|
+
export interface DataTlsPublicKeyConfig extends cdktf.TerraformMetaArguments {
|
|
8
|
+
/**
|
|
9
|
+
* The private key (in [OpenSSH PEM (RFC 4716)](https://datatracker.ietf.org/doc/html/rfc4716) format) to extract the public key from. This is _mutually exclusive_ with `private_key_pem`. Currently-supported algorithms for keys are: `RSA`, `ECDSA`, `ED25519`.
|
|
10
|
+
*
|
|
11
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/data-sources/public_key#private_key_openssh DataTlsPublicKey#private_key_openssh}
|
|
12
|
+
*/
|
|
13
|
+
readonly privateKeyOpenssh?: string;
|
|
14
|
+
/**
|
|
15
|
+
* The private key (in [PEM (RFC 1421)](https://datatracker.ietf.org/doc/html/rfc1421) format) to extract the public key from. This is _mutually exclusive_ with `private_key_openssh`. Currently-supported algorithms for keys are: `RSA`, `ECDSA`, `ED25519`.
|
|
16
|
+
*
|
|
17
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/data-sources/public_key#private_key_pem DataTlsPublicKey#private_key_pem}
|
|
18
|
+
*/
|
|
19
|
+
readonly privateKeyPem?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Represents a {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/data-sources/public_key tls_public_key}
|
|
23
|
+
*/
|
|
24
|
+
export declare class DataTlsPublicKey extends cdktf.TerraformDataSource {
|
|
25
|
+
static readonly tfResourceType = "tls_public_key";
|
|
26
|
+
/**
|
|
27
|
+
* Generates CDKTF code for importing a DataTlsPublicKey resource upon running "cdktf plan <stack-name>"
|
|
28
|
+
* @param scope The scope in which to define this construct
|
|
29
|
+
* @param importToId The construct id used in the generated config for the DataTlsPublicKey to import
|
|
30
|
+
* @param importFromId The id of the existing DataTlsPublicKey that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/data-sources/public_key#import import section} in the documentation of this resource for the id to use
|
|
31
|
+
* @param provider? Optional instance of the provider where the DataTlsPublicKey to import is found
|
|
32
|
+
*/
|
|
33
|
+
static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
|
|
34
|
+
/**
|
|
35
|
+
* Create a new {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/data-sources/public_key tls_public_key} Data Source
|
|
36
|
+
*
|
|
37
|
+
* @param scope The scope in which to define this construct
|
|
38
|
+
* @param id The scoped construct ID. Must be unique amongst siblings in the same scope
|
|
39
|
+
* @param options DataTlsPublicKeyConfig = {}
|
|
40
|
+
*/
|
|
41
|
+
constructor(scope: Construct, id: string, config?: DataTlsPublicKeyConfig);
|
|
42
|
+
get algorithm(): string;
|
|
43
|
+
get id(): string;
|
|
44
|
+
private _privateKeyOpenssh?;
|
|
45
|
+
get privateKeyOpenssh(): string;
|
|
46
|
+
set privateKeyOpenssh(value: string);
|
|
47
|
+
resetPrivateKeyOpenssh(): void;
|
|
48
|
+
get privateKeyOpensshInput(): string | undefined;
|
|
49
|
+
private _privateKeyPem?;
|
|
50
|
+
get privateKeyPem(): string;
|
|
51
|
+
set privateKeyPem(value: string);
|
|
52
|
+
resetPrivateKeyPem(): void;
|
|
53
|
+
get privateKeyPemInput(): string | undefined;
|
|
54
|
+
get publicKeyFingerprintMd5(): string;
|
|
55
|
+
get publicKeyFingerprintSha256(): string;
|
|
56
|
+
get publicKeyOpenssh(): string;
|
|
57
|
+
get publicKeyPem(): string;
|
|
58
|
+
protected synthesizeAttributes(): {
|
|
59
|
+
[name: string]: any;
|
|
60
|
+
};
|
|
61
|
+
protected synthesizeHclAttributes(): {
|
|
62
|
+
[name: string]: any;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.DataTlsPublicKey = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const cdktf = require("cdktf");
|
|
7
|
+
/**
|
|
8
|
+
* Represents a {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/data-sources/public_key tls_public_key}
|
|
9
|
+
*/
|
|
10
|
+
class DataTlsPublicKey extends cdktf.TerraformDataSource {
|
|
11
|
+
// ==============
|
|
12
|
+
// STATIC Methods
|
|
13
|
+
// ==============
|
|
14
|
+
/**
|
|
15
|
+
* Generates CDKTF code for importing a DataTlsPublicKey resource upon running "cdktf plan <stack-name>"
|
|
16
|
+
* @param scope The scope in which to define this construct
|
|
17
|
+
* @param importToId The construct id used in the generated config for the DataTlsPublicKey to import
|
|
18
|
+
* @param importFromId The id of the existing DataTlsPublicKey that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/data-sources/public_key#import import section} in the documentation of this resource for the id to use
|
|
19
|
+
* @param provider? Optional instance of the provider where the DataTlsPublicKey to import is found
|
|
20
|
+
*/
|
|
21
|
+
static generateConfigForImport(scope, importToId, importFromId, provider) {
|
|
22
|
+
return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "tls_public_key", importId: importFromId, provider });
|
|
23
|
+
}
|
|
24
|
+
// ===========
|
|
25
|
+
// INITIALIZER
|
|
26
|
+
// ===========
|
|
27
|
+
/**
|
|
28
|
+
* Create a new {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/data-sources/public_key tls_public_key} Data Source
|
|
29
|
+
*
|
|
30
|
+
* @param scope The scope in which to define this construct
|
|
31
|
+
* @param id The scoped construct ID. Must be unique amongst siblings in the same scope
|
|
32
|
+
* @param options DataTlsPublicKeyConfig = {}
|
|
33
|
+
*/
|
|
34
|
+
constructor(scope, id, config = {}) {
|
|
35
|
+
super(scope, id, {
|
|
36
|
+
terraformResourceType: 'tls_public_key',
|
|
37
|
+
terraformGeneratorMetadata: {
|
|
38
|
+
providerName: 'tls',
|
|
39
|
+
providerVersion: '4.1.0',
|
|
40
|
+
providerVersionConstraint: '~> 4.0'
|
|
41
|
+
},
|
|
42
|
+
provider: config.provider,
|
|
43
|
+
dependsOn: config.dependsOn,
|
|
44
|
+
count: config.count,
|
|
45
|
+
lifecycle: config.lifecycle,
|
|
46
|
+
provisioners: config.provisioners,
|
|
47
|
+
connection: config.connection,
|
|
48
|
+
forEach: config.forEach
|
|
49
|
+
});
|
|
50
|
+
this._privateKeyOpenssh = config.privateKeyOpenssh;
|
|
51
|
+
this._privateKeyPem = config.privateKeyPem;
|
|
52
|
+
}
|
|
53
|
+
// ==========
|
|
54
|
+
// ATTRIBUTES
|
|
55
|
+
// ==========
|
|
56
|
+
// algorithm - computed: true, optional: false, required: false
|
|
57
|
+
get algorithm() {
|
|
58
|
+
return this.getStringAttribute('algorithm');
|
|
59
|
+
}
|
|
60
|
+
// id - computed: true, optional: false, required: false
|
|
61
|
+
get id() {
|
|
62
|
+
return this.getStringAttribute('id');
|
|
63
|
+
}
|
|
64
|
+
get privateKeyOpenssh() {
|
|
65
|
+
return this.getStringAttribute('private_key_openssh');
|
|
66
|
+
}
|
|
67
|
+
set privateKeyOpenssh(value) {
|
|
68
|
+
this._privateKeyOpenssh = value;
|
|
69
|
+
}
|
|
70
|
+
resetPrivateKeyOpenssh() {
|
|
71
|
+
this._privateKeyOpenssh = undefined;
|
|
72
|
+
}
|
|
73
|
+
// Temporarily expose input value. Use with caution.
|
|
74
|
+
get privateKeyOpensshInput() {
|
|
75
|
+
return this._privateKeyOpenssh;
|
|
76
|
+
}
|
|
77
|
+
get privateKeyPem() {
|
|
78
|
+
return this.getStringAttribute('private_key_pem');
|
|
79
|
+
}
|
|
80
|
+
set privateKeyPem(value) {
|
|
81
|
+
this._privateKeyPem = value;
|
|
82
|
+
}
|
|
83
|
+
resetPrivateKeyPem() {
|
|
84
|
+
this._privateKeyPem = undefined;
|
|
85
|
+
}
|
|
86
|
+
// Temporarily expose input value. Use with caution.
|
|
87
|
+
get privateKeyPemInput() {
|
|
88
|
+
return this._privateKeyPem;
|
|
89
|
+
}
|
|
90
|
+
// public_key_fingerprint_md5 - computed: true, optional: false, required: false
|
|
91
|
+
get publicKeyFingerprintMd5() {
|
|
92
|
+
return this.getStringAttribute('public_key_fingerprint_md5');
|
|
93
|
+
}
|
|
94
|
+
// public_key_fingerprint_sha256 - computed: true, optional: false, required: false
|
|
95
|
+
get publicKeyFingerprintSha256() {
|
|
96
|
+
return this.getStringAttribute('public_key_fingerprint_sha256');
|
|
97
|
+
}
|
|
98
|
+
// public_key_openssh - computed: true, optional: false, required: false
|
|
99
|
+
get publicKeyOpenssh() {
|
|
100
|
+
return this.getStringAttribute('public_key_openssh');
|
|
101
|
+
}
|
|
102
|
+
// public_key_pem - computed: true, optional: false, required: false
|
|
103
|
+
get publicKeyPem() {
|
|
104
|
+
return this.getStringAttribute('public_key_pem');
|
|
105
|
+
}
|
|
106
|
+
// =========
|
|
107
|
+
// SYNTHESIS
|
|
108
|
+
// =========
|
|
109
|
+
synthesizeAttributes() {
|
|
110
|
+
return {
|
|
111
|
+
private_key_openssh: cdktf.stringToTerraform(this._privateKeyOpenssh),
|
|
112
|
+
private_key_pem: cdktf.stringToTerraform(this._privateKeyPem),
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
synthesizeHclAttributes() {
|
|
116
|
+
const attrs = {
|
|
117
|
+
private_key_openssh: {
|
|
118
|
+
value: cdktf.stringToHclTerraform(this._privateKeyOpenssh),
|
|
119
|
+
isBlock: false,
|
|
120
|
+
type: "simple",
|
|
121
|
+
storageClassType: "string",
|
|
122
|
+
},
|
|
123
|
+
private_key_pem: {
|
|
124
|
+
value: cdktf.stringToHclTerraform(this._privateKeyPem),
|
|
125
|
+
isBlock: false,
|
|
126
|
+
type: "simple",
|
|
127
|
+
storageClassType: "string",
|
|
128
|
+
},
|
|
129
|
+
};
|
|
130
|
+
// remove undefined attributes
|
|
131
|
+
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
exports.DataTlsPublicKey = DataTlsPublicKey;
|
|
135
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
136
|
+
DataTlsPublicKey[_a] = { fqn: "@cdktn/provider-tls.dataTlsPublicKey.DataTlsPublicKey", version: "11.1.0" };
|
|
137
|
+
// =================
|
|
138
|
+
// STATIC PROPERTIES
|
|
139
|
+
// =================
|
|
140
|
+
DataTlsPublicKey.tfResourceType = "tls_public_key";
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YS10bHMtcHVibGljLWtleS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVNBLCtCQUErQjtBQW1CL0I7O0VBRUU7QUFDRixNQUFhLGdCQUFpQixTQUFRLEtBQUssQ0FBQyxtQkFBbUI7SUFPN0QsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakI7Ozs7OztNQU1FO0lBQ0ssTUFBTSxDQUFDLHVCQUF1QixDQUFDLEtBQWdCLEVBQUUsVUFBa0IsRUFBRSxZQUFvQixFQUFFLFFBQWtDO1FBQzlILE9BQU8sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN4SSxDQUFDO0lBRUwsY0FBYztJQUNkLGNBQWM7SUFDZCxjQUFjO0lBRWQ7Ozs7OztNQU1FO0lBQ0YsWUFBbUIsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsU0FBaUMsRUFBRTtRQUNsRixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLHFCQUFxQixFQUFFLGdCQUFnQjtZQUN2QywwQkFBMEIsRUFBRTtnQkFDMUIsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLGVBQWUsRUFBRSxPQUFPO2dCQUN4Qix5QkFBeUIsRUFBRSxRQUFRO2FBQ3BDO1lBQ0QsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ3pCLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztZQUMzQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7WUFDbkIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTO1lBQzNCLFlBQVksRUFBRSxNQUFNLENBQUMsWUFBWTtZQUNqQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7WUFDN0IsT0FBTyxFQUFFLE1BQU0sQ0FB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QUE4QjtRQUM5QixPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBRSxDQUFDLENBQUE7SUFDNUgsQ0FBQzs7QUFuSkgsNENBb0pDOzs7QUFsSkMsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQixvQkFBb0I7QUFDRywrQkFBYyxHQUFHLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG4vLyBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL3Rscy80LjEuMC9kb2NzL2RhdGEtc291cmNlcy9wdWJsaWNfa2V5XG4vLyBnZW5lcmF0ZWQgZnJvbSB0ZXJyYWZvcm0gcmVzb3VyY2Ugc2NoZW1hXG5cbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgY2RrdGYgZnJvbSAnY2RrdGYnO1xuXG4vLyBDb25maWd1cmF0aW9uXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVRsc1B1YmxpY0tleUNvbmZpZyBleHRlbmRzIGNka3RmLlRlcnJhZm9ybU1ldGFBcmd1bWVudHMge1xuICAvKipcbiAgKiBUaGUgcHJpdmF0ZSBrZXkgKGluICBbT3BlblNTSCBQRU0gKFJGQyA0NzE2KV0oaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM0NzE2KSBmb3JtYXQpIHRvIGV4dHJhY3QgdGhlIHB1YmxpYyBrZXkgZnJvbS4gVGhpcyBpcyBfbXV0dWFsbHkgZXhjbHVzaXZlXyB3aXRoIGBwcml2YXRlX2tleV9wZW1gLiBDdXJyZW50bHktc3VwcG9ydGVkIGFsZ29yaXRobXMgZm9yIGtleXMgYXJlOiBgUlNBYCwgYEVDRFNBYCwgYEVEMjU1MTlgLiBcbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC90bHMvNC4xLjAvZG9jcy9kYXRhLXNvdXJjZXMvcHVibGljX2tleSNwcml2YXRlX2tleV9vcGVuc3NoIERhdGFUbHNQdWJsaWNLZXkjcHJpdmF0ZV9rZXlfb3BlbnNzaH1cbiAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZUtleU9wZW5zc2g/OiBzdHJpbmc7XG4gIC8qKlxuICAqIFRoZSBwcml2YXRlIGtleSAoaW4gW1BFTSAoUkZDIDE0MjEpXShodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzE0MjEpIGZvcm1hdCkgdG8gZXh0cmFjdCB0aGUgcHVibGljIGtleSBmcm9tLiBUaGlzIGlzIF9tdXR1YWxseSBleGNsdXNpdmVfIHdpdGggYHByaXZhdGVfa2V5X29wZW5zc2hgLiBDdXJyZW50bHktc3VwcG9ydGVkIGFsZ29yaXRobXMgZm9yIGtleXMgYXJlOiBgUlNBYCwgYEVDRFNBYCwgYEVEMjU1MTlgLiBcbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC90bHMvNC4xLjAvZG9jcy9kYXRhLXNvdXJjZXMvcHVibGljX2tleSNwcml2YXRlX2tleV9wZW0gRGF0YVRsc1B1YmxpY0tleSNwcml2YXRlX2tleV9wZW19XG4gICovXG4gIHJlYWRvbmx5IHByaXZhdGVLZXlQZW0/OiBzdHJpbmc7XG59XG5cbi8qKlxuKiBSZXByZXNlbnRzIGEge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvdGxzLzQuMS4wL2RvY3MvZGF0YS1zb3VyY2VzL3B1YmxpY19rZXkgdGxzX3B1YmxpY19rZXl9XG4qL1xuZXhwb3J0IGNsYXNzIERhdGFUbHNQdWJsaWNLZXkgZXh0ZW5kcyBjZGt0Zi5UZXJyYWZvcm1EYXRhU291cmNlIHtcblxuICAvLyA9PT09PT09PT09PT09PT09PVxuICAvLyBTVEFUSUMgUFJPUEVSVElFU1xuICAvLyA9PT09PT09PT09PT09PT09PVxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHRmUmVzb3VyY2VUeXBlID0gXCJ0bHNfcHVibGljX2tleVwiO1xuXG4gIC8vID09PT09PT09PT09PT09XG4gIC8vIFNUQVRJQyBNZXRob2RzXG4gIC8vID09PT09PT09PT09PT09XG4gIC8qKlxuICAqIEdlbmVyYXRlcyBDREtURiBjb2RlIGZvciBpbXBvcnRpbmcgYSBEYXRhVGxzUHVibGljS2V5IHJlc291cmNlIHVwb24gcnVubmluZyBcImNka3RmIHBsYW4gPHN0YWNrLW5hbWU+XCJcbiAgKiBAcGFyYW0gc2NvcGUgVGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdFxuICAqIEBwYXJhbSBpbXBvcnRUb0lkIFRoZSBjb25zdHJ1Y3QgaWQgdXNlZCBpbiB0aGUgZ2VuZXJhdGVkIGNvbmZpZyBmb3IgdGhlIERhdGFUbHNQdWJsaWNLZXkgdG8gaW1wb3J0XG4gICogQHBhcmFtIGltcG9ydEZyb21JZCBUaGUgaWQgb2YgdGhlIGV4aXN0aW5nIERhdGFUbHNQdWJsaWNLZXkgdGhhdCBzaG91bGQgYmUgaW1wb3J0ZWQuIFJlZmVyIHRvIHRoZSB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC90bHMvNC4xLjAvZG9jcy9kYXRhLXNvdXJjZXMvcHVibGljX2tleSNpbXBvcnQgaW1wb3J0IHNlY3Rpb259IGluIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoaXMgcmVzb3VyY2UgZm9yIHRoZSBpZCB0byB1c2VcbiAgKiBAcGFyYW0gcHJvdmlkZXI/IE9wdGlvbmFsIGluc3RhbmNlIG9mIHRoZSBwcm92aWRlciB3aGVyZSB0aGUgRGF0YVRsc1B1YmxpY0tleSB0byBpbXBvcnQgaXMgZm91bmRcbiAgKi9cbiAgcHVibGljIHN0YXRpYyBnZW5lcmF0ZUNvbmZpZ0ZvckltcG9ydChzY29wZTogQ29uc3RydWN0LCBpbXBvcnRUb0lkOiBzdHJpbmcsIGltcG9ydEZyb21JZDogc3RyaW5nLCBwcm92aWRlcj86IGNka3RmLlRlcnJhZm9ybVByb3ZpZGVyKSB7XG4gICAgICAgIHJldHVybiBuZXcgY2RrdGYuSW1wb3J0YWJsZVJlc291cmNlKHNjb3BlLCBpbXBvcnRUb0lkLCB7IHRlcnJhZm9ybVJlc291cmNlVHlwZTogXCJ0bHNfcHVibGljX2tleVwiLCBpbXBvcnRJZDogaW1wb3J0RnJvbUlkLCBwcm92aWRlciB9KTtcbiAgICAgIH1cblxuICAvLyA9PT09PT09PT09PVxuICAvLyBJTklUSUFMSVpFUlxuICAvLyA9PT09PT09PT09PVxuXG4gIC8qKlxuICAqIENyZWF0ZSBhIG5ldyB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC90bHMvNC4xLjAvZG9jcy9kYXRhLXNvdXJjZXMvcHVibGljX2tleSB0bHNfcHVibGljX2tleX0gRGF0YSBTb3VyY2VcbiAgKlxuICAqIEBwYXJhbSBzY29wZSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0XG4gICogQHBhcmFtIGlkIFRoZSBzY29wZWQgY29uc3RydWN0IElELiBNdXN0IGJlIHVuaXF1ZSBhbW9uZ3N0IHNpYmxpbmdzIGluIHRoZSBzYW1lIHNjb3BlXG4gICogQHBhcmFtIG9wdGlvbnMgRGF0YVRsc1B1YmxpY0tleUNvbmZpZyA9IHt9XG4gICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBjb25maWc6IERhdGFUbHNQdWJsaWNLZXlDb25maWcgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgdGVycmFmb3JtUmVzb3VyY2VUeXBlOiAndGxzX3B1YmxpY19rZXknLFxuICAgICAgdGVycmFmb3JtR2VuZXJhdG9yTWV0YWRhdGE6IHtcbiAgICAgICAgcHJvdmlkZXJOYW1lOiAndGxzJyxcbiAgICAgICAgcHJvdmlkZXJWZXJzaW9uOiAnNC4xLjAnLFxuICAgICAgICBwcm92aWRlclZlcnNpb25Db25zdHJhaW50OiAnfj4gNC4wJ1xuICAgICAgfSxcbiAgICAgIHByb3ZpZGVyOiBjb25maWcucHJvdmlkZXIsXG4gICAgICBkZXBlbmRzT246IGNvbmZpZy5kZXBlbmRzT24sXG4gICAgICBjb3VudDogY29uZmlnLmNvdW50LFxuICAgICAgbGlmZWN5Y2xlOiBjb25maWcubGlmZWN5Y2xlLFxuICAgICAgcHJvdmlzaW9uZXJzOiBjb25maWcucHJvdmlzaW9uZXJzLFxuICAgICAgY29ubmVjdGlvbjogY29uZmlnLmNvbm5lY3Rpb24sXG4gICAgICBmb3JFYWNoOiBjb25maWcuZm9yRWFjaFxuICAgIH0pO1xuICAgIHRoaXMuX3ByaXZhdGVLZXlPcGVuc3NoID0gY29uZmlnLnByaXZhdGVLZXlPcGVuc3NoO1xuICAgIHRoaXMuX3ByaXZhdGVLZXlQZW0gPSBjb25maWcucHJpdmF0ZUtleVBlbTtcbiAgfVxuXG4gIC8vID09PT09PT09PT1cbiAgLy8gQVRUUklCVVRFU1xuICAvLyA9PT09PT09PT09XG5cbiAgLy8gYWxnb3JpdGhtIC0gY29tcHV0ZWQ6IHRydWUsIG9wdGlvbmFsOiBmYWxzZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHB1YmxpYyBnZXQgYWxnb3JpdGhtKCkge1xuICAgIHJldHVybiB0aGlzLmdldFN0cmluZ0F0dHJpYnV0ZSgnYWxnb3JpdGhtJyk7XG4gIH1cblxuICAvLyBpZCAtIGNvbXB1dGVkOiB0cnVlLCBvcHRpb25hbDogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZVxuICBwdWJsaWMgZ2V0IGlkKCkge1xuICAgIHJldHVybiB0aGlzLmdldFN0cmluZ0F0dHJpYnV0ZSgnaWQnKTtcbiAgfVxuXG4gIC8vIHByaXZhdGVfa2V5X29wZW5zc2ggLSBjb21wdXRlZDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfcHJpdmF0ZUtleU9wZW5zc2g/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IHByaXZhdGVLZXlPcGVuc3NoKCkge1xuICAgIHJldHVybiB0aGlzLmdldFN0cmluZ0F0dHJpYnV0ZSgncHJpdmF0ZV9rZXlfb3BlbnNzaCcpO1xuICB9XG4gIHB1YmxpYyBzZXQgcHJpdmF0ZUtleU9wZW5zc2godmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3ByaXZhdGVLZXlPcGVuc3NoID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0UHJpdmF0ZUtleU9wZW5zc2goKSB7XG4gICAgdGhpcy5fcHJpdmF0ZUtleU9wZW5zc2ggPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IHByaXZhdGVLZXlPcGVuc3NoSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByaXZhdGVLZXlPcGVuc3NoO1xuICB9XG5cbiAgLy8gcHJpdmF0ZV9rZXlfcGVtIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX3ByaXZhdGVLZXlQZW0/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IHByaXZhdGVLZXlQZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nQXR0cmlidXRlKCdwcml2YXRlX2tleV9wZW0nKTtcbiAgfVxuICBwdWJsaWMgc2V0IHByaXZhdGVLZXlQZW0odmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3ByaXZhdGVLZXlQZW0gPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVzZXRQcml2YXRlS2V5UGVtKCkge1xuICAgIHRoaXMuX3ByaXZhdGVLZXlQZW0gPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IHByaXZhdGVLZXlQZW1JbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcHJpdmF0ZUtleVBlbTtcbiAgfVxuXG4gIC8vIHB1YmxpY19rZXlfZmluZ2VycHJpbnRfbWQ1IC0gY29tcHV0ZWQ6IHRydWUsIG9wdGlvbmFsOiBmYWxzZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHB1YmxpYyBnZXQgcHVibGljS2V5RmluZ2VycHJpbnRNZDUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nQXR0cmlidXRlKCdwdWJsaWNfa2V5X2ZpbmdlcnByaW50X21kNScpO1xuICB9XG5cbiAgLy8gcHVibGljX2tleV9maW5nZXJwcmludF9zaGEyNTYgLSBjb21wdXRlZDogdHJ1ZSwgb3B0aW9uYWw6IGZhbHNlLCByZXF1aXJlZDogZmFsc2VcbiAgcHVibGljIGdldCBwdWJsaWNLZXlGaW5nZXJwcmludFNoYTI1NigpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmdBdHRyaWJ1dGUoJ3B1YmxpY19rZXlfZmluZ2VycHJpbnRfc2hhMjU2Jyk7XG4gIH1cblxuICAvLyBwdWJsaWNfa2V5X29wZW5zc2ggLSBjb21wdXRlZDogdHJ1ZSwgb3B0aW9uYWw6IGZhbHNlLCByZXF1aXJlZDogZmFsc2VcbiAgcHVibGljIGdldCBwdWJsaWNLZXlPcGVuc3NoKCkge1xuICAgIHJldHVybiB0aGlzLmdldFN0cmluZ0F0dHJpYnV0ZSgncHVibGljX2tleV9vcGVuc3NoJyk7XG4gIH1cblxuICAvLyBwdWJsaWNfa2V5X3BlbSAtIGNvbXB1dGVkOiB0cnVlLCBvcHRpb25hbDogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZVxuICBwdWJsaWMgZ2V0IHB1YmxpY0tleVBlbSgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmdBdHRyaWJ1dGUoJ3B1YmxpY19rZXlfcGVtJyk7XG4gIH1cblxuICAvLyA9PT09PT09PT1cbiAgLy8gU1lOVEhFU0lTXG4gIC8vID09PT09PT09PVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplQXR0cmlidXRlcygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByaXZhdGVfa2V5X29wZW5zc2g6IGNka3RmLnN0cmluZ1RvVGVycmFmb3JtKHRoaXMuX3ByaXZhdGVLZXlPcGVuc3NoKSxcbiAgICAgIHByaXZhdGVfa2V5X3BlbTogY2RrdGYuc3RyaW5nVG9UZXJyYWZvcm0odGhpcy5fcHJpdmF0ZUtleVBlbSksXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplSGNsQXR0cmlidXRlcygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgY29uc3QgYXR0cnMgPSB7XG4gICAgICBwcml2YXRlX2tleV9vcGVuc3NoOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5zdHJpbmdUb0hjbFRlcnJhZm9ybSh0aGlzLl9wcml2YXRlS2V5T3BlbnNzaCksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIHByaXZhdGVfa2V5X3BlbToge1xuICAgICAgICB2YWx1ZTogY2RrdGYuc3RyaW5nVG9IY2xUZXJyYWZvcm0odGhpcy5fcHJpdmF0ZUtleVBlbSksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgLy8gcmVtb3ZlIHVuZGVmaW5lZCBhdHRyaWJ1dGVzXG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhhdHRycykuZmlsdGVyKChbXywgdmFsdWVdKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlLnZhbHVlICE9PSB1bmRlZmluZWQgKSlcbiAgfVxufVxuIl19
|