@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
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) HashiCorp, Inc.
|
|
3
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
*/
|
|
5
|
+
export * as certRequest from './cert-request';
|
|
6
|
+
export * as locallySignedCert from './locally-signed-cert';
|
|
7
|
+
export * as privateKey from './private-key';
|
|
8
|
+
export * as selfSignedCert from './self-signed-cert';
|
|
9
|
+
export * as dataTlsCertificate from './data-tls-certificate';
|
|
10
|
+
export * as dataTlsPublicKey from './data-tls-public-key';
|
|
11
|
+
export * as provider from './provider';
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) HashiCorp, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.provider = exports.dataTlsPublicKey = exports.dataTlsCertificate = exports.selfSignedCert = exports.privateKey = exports.locallySignedCert = exports.certRequest = void 0;
|
|
8
|
+
// generated by cdktf get
|
|
9
|
+
exports.certRequest = require("./cert-request");
|
|
10
|
+
exports.locallySignedCert = require("./locally-signed-cert");
|
|
11
|
+
exports.privateKey = require("./private-key");
|
|
12
|
+
exports.selfSignedCert = require("./self-signed-cert");
|
|
13
|
+
exports.dataTlsCertificate = require("./data-tls-certificate");
|
|
14
|
+
exports.dataTlsPublicKey = require("./data-tls-public-key");
|
|
15
|
+
exports.provider = require("./provider");
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7O0FBRUgseUJBQXlCO0FBQ3pCLGdEQUE4QztBQUM5Qyw2REFBMkQ7QUFDM0QsOENBQTRDO0FBQzVDLHVEQUFxRDtBQUNyRCwrREFBNkQ7QUFDN0QsNERBQTBEO0FBQzFELHlDQUF1QyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuLy8gZ2VuZXJhdGVkIGJ5IGNka3RmIGdldFxuZXhwb3J0ICogYXMgY2VydFJlcXVlc3QgZnJvbSAnLi9jZXJ0LXJlcXVlc3QnO1xuZXhwb3J0ICogYXMgbG9jYWxseVNpZ25lZENlcnQgZnJvbSAnLi9sb2NhbGx5LXNpZ25lZC1jZXJ0JztcbmV4cG9ydCAqIGFzIHByaXZhdGVLZXkgZnJvbSAnLi9wcml2YXRlLWtleSc7XG5leHBvcnQgKiBhcyBzZWxmU2lnbmVkQ2VydCBmcm9tICcuL3NlbGYtc2lnbmVkLWNlcnQnO1xuZXhwb3J0ICogYXMgZGF0YVRsc0NlcnRpZmljYXRlIGZyb20gJy4vZGF0YS10bHMtY2VydGlmaWNhdGUnO1xuZXhwb3J0ICogYXMgZGF0YVRsc1B1YmxpY0tleSBmcm9tICcuL2RhdGEtdGxzLXB1YmxpYy1rZXknO1xuZXhwb3J0ICogYXMgcHJvdmlkZXIgZnJvbSAnLi9wcm92aWRlcic7XG5cbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) HashiCorp, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
5
|
+
*/
|
|
6
|
+
// generated by cdktf get
|
|
7
|
+
Object.defineProperty(exports, 'certRequest', { get: function () { return require('./cert-request'); } });
|
|
8
|
+
Object.defineProperty(exports, 'locallySignedCert', { get: function () { return require('./locally-signed-cert'); } });
|
|
9
|
+
Object.defineProperty(exports, 'privateKey', { get: function () { return require('./private-key'); } });
|
|
10
|
+
Object.defineProperty(exports, 'selfSignedCert', { get: function () { return require('./self-signed-cert'); } });
|
|
11
|
+
Object.defineProperty(exports, 'dataTlsCertificate', { get: function () { return require('./data-tls-certificate'); } });
|
|
12
|
+
Object.defineProperty(exports, 'dataTlsPublicKey', { get: function () { return require('./data-tls-public-key'); } });
|
|
13
|
+
Object.defineProperty(exports, 'provider', { get: function () { return require('./provider'); } });
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1pbmRleC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9sYXp5LWluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7QUFFSCx5QkFBeUI7QUFDekIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLEVBQUUsR0FBRyxFQUFFLGNBQWMsT0FBTyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDMUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxHQUFHLEVBQUUsY0FBYyxPQUFPLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN2SCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsRUFBRSxHQUFHLEVBQUUsY0FBYyxPQUFPLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDeEcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxHQUFHLEVBQUUsY0FBYyxPQUFPLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNqSCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxFQUFFLEdBQUcsRUFBRSxjQUFjLE9BQU8sT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3pILE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLEVBQUUsR0FBRyxFQUFFLGNBQWMsT0FBTyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDdEgsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsR0FBRyxFQUFFLGNBQWMsT0FBTyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG4vLyBnZW5lcmF0ZWQgYnkgY2RrdGYgZ2V0XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ2NlcnRSZXF1ZXN0JywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHJlcXVpcmUoJy4vY2VydC1yZXF1ZXN0Jyk7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ2xvY2FsbHlTaWduZWRDZXJ0JywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHJlcXVpcmUoJy4vbG9jYWxseS1zaWduZWQtY2VydCcpOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdwcml2YXRlS2V5JywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHJlcXVpcmUoJy4vcHJpdmF0ZS1rZXknKTsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnc2VsZlNpZ25lZENlcnQnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gcmVxdWlyZSgnLi9zZWxmLXNpZ25lZC1jZXJ0Jyk7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ2RhdGFUbHNDZXJ0aWZpY2F0ZScsIHsgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiByZXF1aXJlKCcuL2RhdGEtdGxzLWNlcnRpZmljYXRlJyk7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ2RhdGFUbHNQdWJsaWNLZXknLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gcmVxdWlyZSgnLi9kYXRhLXRscy1wdWJsaWMta2V5Jyk7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ3Byb3ZpZGVyJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHJlcXVpcmUoJy4vcHJvdmlkZXInKTsgfSB9KTtcblxuIl19
|
|
@@ -0,0 +1,125 @@
|
|
|
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 LocallySignedCertConfig extends cdktf.TerraformMetaArguments {
|
|
8
|
+
/**
|
|
9
|
+
* List of key usages allowed for the issued certificate. Values are defined in [RFC 5280](https://datatracker.ietf.org/doc/html/rfc5280) and combine flags defined by both [Key Usages](https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3) and [Extended Key Usages](https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.12). Accepted values: `any_extended`, `cert_signing`, `client_auth`, `code_signing`, `content_commitment`, `crl_signing`, `data_encipherment`, `decipher_only`, `digital_signature`, `email_protection`, `encipher_only`, `ipsec_end_system`, `ipsec_tunnel`, `ipsec_user`, `key_agreement`, `key_encipherment`, `microsoft_commercial_code_signing`, `microsoft_kernel_code_signing`, `microsoft_server_gated_crypto`, `netscape_server_gated_crypto`, `ocsp_signing`, `server_auth`, `timestamping`.
|
|
10
|
+
*
|
|
11
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/resources/locally_signed_cert#allowed_uses LocallySignedCert#allowed_uses}
|
|
12
|
+
*/
|
|
13
|
+
readonly allowedUses: string[];
|
|
14
|
+
/**
|
|
15
|
+
* Certificate data of the Certificate Authority (CA) in [PEM (RFC 1421)](https://datatracker.ietf.org/doc/html/rfc1421) format.
|
|
16
|
+
*
|
|
17
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/resources/locally_signed_cert#ca_cert_pem LocallySignedCert#ca_cert_pem}
|
|
18
|
+
*/
|
|
19
|
+
readonly caCertPem: string;
|
|
20
|
+
/**
|
|
21
|
+
* Private key of the Certificate Authority (CA) used to sign the certificate, in [PEM (RFC 1421)](https://datatracker.ietf.org/doc/html/rfc1421) format.
|
|
22
|
+
*
|
|
23
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/resources/locally_signed_cert#ca_private_key_pem LocallySignedCert#ca_private_key_pem}
|
|
24
|
+
*/
|
|
25
|
+
readonly caPrivateKeyPem: string;
|
|
26
|
+
/**
|
|
27
|
+
* Certificate request data in [PEM (RFC 1421)](https://datatracker.ietf.org/doc/html/rfc1421) format.
|
|
28
|
+
*
|
|
29
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/resources/locally_signed_cert#cert_request_pem LocallySignedCert#cert_request_pem}
|
|
30
|
+
*/
|
|
31
|
+
readonly certRequestPem: string;
|
|
32
|
+
/**
|
|
33
|
+
* The resource will consider the certificate to have expired the given number of hours before its actual expiry time. This can be useful to deploy an updated certificate in advance of the expiration of the current certificate. However, the old certificate remains valid until its true expiration time, since this resource does not (and cannot) support certificate revocation. Also, this advance update can only be performed should the Terraform configuration be applied during the early renewal period. (default: `0`)
|
|
34
|
+
*
|
|
35
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/resources/locally_signed_cert#early_renewal_hours LocallySignedCert#early_renewal_hours}
|
|
36
|
+
*/
|
|
37
|
+
readonly earlyRenewalHours?: number;
|
|
38
|
+
/**
|
|
39
|
+
* Is the generated certificate representing a Certificate Authority (CA) (default: `false`).
|
|
40
|
+
*
|
|
41
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/resources/locally_signed_cert#is_ca_certificate LocallySignedCert#is_ca_certificate}
|
|
42
|
+
*/
|
|
43
|
+
readonly isCaCertificate?: boolean | cdktf.IResolvable;
|
|
44
|
+
/**
|
|
45
|
+
* Should the generated certificate include a [subject key identifier](https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.2) (default: `false`).
|
|
46
|
+
*
|
|
47
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/resources/locally_signed_cert#set_subject_key_id LocallySignedCert#set_subject_key_id}
|
|
48
|
+
*/
|
|
49
|
+
readonly setSubjectKeyId?: boolean | cdktf.IResolvable;
|
|
50
|
+
/**
|
|
51
|
+
* Number of hours, after initial issuing, that the certificate will remain valid for.
|
|
52
|
+
*
|
|
53
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/resources/locally_signed_cert#validity_period_hours LocallySignedCert#validity_period_hours}
|
|
54
|
+
*/
|
|
55
|
+
readonly validityPeriodHours: number;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Represents a {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/resources/locally_signed_cert tls_locally_signed_cert}
|
|
59
|
+
*/
|
|
60
|
+
export declare class LocallySignedCert extends cdktf.TerraformResource {
|
|
61
|
+
static readonly tfResourceType = "tls_locally_signed_cert";
|
|
62
|
+
/**
|
|
63
|
+
* Generates CDKTF code for importing a LocallySignedCert resource upon running "cdktf plan <stack-name>"
|
|
64
|
+
* @param scope The scope in which to define this construct
|
|
65
|
+
* @param importToId The construct id used in the generated config for the LocallySignedCert to import
|
|
66
|
+
* @param importFromId The id of the existing LocallySignedCert that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/resources/locally_signed_cert#import import section} in the documentation of this resource for the id to use
|
|
67
|
+
* @param provider? Optional instance of the provider where the LocallySignedCert to import is found
|
|
68
|
+
*/
|
|
69
|
+
static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
|
|
70
|
+
/**
|
|
71
|
+
* Create a new {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/resources/locally_signed_cert tls_locally_signed_cert} Resource
|
|
72
|
+
*
|
|
73
|
+
* @param scope The scope in which to define this construct
|
|
74
|
+
* @param id The scoped construct ID. Must be unique amongst siblings in the same scope
|
|
75
|
+
* @param options LocallySignedCertConfig
|
|
76
|
+
*/
|
|
77
|
+
constructor(scope: Construct, id: string, config: LocallySignedCertConfig);
|
|
78
|
+
private _allowedUses?;
|
|
79
|
+
get allowedUses(): string[];
|
|
80
|
+
set allowedUses(value: string[]);
|
|
81
|
+
get allowedUsesInput(): string[] | undefined;
|
|
82
|
+
private _caCertPem?;
|
|
83
|
+
get caCertPem(): string;
|
|
84
|
+
set caCertPem(value: string);
|
|
85
|
+
get caCertPemInput(): string | undefined;
|
|
86
|
+
get caKeyAlgorithm(): string;
|
|
87
|
+
private _caPrivateKeyPem?;
|
|
88
|
+
get caPrivateKeyPem(): string;
|
|
89
|
+
set caPrivateKeyPem(value: string);
|
|
90
|
+
get caPrivateKeyPemInput(): string | undefined;
|
|
91
|
+
get certPem(): string;
|
|
92
|
+
private _certRequestPem?;
|
|
93
|
+
get certRequestPem(): string;
|
|
94
|
+
set certRequestPem(value: string);
|
|
95
|
+
get certRequestPemInput(): string | undefined;
|
|
96
|
+
private _earlyRenewalHours?;
|
|
97
|
+
get earlyRenewalHours(): number;
|
|
98
|
+
set earlyRenewalHours(value: number);
|
|
99
|
+
resetEarlyRenewalHours(): void;
|
|
100
|
+
get earlyRenewalHoursInput(): number | undefined;
|
|
101
|
+
get id(): string;
|
|
102
|
+
private _isCaCertificate?;
|
|
103
|
+
get isCaCertificate(): boolean | cdktf.IResolvable;
|
|
104
|
+
set isCaCertificate(value: boolean | cdktf.IResolvable);
|
|
105
|
+
resetIsCaCertificate(): void;
|
|
106
|
+
get isCaCertificateInput(): boolean | cdktf.IResolvable | undefined;
|
|
107
|
+
get readyForRenewal(): cdktf.IResolvable;
|
|
108
|
+
private _setSubjectKeyId?;
|
|
109
|
+
get setSubjectKeyId(): boolean | cdktf.IResolvable;
|
|
110
|
+
set setSubjectKeyId(value: boolean | cdktf.IResolvable);
|
|
111
|
+
resetSetSubjectKeyId(): void;
|
|
112
|
+
get setSubjectKeyIdInput(): boolean | cdktf.IResolvable | undefined;
|
|
113
|
+
get validityEndTime(): string;
|
|
114
|
+
private _validityPeriodHours?;
|
|
115
|
+
get validityPeriodHours(): number;
|
|
116
|
+
set validityPeriodHours(value: number);
|
|
117
|
+
get validityPeriodHoursInput(): number | undefined;
|
|
118
|
+
get validityStartTime(): string;
|
|
119
|
+
protected synthesizeAttributes(): {
|
|
120
|
+
[name: string]: any;
|
|
121
|
+
};
|
|
122
|
+
protected synthesizeHclAttributes(): {
|
|
123
|
+
[name: string]: any;
|
|
124
|
+
};
|
|
125
|
+
}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.LocallySignedCert = 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/resources/locally_signed_cert tls_locally_signed_cert}
|
|
9
|
+
*/
|
|
10
|
+
class LocallySignedCert extends cdktf.TerraformResource {
|
|
11
|
+
// ==============
|
|
12
|
+
// STATIC Methods
|
|
13
|
+
// ==============
|
|
14
|
+
/**
|
|
15
|
+
* Generates CDKTF code for importing a LocallySignedCert 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 LocallySignedCert to import
|
|
18
|
+
* @param importFromId The id of the existing LocallySignedCert that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/resources/locally_signed_cert#import import section} in the documentation of this resource for the id to use
|
|
19
|
+
* @param provider? Optional instance of the provider where the LocallySignedCert to import is found
|
|
20
|
+
*/
|
|
21
|
+
static generateConfigForImport(scope, importToId, importFromId, provider) {
|
|
22
|
+
return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "tls_locally_signed_cert", 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/resources/locally_signed_cert tls_locally_signed_cert} Resource
|
|
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 LocallySignedCertConfig
|
|
33
|
+
*/
|
|
34
|
+
constructor(scope, id, config) {
|
|
35
|
+
super(scope, id, {
|
|
36
|
+
terraformResourceType: 'tls_locally_signed_cert',
|
|
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._allowedUses = config.allowedUses;
|
|
51
|
+
this._caCertPem = config.caCertPem;
|
|
52
|
+
this._caPrivateKeyPem = config.caPrivateKeyPem;
|
|
53
|
+
this._certRequestPem = config.certRequestPem;
|
|
54
|
+
this._earlyRenewalHours = config.earlyRenewalHours;
|
|
55
|
+
this._isCaCertificate = config.isCaCertificate;
|
|
56
|
+
this._setSubjectKeyId = config.setSubjectKeyId;
|
|
57
|
+
this._validityPeriodHours = config.validityPeriodHours;
|
|
58
|
+
}
|
|
59
|
+
get allowedUses() {
|
|
60
|
+
return this.getListAttribute('allowed_uses');
|
|
61
|
+
}
|
|
62
|
+
set allowedUses(value) {
|
|
63
|
+
this._allowedUses = value;
|
|
64
|
+
}
|
|
65
|
+
// Temporarily expose input value. Use with caution.
|
|
66
|
+
get allowedUsesInput() {
|
|
67
|
+
return this._allowedUses;
|
|
68
|
+
}
|
|
69
|
+
get caCertPem() {
|
|
70
|
+
return this.getStringAttribute('ca_cert_pem');
|
|
71
|
+
}
|
|
72
|
+
set caCertPem(value) {
|
|
73
|
+
this._caCertPem = value;
|
|
74
|
+
}
|
|
75
|
+
// Temporarily expose input value. Use with caution.
|
|
76
|
+
get caCertPemInput() {
|
|
77
|
+
return this._caCertPem;
|
|
78
|
+
}
|
|
79
|
+
// ca_key_algorithm - computed: true, optional: false, required: false
|
|
80
|
+
get caKeyAlgorithm() {
|
|
81
|
+
return this.getStringAttribute('ca_key_algorithm');
|
|
82
|
+
}
|
|
83
|
+
get caPrivateKeyPem() {
|
|
84
|
+
return this.getStringAttribute('ca_private_key_pem');
|
|
85
|
+
}
|
|
86
|
+
set caPrivateKeyPem(value) {
|
|
87
|
+
this._caPrivateKeyPem = value;
|
|
88
|
+
}
|
|
89
|
+
// Temporarily expose input value. Use with caution.
|
|
90
|
+
get caPrivateKeyPemInput() {
|
|
91
|
+
return this._caPrivateKeyPem;
|
|
92
|
+
}
|
|
93
|
+
// cert_pem - computed: true, optional: false, required: false
|
|
94
|
+
get certPem() {
|
|
95
|
+
return this.getStringAttribute('cert_pem');
|
|
96
|
+
}
|
|
97
|
+
get certRequestPem() {
|
|
98
|
+
return this.getStringAttribute('cert_request_pem');
|
|
99
|
+
}
|
|
100
|
+
set certRequestPem(value) {
|
|
101
|
+
this._certRequestPem = value;
|
|
102
|
+
}
|
|
103
|
+
// Temporarily expose input value. Use with caution.
|
|
104
|
+
get certRequestPemInput() {
|
|
105
|
+
return this._certRequestPem;
|
|
106
|
+
}
|
|
107
|
+
get earlyRenewalHours() {
|
|
108
|
+
return this.getNumberAttribute('early_renewal_hours');
|
|
109
|
+
}
|
|
110
|
+
set earlyRenewalHours(value) {
|
|
111
|
+
this._earlyRenewalHours = value;
|
|
112
|
+
}
|
|
113
|
+
resetEarlyRenewalHours() {
|
|
114
|
+
this._earlyRenewalHours = undefined;
|
|
115
|
+
}
|
|
116
|
+
// Temporarily expose input value. Use with caution.
|
|
117
|
+
get earlyRenewalHoursInput() {
|
|
118
|
+
return this._earlyRenewalHours;
|
|
119
|
+
}
|
|
120
|
+
// id - computed: true, optional: false, required: false
|
|
121
|
+
get id() {
|
|
122
|
+
return this.getStringAttribute('id');
|
|
123
|
+
}
|
|
124
|
+
get isCaCertificate() {
|
|
125
|
+
return this.getBooleanAttribute('is_ca_certificate');
|
|
126
|
+
}
|
|
127
|
+
set isCaCertificate(value) {
|
|
128
|
+
this._isCaCertificate = value;
|
|
129
|
+
}
|
|
130
|
+
resetIsCaCertificate() {
|
|
131
|
+
this._isCaCertificate = undefined;
|
|
132
|
+
}
|
|
133
|
+
// Temporarily expose input value. Use with caution.
|
|
134
|
+
get isCaCertificateInput() {
|
|
135
|
+
return this._isCaCertificate;
|
|
136
|
+
}
|
|
137
|
+
// ready_for_renewal - computed: true, optional: false, required: false
|
|
138
|
+
get readyForRenewal() {
|
|
139
|
+
return this.getBooleanAttribute('ready_for_renewal');
|
|
140
|
+
}
|
|
141
|
+
get setSubjectKeyId() {
|
|
142
|
+
return this.getBooleanAttribute('set_subject_key_id');
|
|
143
|
+
}
|
|
144
|
+
set setSubjectKeyId(value) {
|
|
145
|
+
this._setSubjectKeyId = value;
|
|
146
|
+
}
|
|
147
|
+
resetSetSubjectKeyId() {
|
|
148
|
+
this._setSubjectKeyId = undefined;
|
|
149
|
+
}
|
|
150
|
+
// Temporarily expose input value. Use with caution.
|
|
151
|
+
get setSubjectKeyIdInput() {
|
|
152
|
+
return this._setSubjectKeyId;
|
|
153
|
+
}
|
|
154
|
+
// validity_end_time - computed: true, optional: false, required: false
|
|
155
|
+
get validityEndTime() {
|
|
156
|
+
return this.getStringAttribute('validity_end_time');
|
|
157
|
+
}
|
|
158
|
+
get validityPeriodHours() {
|
|
159
|
+
return this.getNumberAttribute('validity_period_hours');
|
|
160
|
+
}
|
|
161
|
+
set validityPeriodHours(value) {
|
|
162
|
+
this._validityPeriodHours = value;
|
|
163
|
+
}
|
|
164
|
+
// Temporarily expose input value. Use with caution.
|
|
165
|
+
get validityPeriodHoursInput() {
|
|
166
|
+
return this._validityPeriodHours;
|
|
167
|
+
}
|
|
168
|
+
// validity_start_time - computed: true, optional: false, required: false
|
|
169
|
+
get validityStartTime() {
|
|
170
|
+
return this.getStringAttribute('validity_start_time');
|
|
171
|
+
}
|
|
172
|
+
// =========
|
|
173
|
+
// SYNTHESIS
|
|
174
|
+
// =========
|
|
175
|
+
synthesizeAttributes() {
|
|
176
|
+
return {
|
|
177
|
+
allowed_uses: cdktf.listMapper(cdktf.stringToTerraform, false)(this._allowedUses),
|
|
178
|
+
ca_cert_pem: cdktf.stringToTerraform(this._caCertPem),
|
|
179
|
+
ca_private_key_pem: cdktf.stringToTerraform(this._caPrivateKeyPem),
|
|
180
|
+
cert_request_pem: cdktf.stringToTerraform(this._certRequestPem),
|
|
181
|
+
early_renewal_hours: cdktf.numberToTerraform(this._earlyRenewalHours),
|
|
182
|
+
is_ca_certificate: cdktf.booleanToTerraform(this._isCaCertificate),
|
|
183
|
+
set_subject_key_id: cdktf.booleanToTerraform(this._setSubjectKeyId),
|
|
184
|
+
validity_period_hours: cdktf.numberToTerraform(this._validityPeriodHours),
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
synthesizeHclAttributes() {
|
|
188
|
+
const attrs = {
|
|
189
|
+
allowed_uses: {
|
|
190
|
+
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._allowedUses),
|
|
191
|
+
isBlock: false,
|
|
192
|
+
type: "list",
|
|
193
|
+
storageClassType: "stringList",
|
|
194
|
+
},
|
|
195
|
+
ca_cert_pem: {
|
|
196
|
+
value: cdktf.stringToHclTerraform(this._caCertPem),
|
|
197
|
+
isBlock: false,
|
|
198
|
+
type: "simple",
|
|
199
|
+
storageClassType: "string",
|
|
200
|
+
},
|
|
201
|
+
ca_private_key_pem: {
|
|
202
|
+
value: cdktf.stringToHclTerraform(this._caPrivateKeyPem),
|
|
203
|
+
isBlock: false,
|
|
204
|
+
type: "simple",
|
|
205
|
+
storageClassType: "string",
|
|
206
|
+
},
|
|
207
|
+
cert_request_pem: {
|
|
208
|
+
value: cdktf.stringToHclTerraform(this._certRequestPem),
|
|
209
|
+
isBlock: false,
|
|
210
|
+
type: "simple",
|
|
211
|
+
storageClassType: "string",
|
|
212
|
+
},
|
|
213
|
+
early_renewal_hours: {
|
|
214
|
+
value: cdktf.numberToHclTerraform(this._earlyRenewalHours),
|
|
215
|
+
isBlock: false,
|
|
216
|
+
type: "simple",
|
|
217
|
+
storageClassType: "number",
|
|
218
|
+
},
|
|
219
|
+
is_ca_certificate: {
|
|
220
|
+
value: cdktf.booleanToHclTerraform(this._isCaCertificate),
|
|
221
|
+
isBlock: false,
|
|
222
|
+
type: "simple",
|
|
223
|
+
storageClassType: "boolean",
|
|
224
|
+
},
|
|
225
|
+
set_subject_key_id: {
|
|
226
|
+
value: cdktf.booleanToHclTerraform(this._setSubjectKeyId),
|
|
227
|
+
isBlock: false,
|
|
228
|
+
type: "simple",
|
|
229
|
+
storageClassType: "boolean",
|
|
230
|
+
},
|
|
231
|
+
validity_period_hours: {
|
|
232
|
+
value: cdktf.numberToHclTerraform(this._validityPeriodHours),
|
|
233
|
+
isBlock: false,
|
|
234
|
+
type: "simple",
|
|
235
|
+
storageClassType: "number",
|
|
236
|
+
},
|
|
237
|
+
};
|
|
238
|
+
// remove undefined attributes
|
|
239
|
+
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
exports.LocallySignedCert = LocallySignedCert;
|
|
243
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
244
|
+
LocallySignedCert[_a] = { fqn: "@cdktn/provider-tls.locallySignedCert.LocallySignedCert", version: "11.1.0" };
|
|
245
|
+
// =================
|
|
246
|
+
// STATIC PROPERTIES
|
|
247
|
+
// =================
|
|
248
|
+
LocallySignedCert.tfResourceType = "tls_locally_signed_cert";
|
|
249
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9jYWxseS1zaWduZWQtY2VydC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVNBLCtCQUErQjtBQXVEL0I7O0VBRUU7QUFDRixNQUFhLGlCQUFrQixTQUFRLEtBQUssQ0FBQyxpQkFBaUI7SUFPNUQsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakI7Ozs7OztNQU1FO0lBQ0ssTUFBTSxDQUFDLHVCQUF1QixDQUFDLEtBQWdCLEVBQUUsVUFBa0IsRUFBRSxZQUFvQixFQUFFLFFBQWtDO1FBQzlILE9BQU8sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFLHFCQUFxQixFQUFFLHlCQUF5QixFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNqSixDQUFDO0lBRUwsY0FBYztJQUNkLGNBQWM7SUFDZCxjQUFjO0lBRWQ7Ozs7OztNQU1FO0lBQ0YsWUFBbUIsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsTUFBK0I7UUFDOUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixxQkFBcUIsRUFBRSx5QkFBeUI7WUFDaEQsMEJBQTBCLEVBQUU7Z0JBQzFCLFlBQVksRUFBRSxLQUFLO2dCQUNuQixlQUFlLEVBQUUsT0FBTztnQkFDeEIseUJBQXlCLEVBQUUsUUFBUTthQUNwQztZQUNELFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtZQUN6QixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7WUFDM0IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1lBQ25CLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztZQUMzQixZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVk7WUFDakMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO1lBQzdCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FB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QyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ3pELE9BQU8sRUFBRSxLQUFLO2dCQUNkLElBQUksRUFBRSxRQUFRO2dCQUNkLGdCQUFnQixFQUFFLFNBQVM7YUFDNUI7WUFDRCxxQkFBcUIsRUFBRTtnQkFDckIsS0FBSyxFQUFFLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7Z0JBQzVELE9BQU8sRUFBRSxLQUFLO2dCQUNkLElBQUksRUFBRSxRQUFRO2dCQUNkLGdCQUFnQixFQUFFLFFBQVE7YUFDM0I7U0FDRixDQUFDO1FBRUYsOEJBQThCO1FBQzlCLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFFLENBQUMsQ0FBQTtJQUM1SCxDQUFDOztBQXBSSCw4Q0FxUkM7OztBQW5SQyxvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNHLGdDQUFjLEdBQUcseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbi8vIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvdGxzLzQuMS4wL2RvY3MvcmVzb3VyY2VzL2xvY2FsbHlfc2lnbmVkX2NlcnRcbi8vIGdlbmVyYXRlZCBmcm9tIHRlcnJhZm9ybSByZXNvdXJjZSBzY2hlbWFcblxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tICdjZGt0Zic7XG5cbi8vIENvbmZpZ3VyYXRpb25cblxuZXhwb3J0IGludGVyZmFjZSBMb2NhbGx5U2lnbmVkQ2VydENvbmZpZyBleHRlbmRzIGNka3RmLlRlcnJhZm9ybU1ldGFBcmd1bWVudHMge1xuICAvKipcbiAgKiBMaXN0IG9mIGtleSB1c2FnZXMgYWxsb3dlZCBmb3IgdGhlIGlzc3VlZCBjZXJ0aWZpY2F0ZS4gVmFsdWVzIGFyZSBkZWZpbmVkIGluIFtSRkMgNTI4MF0oaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM1MjgwKSBhbmQgY29tYmluZSBmbGFncyBkZWZpbmVkIGJ5IGJvdGggW0tleSBVc2FnZXNdKGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNTI4MCNzZWN0aW9uLTQuMi4xLjMpIGFuZCBbRXh0ZW5kZWQgS2V5IFVzYWdlc10oaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM1MjgwI3NlY3Rpb24tNC4yLjEuMTIpLiBBY2NlcHRlZCB2YWx1ZXM6IGBhbnlfZXh0ZW5kZWRgLCBgY2VydF9zaWduaW5nYCwgYGNsaWVudF9hdXRoYCwgYGNvZGVfc2lnbmluZ2AsIGBjb250ZW50X2NvbW1pdG1lbnRgLCBgY3JsX3NpZ25pbmdgLCBgZGF0YV9lbmNpcGhlcm1lbnRgLCBgZGVjaXBoZXJfb25seWAsIGBkaWdpdGFsX3NpZ25hdHVyZWAsIGBlbWFpbF9wcm90ZWN0aW9uYCwgYGVuY2lwaGVyX29ubHlgLCBgaXBzZWNfZW5kX3N5c3RlbWAsIGBpcHNlY190dW5uZWxgLCBgaXBzZWNfdXNlcmAsIGBrZXlfYWdyZWVtZW50YCwgYGtleV9lbmNpcGhlcm1lbnRgLCBgbWljcm9zb2Z0X2NvbW1lcmNpYWxfY29kZV9zaWduaW5nYCwgYG1pY3Jvc29mdF9rZXJuZWxfY29kZV9zaWduaW5nYCwgYG1pY3Jvc29mdF9zZXJ2ZXJfZ2F0ZWRfY3J5cHRvYCwgYG5ldHNjYXBlX3NlcnZlcl9nYXRlZF9jcnlwdG9gLCBgb2NzcF9zaWduaW5nYCwgYHNlcnZlcl9hdXRoYCwgYHRpbWVzdGFtcGluZ2AuXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvdGxzLzQuMS4wL2RvY3MvcmVzb3VyY2VzL2xvY2FsbHlfc2lnbmVkX2NlcnQjYWxsb3dlZF91c2VzIExvY2FsbHlTaWduZWRDZXJ0I2FsbG93ZWRfdXNlc31cbiAgKi9cbiAgcmVhZG9ubHkgYWxsb3dlZFVzZXM6IHN0cmluZ1tdO1xuICAvKipcbiAgKiBDZXJ0aWZpY2F0ZSBkYXRhIG9mIHRoZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgKENBKSBpbiBbUEVNIChSRkMgMTQyMSldKGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjMTQyMSkgZm9ybWF0LlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL3Rscy80LjEuMC9kb2NzL3Jlc291cmNlcy9sb2NhbGx5X3NpZ25lZF9jZXJ0I2NhX2NlcnRfcGVtIExvY2FsbHlTaWduZWRDZXJ0I2NhX2NlcnRfcGVtfVxuICAqL1xuICByZWFkb25seSBjYUNlcnRQZW06IHN0cmluZztcbiAgLyoqXG4gICogUHJpdmF0ZSBrZXkgb2YgdGhlIENlcnRpZmljYXRlIEF1dGhvcml0eSAoQ0EpIHVzZWQgdG8gc2lnbiB0aGUgY2VydGlmaWNhdGUsIGluIFtQRU0gKFJGQyAxNDIxKV0oaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmMxNDIxKSBmb3JtYXQuXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvdGxzLzQuMS4wL2RvY3MvcmVzb3VyY2VzL2xvY2FsbHlfc2lnbmVkX2NlcnQjY2FfcHJpdmF0ZV9rZXlfcGVtIExvY2FsbHlTaWduZWRDZXJ0I2NhX3ByaXZhdGVfa2V5X3BlbX1cbiAgKi9cbiAgcmVhZG9ubHkgY2FQcml2YXRlS2V5UGVtOiBzdHJpbmc7XG4gIC8qKlxuICAqIENlcnRpZmljYXRlIHJlcXVlc3QgZGF0YSBpbiBbUEVNIChSRkMgMTQyMSldKGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjMTQyMSkgZm9ybWF0LlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL3Rscy80LjEuMC9kb2NzL3Jlc291cmNlcy9sb2NhbGx5X3NpZ25lZF9jZXJ0I2NlcnRfcmVxdWVzdF9wZW0gTG9jYWxseVNpZ25lZENlcnQjY2VydF9yZXF1ZXN0X3BlbX1cbiAgKi9cbiAgcmVhZG9ubHkgY2VydFJlcXVlc3RQZW06IHN0cmluZztcbiAgLyoqXG4gICogVGhlIHJlc291cmNlIHdpbGwgY29uc2lkZXIgdGhlIGNlcnRpZmljYXRlIHRvIGhhdmUgZXhwaXJlZCB0aGUgZ2l2ZW4gbnVtYmVyIG9mIGhvdXJzIGJlZm9yZSBpdHMgYWN0dWFsIGV4cGlyeSB0aW1lLiBUaGlzIGNhbiBiZSB1c2VmdWwgdG8gZGVwbG95IGFuIHVwZGF0ZWQgY2VydGlmaWNhdGUgaW4gYWR2YW5jZSBvZiB0aGUgZXhwaXJhdGlvbiBvZiB0aGUgY3VycmVudCBjZXJ0aWZpY2F0ZS4gSG93ZXZlciwgdGhlIG9sZCBjZXJ0aWZpY2F0ZSByZW1haW5zIHZhbGlkIHVudGlsIGl0cyB0cnVlIGV4cGlyYXRpb24gdGltZSwgc2luY2UgdGhpcyByZXNvdXJjZSBkb2VzIG5vdCAoYW5kIGNhbm5vdCkgc3VwcG9ydCBjZXJ0aWZpY2F0ZSByZXZvY2F0aW9uLiBBbHNvLCB0aGlzIGFkdmFuY2UgdXBkYXRlIGNhbiBvbmx5IGJlIHBlcmZvcm1lZCBzaG91bGQgdGhlIFRlcnJhZm9ybSBjb25maWd1cmF0aW9uIGJlIGFwcGxpZWQgZHVyaW5nIHRoZSBlYXJseSByZW5ld2FsIHBlcmlvZC4gKGRlZmF1bHQ6IGAwYClcbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC90bHMvNC4xLjAvZG9jcy9yZXNvdXJjZXMvbG9jYWxseV9zaWduZWRfY2VydCNlYXJseV9yZW5ld2FsX2hvdXJzIExvY2FsbHlTaWduZWRDZXJ0I2Vhcmx5X3JlbmV3YWxfaG91cnN9XG4gICovXG4gIHJlYWRvbmx5IGVhcmx5UmVuZXdhbEhvdXJzPzogbnVtYmVyO1xuICAvKipcbiAgKiBJcyB0aGUgZ2VuZXJhdGVkIGNlcnRpZmljYXRlIHJlcHJlc2VudGluZyBhIENlcnRpZmljYXRlIEF1dGhvcml0eSAoQ0EpIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC90bHMvNC4xLjAvZG9jcy9yZXNvdXJjZXMvbG9jYWxseV9zaWduZWRfY2VydCNpc19jYV9jZXJ0aWZpY2F0ZSBMb2NhbGx5U2lnbmVkQ2VydCNpc19jYV9jZXJ0aWZpY2F0ZX1cbiAgKi9cbiAgcmVhZG9ubHkgaXNDYUNlcnRpZmljYXRlPzogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlO1xuICAvKipcbiAgKiBTaG91bGQgdGhlIGdlbmVyYXRlZCBjZXJ0aWZpY2F0ZSBpbmNsdWRlIGEgW3N1YmplY3Qga2V5IGlkZW50aWZpZXJdKGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNTI4MCNzZWN0aW9uLTQuMi4xLjIpIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC90bHMvNC4xLjAvZG9jcy9yZXNvdXJjZXMvbG9jYWxseV9zaWduZWRfY2VydCNzZXRfc3ViamVjdF9rZXlfaWQgTG9jYWxseVNpZ25lZENlcnQjc2V0X3N1YmplY3Rfa2V5X2lkfVxuICAqL1xuICByZWFkb25seSBzZXRTdWJqZWN0S2V5SWQ/OiBib29sZWFuIHwgY2RrdGYuSVJlc29sdmFibGU7XG4gIC8qKlxuICAqIE51bWJlciBvZiBob3VycywgYWZ0ZXIgaW5pdGlhbCBpc3N1aW5nLCB0aGF0IHRoZSBjZXJ0aWZpY2F0ZSB3aWxsIHJlbWFpbiB2YWxpZCBmb3IuXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvdGxzLzQuMS4wL2RvY3MvcmVzb3VyY2VzL2xvY2FsbHlfc2lnbmVkX2NlcnQjdmFsaWRpdHlfcGVyaW9kX2hvdXJzIExvY2FsbHlTaWduZWRDZXJ0I3ZhbGlkaXR5X3BlcmlvZF9ob3Vyc31cbiAgKi9cbiAgcmVhZG9ubHkgdmFsaWRpdHlQZXJpb2RIb3VyczogbnVtYmVyO1xufVxuXG4vKipcbiogUmVwcmVzZW50cyBhIHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL3Rscy80LjEuMC9kb2NzL3Jlc291cmNlcy9sb2NhbGx5X3NpZ25lZF9jZXJ0IHRsc19sb2NhbGx5X3NpZ25lZF9jZXJ0fVxuKi9cbmV4cG9ydCBjbGFzcyBMb2NhbGx5U2lnbmVkQ2VydCBleHRlbmRzIGNka3RmLlRlcnJhZm9ybVJlc291cmNlIHtcblxuICAvLyA9PT09PT09PT09PT09PT09PVxuICAvLyBTVEFUSUMgUFJPUEVSVElFU1xuICAvLyA9PT09PT09PT09PT09PT09PVxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHRmUmVzb3VyY2VUeXBlID0gXCJ0bHNfbG9jYWxseV9zaWduZWRfY2VydFwiO1xuXG4gIC8vID09PT09PT09PT09PT09XG4gIC8vIFNUQVRJQyBNZXRob2RzXG4gIC8vID09PT09PT09PT09PT09XG4gIC8qKlxuICAqIEdlbmVyYXRlcyBDREtURiBjb2RlIGZvciBpbXBvcnRpbmcgYSBMb2NhbGx5U2lnbmVkQ2VydCByZXNvdXJjZSB1cG9uIHJ1bm5pbmcgXCJjZGt0ZiBwbGFuIDxzdGFjay1uYW1lPlwiXG4gICogQHBhcmFtIHNjb3BlIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgKiBAcGFyYW0gaW1wb3J0VG9JZCBUaGUgY29uc3RydWN0IGlkIHVzZWQgaW4gdGhlIGdlbmVyYXRlZCBjb25maWcgZm9yIHRoZSBMb2NhbGx5U2lnbmVkQ2VydCB0byBpbXBvcnRcbiAgKiBAcGFyYW0gaW1wb3J0RnJvbUlkIFRoZSBpZCBvZiB0aGUgZXhpc3RpbmcgTG9jYWxseVNpZ25lZENlcnQgdGhhdCBzaG91bGQgYmUgaW1wb3J0ZWQuIFJlZmVyIHRvIHRoZSB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC90bHMvNC4xLjAvZG9jcy9yZXNvdXJjZXMvbG9jYWxseV9zaWduZWRfY2VydCNpbXBvcnQgaW1wb3J0IHNlY3Rpb259IGluIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoaXMgcmVzb3VyY2UgZm9yIHRoZSBpZCB0byB1c2VcbiAgKiBAcGFyYW0gcHJvdmlkZXI/IE9wdGlvbmFsIGluc3RhbmNlIG9mIHRoZSBwcm92aWRlciB3aGVyZSB0aGUgTG9jYWxseVNpZ25lZENlcnQgdG8gaW1wb3J0IGlzIGZvdW5kXG4gICovXG4gIHB1YmxpYyBzdGF0aWMgZ2VuZXJhdGVDb25maWdGb3JJbXBvcnQoc2NvcGU6IENvbnN0cnVjdCwgaW1wb3J0VG9JZDogc3RyaW5nLCBpbXBvcnRGcm9tSWQ6IHN0cmluZywgcHJvdmlkZXI/OiBjZGt0Zi5UZXJyYWZvcm1Qcm92aWRlcikge1xuICAgICAgICByZXR1cm4gbmV3IGNka3RmLkltcG9ydGFibGVSZXNvdXJjZShzY29wZSwgaW1wb3J0VG9JZCwgeyB0ZXJyYWZvcm1SZXNvdXJjZVR5cGU6IFwidGxzX2xvY2FsbHlfc2lnbmVkX2NlcnRcIiwgaW1wb3J0SWQ6IGltcG9ydEZyb21JZCwgcHJvdmlkZXIgfSk7XG4gICAgICB9XG5cbiAgLy8gPT09PT09PT09PT1cbiAgLy8gSU5JVElBTElaRVJcbiAgLy8gPT09PT09PT09PT1cblxuICAvKipcbiAgKiBDcmVhdGUgYSBuZXcge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvdGxzLzQuMS4wL2RvY3MvcmVzb3VyY2VzL2xvY2FsbHlfc2lnbmVkX2NlcnQgdGxzX2xvY2FsbHlfc2lnbmVkX2NlcnR9IFJlc291cmNlXG4gICpcbiAgKiBAcGFyYW0gc2NvcGUgVGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdFxuICAqIEBwYXJhbSBpZCBUaGUgc2NvcGVkIGNvbnN0cnVjdCBJRC4gTXVzdCBiZSB1bmlxdWUgYW1vbmdzdCBzaWJsaW5ncyBpbiB0aGUgc2FtZSBzY29wZVxuICAqIEBwYXJhbSBvcHRpb25zIExvY2FsbHlTaWduZWRDZXJ0Q29uZmlnXG4gICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBjb25maWc6IExvY2FsbHlTaWduZWRDZXJ0Q29uZmlnKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICB0ZXJyYWZvcm1SZXNvdXJjZVR5cGU6ICd0bHNfbG9jYWxseV9zaWduZWRfY2VydCcsXG4gICAgICB0ZXJyYWZvcm1HZW5lcmF0b3JNZXRhZGF0YToge1xuICAgICAgICBwcm92aWRlck5hbWU6ICd0bHMnLFxuICAgICAgICBwcm92aWRlclZlcnNpb246ICc0LjEuMCcsXG4gICAgICAgIHByb3ZpZGVyVmVyc2lvbkNvbnN0cmFpbnQ6ICd+PiA0LjAnXG4gICAgICB9LFxuICAgICAgcHJvdmlkZXI6IGNvbmZpZy5wcm92aWRlcixcbiAgICAgIGRlcGVuZHNPbjogY29uZmlnLmRlcGVuZHNPbixcbiAgICAgIGNvdW50OiBjb25maWcuY291bnQsXG4gICAgICBsaWZlY3ljbGU6IGNvbmZpZy5saWZlY3ljbGUsXG4gICAgICBwcm92aXNpb25lcnM6IGNvbmZpZy5wcm92aXNpb25lcnMsXG4gICAgICBjb25uZWN0aW9uOiBjb25maWcuY29ubmVjdGlvbixcbiAgICAgIGZvckVhY2g6IGNvbmZpZy5mb3JFYWNoXG4gICAgfSk7XG4gICAgdGhpcy5fYWxsb3dlZFVzZXMgPSBjb25maWcuYWxsb3dlZFVzZXM7XG4gICAgdGhpcy5fY2FDZXJ0UGVtID0gY29uZmlnLmNhQ2VydFBlbTtcbiAgICB0aGlzLl9jYVByaXZhdGVLZXlQZW0gPSBjb25maWcuY2FQcml2YXRlS2V5UGVtO1xuICAgIHRoaXMuX2NlcnRSZXF1ZXN0UGVtID0gY29uZmlnLmNlcnRSZXF1ZXN0UGVtO1xuICAgIHRoaXMuX2Vhcmx5UmVuZXdhbEhvdXJzID0gY29uZmlnLmVhcmx5UmVuZXdhbEhvdXJzO1xuICAgIHRoaXMuX2lzQ2FDZXJ0aWZpY2F0ZSA9IGNvbmZpZy5pc0NhQ2VydGlmaWNhdGU7XG4gICAgdGhpcy5fc2V0U3ViamVjdEtleUlkID0gY29uZmlnLnNldFN1YmplY3RLZXlJZDtcbiAgICB0aGlzLl92YWxpZGl0eVBlcmlvZEhvdXJzID0gY29uZmlnLnZhbGlkaXR5UGVyaW9kSG91cnM7XG4gIH1cblxuICAvLyA9PT09PT09PT09XG4gIC8vIEFUVFJJQlVURVNcbiAgLy8gPT09PT09PT09PVxuXG4gIC8vIGFsbG93ZWRfdXNlcyAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IGZhbHNlLCByZXF1aXJlZDogdHJ1ZVxuICBwcml2YXRlIF9hbGxvd2VkVXNlcz86IHN0cmluZ1tdOyBcbiAgcHVibGljIGdldCBhbGxvd2VkVXNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMaXN0QXR0cmlidXRlKCdhbGxvd2VkX3VzZXMnKTtcbiAgfVxuICBwdWJsaWMgc2V0IGFsbG93ZWRVc2VzKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuX2FsbG93ZWRVc2VzID0gdmFsdWU7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IGFsbG93ZWRVc2VzSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FsbG93ZWRVc2VzO1xuICB9XG5cbiAgLy8gY2FfY2VydF9wZW0gLSBjb21wdXRlZDogZmFsc2UsIG9wdGlvbmFsOiBmYWxzZSwgcmVxdWlyZWQ6IHRydWVcbiAgcHJpdmF0ZSBfY2FDZXJ0UGVtPzogc3RyaW5nOyBcbiAgcHVibGljIGdldCBjYUNlcnRQZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nQXR0cmlidXRlKCdjYV9jZXJ0X3BlbScpO1xuICB9XG4gIHB1YmxpYyBzZXQgY2FDZXJ0UGVtKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9jYUNlcnRQZW0gPSB2YWx1ZTtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgY2FDZXJ0UGVtSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NhQ2VydFBlbTtcbiAgfVxuXG4gIC8vIGNhX2tleV9hbGdvcml0aG0gLSBjb21wdXRlZDogdHJ1ZSwgb3B0aW9uYWw6IGZhbHNlLCByZXF1aXJlZDogZmFsc2VcbiAgcHVibGljIGdldCBjYUtleUFsZ29yaXRobSgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmdBdHRyaWJ1dGUoJ2NhX2tleV9hbGdvcml0aG0nKTtcbiAgfVxuXG4gIC8vIGNhX3ByaXZhdGVfa2V5X3BlbSAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IGZhbHNlLCByZXF1aXJlZDogdHJ1ZVxuICBwcml2YXRlIF9jYVByaXZhdGVLZXlQZW0/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IGNhUHJpdmF0ZUtleVBlbSgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmdBdHRyaWJ1dGUoJ2NhX3ByaXZhdGVfa2V5X3BlbScpO1xuICB9XG4gIHB1YmxpYyBzZXQgY2FQcml2YXRlS2V5UGVtKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9jYVByaXZhdGVLZXlQZW0gPSB2YWx1ZTtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgY2FQcml2YXRlS2V5UGVtSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NhUHJpdmF0ZUtleVBlbTtcbiAgfVxuXG4gIC8vIGNlcnRfcGVtIC0gY29tcHV0ZWQ6IHRydWUsIG9wdGlvbmFsOiBmYWxzZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHB1YmxpYyBnZXQgY2VydFBlbSgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmdBdHRyaWJ1dGUoJ2NlcnRfcGVtJyk7XG4gIH1cblxuICAvLyBjZXJ0X3JlcXVlc3RfcGVtIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogZmFsc2UsIHJlcXVpcmVkOiB0cnVlXG4gIHByaXZhdGUgX2NlcnRSZXF1ZXN0UGVtPzogc3RyaW5nOyBcbiAgcHVibGljIGdldCBjZXJ0UmVxdWVzdFBlbSgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmdBdHRyaWJ1dGUoJ2NlcnRfcmVxdWVzdF9wZW0nKTtcbiAgfVxuICBwdWJsaWMgc2V0IGNlcnRSZXF1ZXN0UGVtKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9jZXJ0UmVxdWVzdFBlbSA9IHZhbHVlO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCBjZXJ0UmVxdWVzdFBlbUlucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9jZXJ0UmVxdWVzdFBlbTtcbiAgfVxuXG4gIC8vIGVhcmx5X3JlbmV3YWxfaG91cnMgLSBjb21wdXRlZDogdHJ1ZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9lYXJseVJlbmV3YWxIb3Vycz86IG51bWJlcjsgXG4gIHB1YmxpYyBnZXQgZWFybHlSZW5ld2FsSG91cnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TnVtYmVyQXR0cmlidXRlKCdlYXJseV9yZW5ld2FsX2hvdXJzJyk7XG4gIH1cbiAgcHVibGljIHNldCBlYXJseVJlbmV3YWxIb3Vycyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fZWFybHlSZW5ld2FsSG91cnMgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVzZXRFYXJseVJlbmV3YWxIb3VycygpIHtcbiAgICB0aGlzLl9lYXJseVJlbmV3YWxIb3VycyA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgZWFybHlSZW5ld2FsSG91cnNJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZWFybHlSZW5ld2FsSG91cnM7XG4gIH1cblxuICAvLyBpZCAtIGNvbXB1dGVkOiB0cnVlLCBvcHRpb25hbDogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZVxuICBwdWJsaWMgZ2V0IGlkKCkge1xuICAgIHJldHVybiB0aGlzLmdldFN0cmluZ0F0dHJpYnV0ZSgnaWQnKTtcbiAgfVxuXG4gIC8vIGlzX2NhX2NlcnRpZmljYXRlIC0gY29tcHV0ZWQ6IHRydWUsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfaXNDYUNlcnRpZmljYXRlPzogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlOyBcbiAgcHVibGljIGdldCBpc0NhQ2VydGlmaWNhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Qm9vbGVhbkF0dHJpYnV0ZSgnaXNfY2FfY2VydGlmaWNhdGUnKTtcbiAgfVxuICBwdWJsaWMgc2V0IGlzQ2FDZXJ0aWZpY2F0ZSh2YWx1ZTogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlKSB7XG4gICAgdGhpcy5faXNDYUNlcnRpZmljYXRlID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0SXNDYUNlcnRpZmljYXRlKCkge1xuICAgIHRoaXMuX2lzQ2FDZXJ0aWZpY2F0ZSA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgaXNDYUNlcnRpZmljYXRlSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzQ2FDZXJ0aWZpY2F0ZTtcbiAgfVxuXG4gIC8vIHJlYWR5X2Zvcl9yZW5ld2FsIC0gY29tcHV0ZWQ6IHRydWUsIG9wdGlvbmFsOiBmYWxzZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHB1YmxpYyBnZXQgcmVhZHlGb3JSZW5ld2FsKCkge1xuICAgIHJldHVybiB0aGlzLmdldEJvb2xlYW5BdHRyaWJ1dGUoJ3JlYWR5X2Zvcl9yZW5ld2FsJyk7XG4gIH1cblxuICAvLyBzZXRfc3ViamVjdF9rZXlfaWQgLSBjb21wdXRlZDogdHJ1ZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9zZXRTdWJqZWN0S2V5SWQ/OiBib29sZWFuIHwgY2RrdGYuSVJlc29sdmFibGU7IFxuICBwdWJsaWMgZ2V0IHNldFN1YmplY3RLZXlJZCgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRCb29sZWFuQXR0cmlidXRlKCdzZXRfc3ViamVjdF9rZXlfaWQnKTtcbiAgfVxuICBwdWJsaWMgc2V0IHNldFN1YmplY3RLZXlJZCh2YWx1ZTogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlKSB7XG4gICAgdGhpcy5fc2V0U3ViamVjdEtleUlkID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0U2V0U3ViamVjdEtleUlkKCkge1xuICAgIHRoaXMuX3NldFN1YmplY3RLZXlJZCA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgc2V0U3ViamVjdEtleUlkSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NldFN1YmplY3RLZXlJZDtcbiAgfVxuXG4gIC8vIHZhbGlkaXR5X2VuZF90aW1lIC0gY29tcHV0ZWQ6IHRydWUsIG9wdGlvbmFsOiBmYWxzZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHB1YmxpYyBnZXQgdmFsaWRpdHlFbmRUaW1lKCkge1xuICAgIHJldHVybiB0aGlzLmdldFN0cmluZ0F0dHJpYnV0ZSgndmFsaWRpdHlfZW5kX3RpbWUnKTtcbiAgfVxuXG4gIC8vIHZhbGlkaXR5X3BlcmlvZF9ob3VycyAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IGZhbHNlLCByZXF1aXJlZDogdHJ1ZVxuICBwcml2YXRlIF92YWxpZGl0eVBlcmlvZEhvdXJzPzogbnVtYmVyOyBcbiAgcHVibGljIGdldCB2YWxpZGl0eVBlcmlvZEhvdXJzKCkge1xuICAgIHJldHVybiB0aGlzLmdldE51bWJlckF0dHJpYnV0ZSgndmFsaWRpdHlfcGVyaW9kX2hvdXJzJyk7XG4gIH1cbiAgcHVibGljIHNldCB2YWxpZGl0eVBlcmlvZEhvdXJzKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl92YWxpZGl0eVBlcmlvZEhvdXJzID0gdmFsdWU7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IHZhbGlkaXR5UGVyaW9kSG91cnNJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsaWRpdHlQZXJpb2RIb3VycztcbiAgfVxuXG4gIC8vIHZhbGlkaXR5X3N0YXJ0X3RpbWUgLSBjb21wdXRlZDogdHJ1ZSwgb3B0aW9uYWw6IGZhbHNlLCByZXF1aXJlZDogZmFsc2VcbiAgcHVibGljIGdldCB2YWxpZGl0eVN0YXJ0VGltZSgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmdBdHRyaWJ1dGUoJ3ZhbGlkaXR5X3N0YXJ0X3RpbWUnKTtcbiAgfVxuXG4gIC8vID09PT09PT09PVxuICAvLyBTWU5USEVTSVNcbiAgLy8gPT09PT09PT09XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgYWxsb3dlZF91c2VzOiBjZGt0Zi5saXN0TWFwcGVyKGNka3RmLnN0cmluZ1RvVGVycmFmb3JtLCBmYWxzZSkodGhpcy5fYWxsb3dlZFVzZXMpLFxuICAgICAgY2FfY2VydF9wZW06IGNka3RmLnN0cmluZ1RvVGVycmFmb3JtKHRoaXMuX2NhQ2VydFBlbSksXG4gICAgICBjYV9wcml2YXRlX2tleV9wZW06IGNka3RmLnN0cmluZ1RvVGVycmFmb3JtKHRoaXMuX2NhUHJpdmF0ZUtleVBlbSksXG4gICAgICBjZXJ0X3JlcXVlc3RfcGVtOiBjZGt0Zi5zdHJpbmdUb1RlcnJhZm9ybSh0aGlzLl9jZXJ0UmVxdWVzdFBlbSksXG4gICAgICBlYXJseV9yZW5ld2FsX2hvdXJzOiBjZGt0Zi5udW1iZXJUb1RlcnJhZm9ybSh0aGlzLl9lYXJseVJlbmV3YWxIb3VycyksXG4gICAgICBpc19jYV9jZXJ0aWZpY2F0ZTogY2RrdGYuYm9vbGVhblRvVGVycmFmb3JtKHRoaXMuX2lzQ2FDZXJ0aWZpY2F0ZSksXG4gICAgICBzZXRfc3ViamVjdF9rZXlfaWQ6IGNka3RmLmJvb2xlYW5Ub1RlcnJhZm9ybSh0aGlzLl9zZXRTdWJqZWN0S2V5SWQpLFxuICAgICAgdmFsaWRpdHlfcGVyaW9kX2hvdXJzOiBjZGt0Zi5udW1iZXJUb1RlcnJhZm9ybSh0aGlzLl92YWxpZGl0eVBlcmlvZEhvdXJzKSxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVIY2xBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICBjb25zdCBhdHRycyA9IHtcbiAgICAgIGFsbG93ZWRfdXNlczoge1xuICAgICAgICB2YWx1ZTogY2RrdGYubGlzdE1hcHBlckhjbChjZGt0Zi5zdHJpbmdUb0hjbFRlcnJhZm9ybSwgZmFsc2UpKHRoaXMuX2FsbG93ZWRVc2VzKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwibGlzdFwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ0xpc3RcIixcbiAgICAgIH0sXG4gICAgICBjYV9jZXJ0X3BlbToge1xuICAgICAgICB2YWx1ZTogY2RrdGYuc3RyaW5nVG9IY2xUZXJyYWZvcm0odGhpcy5fY2FDZXJ0UGVtKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAgY2FfcHJpdmF0ZV9rZXlfcGVtOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5zdHJpbmdUb0hjbFRlcnJhZm9ybSh0aGlzLl9jYVByaXZhdGVLZXlQZW0pLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICBjZXJ0X3JlcXVlc3RfcGVtOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5zdHJpbmdUb0hjbFRlcnJhZm9ybSh0aGlzLl9jZXJ0UmVxdWVzdFBlbSksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIGVhcmx5X3JlbmV3YWxfaG91cnM6IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLm51bWJlclRvSGNsVGVycmFmb3JtKHRoaXMuX2Vhcmx5UmVuZXdhbEhvdXJzKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwibnVtYmVyXCIsXG4gICAgICB9LFxuICAgICAgaXNfY2FfY2VydGlmaWNhdGU6IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLmJvb2xlYW5Ub0hjbFRlcnJhZm9ybSh0aGlzLl9pc0NhQ2VydGlmaWNhdGUpLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJib29sZWFuXCIsXG4gICAgICB9LFxuICAgICAgc2V0X3N1YmplY3Rfa2V5X2lkOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5ib29sZWFuVG9IY2xUZXJyYWZvcm0odGhpcy5fc2V0U3ViamVjdEtleUlkKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgfSxcbiAgICAgIHZhbGlkaXR5X3BlcmlvZF9ob3Vyczoge1xuICAgICAgICB2YWx1ZTogY2RrdGYubnVtYmVyVG9IY2xUZXJyYWZvcm0odGhpcy5fdmFsaWRpdHlQZXJpb2RIb3VycyksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcIm51bWJlclwiLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgLy8gcmVtb3ZlIHVuZGVmaW5lZCBhdHRyaWJ1dGVzXG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhhdHRycykuZmlsdGVyKChbXywgdmFsdWVdKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlLnZhbHVlICE9PSB1bmRlZmluZWQgKSlcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,76 @@
|
|
|
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 PrivateKeyConfig extends cdktf.TerraformMetaArguments {
|
|
8
|
+
/**
|
|
9
|
+
* Name of the algorithm to use when generating the private key. Currently-supported values are: `RSA`, `ECDSA`, `ED25519`.
|
|
10
|
+
*
|
|
11
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/resources/private_key#algorithm PrivateKey#algorithm}
|
|
12
|
+
*/
|
|
13
|
+
readonly algorithm: string;
|
|
14
|
+
/**
|
|
15
|
+
* When `algorithm` is `ECDSA`, the name of the elliptic curve to use. Currently-supported values are: `P224`, `P256`, `P384`, `P521`. (default: `P224`).
|
|
16
|
+
*
|
|
17
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/resources/private_key#ecdsa_curve PrivateKey#ecdsa_curve}
|
|
18
|
+
*/
|
|
19
|
+
readonly ecdsaCurve?: string;
|
|
20
|
+
/**
|
|
21
|
+
* When `algorithm` is `RSA`, the size of the generated RSA key, in bits (default: `2048`).
|
|
22
|
+
*
|
|
23
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/resources/private_key#rsa_bits PrivateKey#rsa_bits}
|
|
24
|
+
*/
|
|
25
|
+
readonly rsaBits?: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Represents a {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/resources/private_key tls_private_key}
|
|
29
|
+
*/
|
|
30
|
+
export declare class PrivateKey extends cdktf.TerraformResource {
|
|
31
|
+
static readonly tfResourceType = "tls_private_key";
|
|
32
|
+
/**
|
|
33
|
+
* Generates CDKTF code for importing a PrivateKey resource upon running "cdktf plan <stack-name>"
|
|
34
|
+
* @param scope The scope in which to define this construct
|
|
35
|
+
* @param importToId The construct id used in the generated config for the PrivateKey to import
|
|
36
|
+
* @param importFromId The id of the existing PrivateKey that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/resources/private_key#import import section} in the documentation of this resource for the id to use
|
|
37
|
+
* @param provider? Optional instance of the provider where the PrivateKey to import is found
|
|
38
|
+
*/
|
|
39
|
+
static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
|
|
40
|
+
/**
|
|
41
|
+
* Create a new {@link https://registry.terraform.io/providers/hashicorp/tls/4.1.0/docs/resources/private_key tls_private_key} Resource
|
|
42
|
+
*
|
|
43
|
+
* @param scope The scope in which to define this construct
|
|
44
|
+
* @param id The scoped construct ID. Must be unique amongst siblings in the same scope
|
|
45
|
+
* @param options PrivateKeyConfig
|
|
46
|
+
*/
|
|
47
|
+
constructor(scope: Construct, id: string, config: PrivateKeyConfig);
|
|
48
|
+
private _algorithm?;
|
|
49
|
+
get algorithm(): string;
|
|
50
|
+
set algorithm(value: string);
|
|
51
|
+
get algorithmInput(): string | undefined;
|
|
52
|
+
private _ecdsaCurve?;
|
|
53
|
+
get ecdsaCurve(): string;
|
|
54
|
+
set ecdsaCurve(value: string);
|
|
55
|
+
resetEcdsaCurve(): void;
|
|
56
|
+
get ecdsaCurveInput(): string | undefined;
|
|
57
|
+
get id(): string;
|
|
58
|
+
get privateKeyOpenssh(): string;
|
|
59
|
+
get privateKeyPem(): string;
|
|
60
|
+
get privateKeyPemPkcs8(): string;
|
|
61
|
+
get publicKeyFingerprintMd5(): string;
|
|
62
|
+
get publicKeyFingerprintSha256(): string;
|
|
63
|
+
get publicKeyOpenssh(): string;
|
|
64
|
+
get publicKeyPem(): string;
|
|
65
|
+
private _rsaBits?;
|
|
66
|
+
get rsaBits(): number;
|
|
67
|
+
set rsaBits(value: number);
|
|
68
|
+
resetRsaBits(): void;
|
|
69
|
+
get rsaBitsInput(): number | undefined;
|
|
70
|
+
protected synthesizeAttributes(): {
|
|
71
|
+
[name: string]: any;
|
|
72
|
+
};
|
|
73
|
+
protected synthesizeHclAttributes(): {
|
|
74
|
+
[name: string]: any;
|
|
75
|
+
};
|
|
76
|
+
}
|