import * as core from "@terrascript/core"; export interface CrlConfigurationArgs extends core.SchemaArgs { customCname?: string | core.StringOut; enabled?: boolean | core.BooleanOut; expirationInDays: number | core.NumberOut; s3BucketName?: string | core.StringOut; s3ObjectAcl?: string | core.StringOut; } export class CrlConfiguration extends core.Schema { @core.attr(String) public customCname?: string | core.StringOut; @core.attr(Boolean) public enabled?: boolean | core.BooleanOut; @core.attr(Number) public expirationInDays!: number | core.NumberOut; @core.attr(String) public s3BucketName?: string | core.StringOut; @core.attr(String, { computed: true }) public s3ObjectAcl?: string | core.StringOut; } export interface OcspConfigurationArgs extends core.SchemaArgs { enabled: boolean | core.BooleanOut; ocspCustomCname?: string | core.StringOut; } export class OcspConfiguration extends core.Schema { @core.attr(Boolean) public enabled!: boolean | core.BooleanOut; @core.attr(String) public ocspCustomCname?: string | core.StringOut; } export interface RevocationConfigurationArgs extends core.SchemaArgs { crlConfiguration?: CrlConfiguration; ocspConfiguration?: OcspConfiguration; } export class RevocationConfiguration extends core.Schema { @core.attr(CrlConfiguration) public crlConfiguration?: CrlConfiguration; @core.attr(OcspConfiguration) public ocspConfiguration?: OcspConfiguration; } export interface SubjectArgs extends core.SchemaArgs { commonName?: string | core.StringOut; country?: string | core.StringOut; distinguishedNameQualifier?: string | core.StringOut; generationQualifier?: string | core.StringOut; givenName?: string | core.StringOut; initials?: string | core.StringOut; locality?: string | core.StringOut; organization?: string | core.StringOut; organizationalUnit?: string | core.StringOut; pseudonym?: string | core.StringOut; state?: string | core.StringOut; surname?: string | core.StringOut; title?: string | core.StringOut; } export class Subject extends core.Schema { @core.attr(String) public commonName?: string | core.StringOut; @core.attr(String) public country?: string | core.StringOut; @core.attr(String) public distinguishedNameQualifier?: string | core.StringOut; @core.attr(String) public generationQualifier?: string | core.StringOut; @core.attr(String) public givenName?: string | core.StringOut; @core.attr(String) public initials?: string | core.StringOut; @core.attr(String) public locality?: string | core.StringOut; @core.attr(String) public organization?: string | core.StringOut; @core.attr(String) public organizationalUnit?: string | core.StringOut; @core.attr(String) public pseudonym?: string | core.StringOut; @core.attr(String) public state?: string | core.StringOut; @core.attr(String) public surname?: string | core.StringOut; @core.attr(String) public title?: string | core.StringOut; } export interface CertificateAuthorityConfigurationArgs extends core.SchemaArgs { keyAlgorithm: string | core.StringOut; signingAlgorithm: string | core.StringOut; subject: Subject; } export class CertificateAuthorityConfiguration extends core.Schema { @core.attr(String) public keyAlgorithm!: string | core.StringOut; @core.attr(String) public signingAlgorithm!: string | core.StringOut; @core.attr(Subject) public subject!: Subject; } export interface CertificateAuthorityArgs extends core.ResourceArgs { /** * (Required) Nested argument containing algorithms and certificate subject information. Defined below. */ certificateAuthorityConfiguration: CertificateAuthorityConfiguration; /** * (Optional) Whether the certificate authority is enabled or disabled. Defaults to `true`. */ enabled?: boolean | core.BooleanOut; /** * (Optional) The number of days to make a CA restorable after it has been deleted, must be between 7 t * o 30 days, with default to 30 days. */ permanentDeletionTimeInDays?: number | core.NumberOut; /** * (Optional) Nested argument containing revocation configuration. Defined below. */ revocationConfiguration?: RevocationConfiguration; /** * (Optional) Specifies a key-value map of user-defined tags that are attached to the certificate autho * rity. If configured with a provider [`default_tags` configuration block](https://registry.terraform. * io/providers/hashicorp/aws/latest/docs#default_tags-configuration-block) present, tags with matching * keys will overwrite those defined at the provider-level. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Optional) The type of the certificate authority. Defaults to `SUBORDINATE`. Valid values: `ROOT` an * d `SUBORDINATE`. */ type?: string | core.StringOut; } export class CertificateAuthority extends core.Resource { /** * Amazon Resource Name (ARN) of the certificate authority. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * Base64-encoded certificate authority (CA) certificate. Only available after the certificate authorit * y certificate has been imported. */ @core.attr(String, { computed: true }) public certificate!: string | core.StringOut; /** * (Required) Nested argument containing algorithms and certificate subject information. Defined below. */ @core.attr(CertificateAuthorityConfiguration) public certificateAuthorityConfiguration!: CertificateAuthorityConfiguration; /** * Base64-encoded certificate chain that includes any intermediate certificates and chains up to root o * n-premises certificate that you used to sign your private CA certificate. The chain does not include * your private CA certificate. Only available after the certificate authority certificate has been im * ported. */ @core.attr(String, { computed: true }) public certificateChain!: string | core.StringOut; /** * The base64 PEM-encoded certificate signing request (CSR) for your private CA certificate. */ @core.attr(String, { computed: true }) public certificateSigningRequest!: string | core.StringOut; /** * (Optional) Whether the certificate authority is enabled or disabled. Defaults to `true`. */ @core.attr(Boolean) public enabled?: boolean | core.BooleanOut; /** * Amazon Resource Name (ARN) of the certificate authority. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * Date and time after which the certificate authority is not valid. Only available after the certifica * te authority certificate has been imported. */ @core.attr(String, { computed: true }) public notAfter!: string | core.StringOut; /** * Date and time before which the certificate authority is not valid. Only available after the certific * ate authority certificate has been imported. */ @core.attr(String, { computed: true }) public notBefore!: string | core.StringOut; /** * (Optional) The number of days to make a CA restorable after it has been deleted, must be between 7 t * o 30 days, with default to 30 days. */ @core.attr(Number) public permanentDeletionTimeInDays?: number | core.NumberOut; /** * (Optional) Nested argument containing revocation configuration. Defined below. */ @core.attr(RevocationConfiguration) public revocationConfiguration?: RevocationConfiguration; /** * Serial number of the certificate authority. Only available after the certificate authority certifica * te has been imported. */ @core.attr(String, { computed: true }) public serial!: string | core.StringOut; /** * (**Deprecated** use the `enabled` attribute instead) Status of the certificate authority. */ @core.attr(String, { computed: true }) public status!: string | core.StringOut; /** * (Optional) Specifies a key-value map of user-defined tags that are attached to the certificate autho * rity. If configured with a provider [`default_tags` configuration block](https://registry.terraform. * io/providers/hashicorp/aws/latest/docs#default_tags-configuration-block) present, tags with matching * keys will overwrite those defined at the provider-level. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; /** * (Optional) The type of the certificate authority. Defaults to `SUBORDINATE`. Valid values: `ROOT` an * d `SUBORDINATE`. */ @core.attr(String) public type?: string | core.StringOut; constructor(name: string, args?: CertificateAuthorityArgs) { super(name, "aws_acmpca_certificate_authority", args); } public override getNamespace(): string { return "aws_acmpca"; } }