import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface CertificatesManagementCertificateAuthorityConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#compartment_id CertificatesManagementCertificateAuthority#compartment_id}
    */
    readonly compartmentId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#defined_tags CertificatesManagementCertificateAuthority#defined_tags}
    */
    readonly definedTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#description CertificatesManagementCertificateAuthority#description}
    */
    readonly description?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#freeform_tags CertificatesManagementCertificateAuthority#freeform_tags}
    */
    readonly freeformTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#id CertificatesManagementCertificateAuthority#id}
    *
    * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
    * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
    */
    readonly id?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#kms_key_id CertificatesManagementCertificateAuthority#kms_key_id}
    */
    readonly kmsKeyId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#name CertificatesManagementCertificateAuthority#name}
    */
    readonly name: string;
    /**
    * certificate_authority_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#certificate_authority_config CertificatesManagementCertificateAuthority#certificate_authority_config}
    */
    readonly certificateAuthorityConfig: CertificatesManagementCertificateAuthorityCertificateAuthorityConfig;
    /**
    * certificate_authority_rules block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#certificate_authority_rules CertificatesManagementCertificateAuthority#certificate_authority_rules}
    */
    readonly certificateAuthorityRules?: CertificatesManagementCertificateAuthorityCertificateAuthorityRules[] | cdktf.IResolvable;
    /**
    * certificate_revocation_list_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#certificate_revocation_list_details CertificatesManagementCertificateAuthority#certificate_revocation_list_details}
    */
    readonly certificateRevocationListDetails?: CertificatesManagementCertificateAuthorityCertificateRevocationListDetails;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#timeouts CertificatesManagementCertificateAuthority#timeouts}
    */
    readonly timeouts?: CertificatesManagementCertificateAuthorityTimeouts;
}
export interface CertificatesManagementCertificateAuthorityCurrentVersionRevocationStatus {
}
export declare function certificatesManagementCertificateAuthorityCurrentVersionRevocationStatusToTerraform(struct?: CertificatesManagementCertificateAuthorityCurrentVersionRevocationStatus): any;
export declare function certificatesManagementCertificateAuthorityCurrentVersionRevocationStatusToHclTerraform(struct?: CertificatesManagementCertificateAuthorityCurrentVersionRevocationStatus): any;
export declare class CertificatesManagementCertificateAuthorityCurrentVersionRevocationStatusOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): CertificatesManagementCertificateAuthorityCurrentVersionRevocationStatus | undefined;
    set internalValue(value: CertificatesManagementCertificateAuthorityCurrentVersionRevocationStatus | undefined);
    get revocationReason(): string;
    get timeOfRevocation(): string;
}
export declare class CertificatesManagementCertificateAuthorityCurrentVersionRevocationStatusList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): CertificatesManagementCertificateAuthorityCurrentVersionRevocationStatusOutputReference;
}
export interface CertificatesManagementCertificateAuthorityCurrentVersionValidity {
}
export declare function certificatesManagementCertificateAuthorityCurrentVersionValidityToTerraform(struct?: CertificatesManagementCertificateAuthorityCurrentVersionValidity): any;
export declare function certificatesManagementCertificateAuthorityCurrentVersionValidityToHclTerraform(struct?: CertificatesManagementCertificateAuthorityCurrentVersionValidity): any;
export declare class CertificatesManagementCertificateAuthorityCurrentVersionValidityOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): CertificatesManagementCertificateAuthorityCurrentVersionValidity | undefined;
    set internalValue(value: CertificatesManagementCertificateAuthorityCurrentVersionValidity | undefined);
    get timeOfValidityNotAfter(): string;
    get timeOfValidityNotBefore(): string;
}
export declare class CertificatesManagementCertificateAuthorityCurrentVersionValidityList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): CertificatesManagementCertificateAuthorityCurrentVersionValidityOutputReference;
}
export interface CertificatesManagementCertificateAuthorityCurrentVersion {
}
export declare function certificatesManagementCertificateAuthorityCurrentVersionToTerraform(struct?: CertificatesManagementCertificateAuthorityCurrentVersion): any;
export declare function certificatesManagementCertificateAuthorityCurrentVersionToHclTerraform(struct?: CertificatesManagementCertificateAuthorityCurrentVersion): any;
export declare class CertificatesManagementCertificateAuthorityCurrentVersionOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): CertificatesManagementCertificateAuthorityCurrentVersion | undefined;
    set internalValue(value: CertificatesManagementCertificateAuthorityCurrentVersion | undefined);
    get certificateAuthorityId(): string;
    get issuerCaVersionNumber(): string;
    private _revocationStatus;
    get revocationStatus(): CertificatesManagementCertificateAuthorityCurrentVersionRevocationStatusList;
    get serialNumber(): string;
    get stages(): string[];
    get timeCreated(): string;
    get timeOfDeletion(): string;
    private _validity;
    get validity(): CertificatesManagementCertificateAuthorityCurrentVersionValidityList;
    get versionName(): string;
    get versionNumber(): string;
}
export declare class CertificatesManagementCertificateAuthorityCurrentVersionList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): CertificatesManagementCertificateAuthorityCurrentVersionOutputReference;
}
export interface CertificatesManagementCertificateAuthoritySubject {
}
export declare function certificatesManagementCertificateAuthoritySubjectToTerraform(struct?: CertificatesManagementCertificateAuthoritySubject): any;
export declare function certificatesManagementCertificateAuthoritySubjectToHclTerraform(struct?: CertificatesManagementCertificateAuthoritySubject): any;
export declare class CertificatesManagementCertificateAuthoritySubjectOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): CertificatesManagementCertificateAuthoritySubject | undefined;
    set internalValue(value: CertificatesManagementCertificateAuthoritySubject | undefined);
    get commonName(): string;
    get country(): string;
    get distinguishedNameQualifier(): string;
    get domainComponent(): string;
    get generationQualifier(): string;
    get givenName(): string;
    get initials(): string;
    get localityName(): string;
    get organization(): string;
    get organizationalUnit(): string;
    get pseudonym(): string;
    get serialNumber(): string;
    get stateOrProvinceName(): string;
    get street(): string;
    get surname(): string;
    get title(): string;
    get userId(): string;
}
export declare class CertificatesManagementCertificateAuthoritySubjectList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): CertificatesManagementCertificateAuthoritySubjectOutputReference;
}
export interface CertificatesManagementCertificateAuthorityCertificateAuthorityConfigSubject {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#common_name CertificatesManagementCertificateAuthority#common_name}
    */
    readonly commonName: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#country CertificatesManagementCertificateAuthority#country}
    */
    readonly country?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#distinguished_name_qualifier CertificatesManagementCertificateAuthority#distinguished_name_qualifier}
    */
    readonly distinguishedNameQualifier?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#domain_component CertificatesManagementCertificateAuthority#domain_component}
    */
    readonly domainComponent?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#generation_qualifier CertificatesManagementCertificateAuthority#generation_qualifier}
    */
    readonly generationQualifier?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#given_name CertificatesManagementCertificateAuthority#given_name}
    */
    readonly givenName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#initials CertificatesManagementCertificateAuthority#initials}
    */
    readonly initials?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#locality_name CertificatesManagementCertificateAuthority#locality_name}
    */
    readonly localityName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#organization CertificatesManagementCertificateAuthority#organization}
    */
    readonly organization?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#organizational_unit CertificatesManagementCertificateAuthority#organizational_unit}
    */
    readonly organizationalUnit?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#pseudonym CertificatesManagementCertificateAuthority#pseudonym}
    */
    readonly pseudonym?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#serial_number CertificatesManagementCertificateAuthority#serial_number}
    */
    readonly serialNumber?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#state_or_province_name CertificatesManagementCertificateAuthority#state_or_province_name}
    */
    readonly stateOrProvinceName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#street CertificatesManagementCertificateAuthority#street}
    */
    readonly street?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#surname CertificatesManagementCertificateAuthority#surname}
    */
    readonly surname?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#title CertificatesManagementCertificateAuthority#title}
    */
    readonly title?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#user_id CertificatesManagementCertificateAuthority#user_id}
    */
    readonly userId?: string;
}
export declare function certificatesManagementCertificateAuthorityCertificateAuthorityConfigSubjectToTerraform(struct?: CertificatesManagementCertificateAuthorityCertificateAuthorityConfigSubjectOutputReference | CertificatesManagementCertificateAuthorityCertificateAuthorityConfigSubject): any;
export declare function certificatesManagementCertificateAuthorityCertificateAuthorityConfigSubjectToHclTerraform(struct?: CertificatesManagementCertificateAuthorityCertificateAuthorityConfigSubjectOutputReference | CertificatesManagementCertificateAuthorityCertificateAuthorityConfigSubject): any;
export declare class CertificatesManagementCertificateAuthorityCertificateAuthorityConfigSubjectOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): CertificatesManagementCertificateAuthorityCertificateAuthorityConfigSubject | undefined;
    set internalValue(value: CertificatesManagementCertificateAuthorityCertificateAuthorityConfigSubject | undefined);
    private _commonName?;
    get commonName(): string;
    set commonName(value: string);
    get commonNameInput(): string | undefined;
    private _country?;
    get country(): string;
    set country(value: string);
    resetCountry(): void;
    get countryInput(): string | undefined;
    private _distinguishedNameQualifier?;
    get distinguishedNameQualifier(): string;
    set distinguishedNameQualifier(value: string);
    resetDistinguishedNameQualifier(): void;
    get distinguishedNameQualifierInput(): string | undefined;
    private _domainComponent?;
    get domainComponent(): string;
    set domainComponent(value: string);
    resetDomainComponent(): void;
    get domainComponentInput(): string | undefined;
    private _generationQualifier?;
    get generationQualifier(): string;
    set generationQualifier(value: string);
    resetGenerationQualifier(): void;
    get generationQualifierInput(): string | undefined;
    private _givenName?;
    get givenName(): string;
    set givenName(value: string);
    resetGivenName(): void;
    get givenNameInput(): string | undefined;
    private _initials?;
    get initials(): string;
    set initials(value: string);
    resetInitials(): void;
    get initialsInput(): string | undefined;
    private _localityName?;
    get localityName(): string;
    set localityName(value: string);
    resetLocalityName(): void;
    get localityNameInput(): string | undefined;
    private _organization?;
    get organization(): string;
    set organization(value: string);
    resetOrganization(): void;
    get organizationInput(): string | undefined;
    private _organizationalUnit?;
    get organizationalUnit(): string;
    set organizationalUnit(value: string);
    resetOrganizationalUnit(): void;
    get organizationalUnitInput(): string | undefined;
    private _pseudonym?;
    get pseudonym(): string;
    set pseudonym(value: string);
    resetPseudonym(): void;
    get pseudonymInput(): string | undefined;
    private _serialNumber?;
    get serialNumber(): string;
    set serialNumber(value: string);
    resetSerialNumber(): void;
    get serialNumberInput(): string | undefined;
    private _stateOrProvinceName?;
    get stateOrProvinceName(): string;
    set stateOrProvinceName(value: string);
    resetStateOrProvinceName(): void;
    get stateOrProvinceNameInput(): string | undefined;
    private _street?;
    get street(): string;
    set street(value: string);
    resetStreet(): void;
    get streetInput(): string | undefined;
    private _surname?;
    get surname(): string;
    set surname(value: string);
    resetSurname(): void;
    get surnameInput(): string | undefined;
    private _title?;
    get title(): string;
    set title(value: string);
    resetTitle(): void;
    get titleInput(): string | undefined;
    private _userId?;
    get userId(): string;
    set userId(value: string);
    resetUserId(): void;
    get userIdInput(): string | undefined;
}
export interface CertificatesManagementCertificateAuthorityCertificateAuthorityConfigValidity {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#time_of_validity_not_after CertificatesManagementCertificateAuthority#time_of_validity_not_after}
    */
    readonly timeOfValidityNotAfter: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#time_of_validity_not_before CertificatesManagementCertificateAuthority#time_of_validity_not_before}
    */
    readonly timeOfValidityNotBefore?: string;
}
export declare function certificatesManagementCertificateAuthorityCertificateAuthorityConfigValidityToTerraform(struct?: CertificatesManagementCertificateAuthorityCertificateAuthorityConfigValidityOutputReference | CertificatesManagementCertificateAuthorityCertificateAuthorityConfigValidity): any;
export declare function certificatesManagementCertificateAuthorityCertificateAuthorityConfigValidityToHclTerraform(struct?: CertificatesManagementCertificateAuthorityCertificateAuthorityConfigValidityOutputReference | CertificatesManagementCertificateAuthorityCertificateAuthorityConfigValidity): any;
export declare class CertificatesManagementCertificateAuthorityCertificateAuthorityConfigValidityOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): CertificatesManagementCertificateAuthorityCertificateAuthorityConfigValidity | undefined;
    set internalValue(value: CertificatesManagementCertificateAuthorityCertificateAuthorityConfigValidity | undefined);
    private _timeOfValidityNotAfter?;
    get timeOfValidityNotAfter(): string;
    set timeOfValidityNotAfter(value: string);
    get timeOfValidityNotAfterInput(): string | undefined;
    private _timeOfValidityNotBefore?;
    get timeOfValidityNotBefore(): string;
    set timeOfValidityNotBefore(value: string);
    resetTimeOfValidityNotBefore(): void;
    get timeOfValidityNotBeforeInput(): string | undefined;
}
export interface CertificatesManagementCertificateAuthorityCertificateAuthorityConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#config_type CertificatesManagementCertificateAuthority#config_type}
    */
    readonly configType: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#issuer_certificate_authority_id CertificatesManagementCertificateAuthority#issuer_certificate_authority_id}
    */
    readonly issuerCertificateAuthorityId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#signing_algorithm CertificatesManagementCertificateAuthority#signing_algorithm}
    */
    readonly signingAlgorithm?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#version_name CertificatesManagementCertificateAuthority#version_name}
    */
    readonly versionName?: string;
    /**
    * subject block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#subject CertificatesManagementCertificateAuthority#subject}
    */
    readonly subject: CertificatesManagementCertificateAuthorityCertificateAuthorityConfigSubject;
    /**
    * validity block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#validity CertificatesManagementCertificateAuthority#validity}
    */
    readonly validity?: CertificatesManagementCertificateAuthorityCertificateAuthorityConfigValidity;
}
export declare function certificatesManagementCertificateAuthorityCertificateAuthorityConfigToTerraform(struct?: CertificatesManagementCertificateAuthorityCertificateAuthorityConfigOutputReference | CertificatesManagementCertificateAuthorityCertificateAuthorityConfig): any;
export declare function certificatesManagementCertificateAuthorityCertificateAuthorityConfigToHclTerraform(struct?: CertificatesManagementCertificateAuthorityCertificateAuthorityConfigOutputReference | CertificatesManagementCertificateAuthorityCertificateAuthorityConfig): any;
export declare class CertificatesManagementCertificateAuthorityCertificateAuthorityConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): CertificatesManagementCertificateAuthorityCertificateAuthorityConfig | undefined;
    set internalValue(value: CertificatesManagementCertificateAuthorityCertificateAuthorityConfig | undefined);
    private _configType?;
    get configType(): string;
    set configType(value: string);
    get configTypeInput(): string | undefined;
    private _issuerCertificateAuthorityId?;
    get issuerCertificateAuthorityId(): string;
    set issuerCertificateAuthorityId(value: string);
    resetIssuerCertificateAuthorityId(): void;
    get issuerCertificateAuthorityIdInput(): string | undefined;
    private _signingAlgorithm?;
    get signingAlgorithm(): string;
    set signingAlgorithm(value: string);
    resetSigningAlgorithm(): void;
    get signingAlgorithmInput(): string | undefined;
    private _versionName?;
    get versionName(): string;
    set versionName(value: string);
    resetVersionName(): void;
    get versionNameInput(): string | undefined;
    private _subject;
    get subject(): CertificatesManagementCertificateAuthorityCertificateAuthorityConfigSubjectOutputReference;
    putSubject(value: CertificatesManagementCertificateAuthorityCertificateAuthorityConfigSubject): void;
    get subjectInput(): CertificatesManagementCertificateAuthorityCertificateAuthorityConfigSubject | undefined;
    private _validity;
    get validity(): CertificatesManagementCertificateAuthorityCertificateAuthorityConfigValidityOutputReference;
    putValidity(value: CertificatesManagementCertificateAuthorityCertificateAuthorityConfigValidity): void;
    resetValidity(): void;
    get validityInput(): CertificatesManagementCertificateAuthorityCertificateAuthorityConfigValidity | undefined;
}
export interface CertificatesManagementCertificateAuthorityCertificateAuthorityRules {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#certificate_authority_max_validity_duration CertificatesManagementCertificateAuthority#certificate_authority_max_validity_duration}
    */
    readonly certificateAuthorityMaxValidityDuration?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#leaf_certificate_max_validity_duration CertificatesManagementCertificateAuthority#leaf_certificate_max_validity_duration}
    */
    readonly leafCertificateMaxValidityDuration?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#rule_type CertificatesManagementCertificateAuthority#rule_type}
    */
    readonly ruleType: string;
}
export declare function certificatesManagementCertificateAuthorityCertificateAuthorityRulesToTerraform(struct?: CertificatesManagementCertificateAuthorityCertificateAuthorityRules | cdktf.IResolvable): any;
export declare function certificatesManagementCertificateAuthorityCertificateAuthorityRulesToHclTerraform(struct?: CertificatesManagementCertificateAuthorityCertificateAuthorityRules | cdktf.IResolvable): any;
export declare class CertificatesManagementCertificateAuthorityCertificateAuthorityRulesOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): CertificatesManagementCertificateAuthorityCertificateAuthorityRules | cdktf.IResolvable | undefined;
    set internalValue(value: CertificatesManagementCertificateAuthorityCertificateAuthorityRules | cdktf.IResolvable | undefined);
    private _certificateAuthorityMaxValidityDuration?;
    get certificateAuthorityMaxValidityDuration(): string;
    set certificateAuthorityMaxValidityDuration(value: string);
    resetCertificateAuthorityMaxValidityDuration(): void;
    get certificateAuthorityMaxValidityDurationInput(): string | undefined;
    private _leafCertificateMaxValidityDuration?;
    get leafCertificateMaxValidityDuration(): string;
    set leafCertificateMaxValidityDuration(value: string);
    resetLeafCertificateMaxValidityDuration(): void;
    get leafCertificateMaxValidityDurationInput(): string | undefined;
    private _ruleType?;
    get ruleType(): string;
    set ruleType(value: string);
    get ruleTypeInput(): string | undefined;
}
export declare class CertificatesManagementCertificateAuthorityCertificateAuthorityRulesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CertificatesManagementCertificateAuthorityCertificateAuthorityRules[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): CertificatesManagementCertificateAuthorityCertificateAuthorityRulesOutputReference;
}
export interface CertificatesManagementCertificateAuthorityCertificateRevocationListDetailsObjectStorageConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#object_storage_bucket_name CertificatesManagementCertificateAuthority#object_storage_bucket_name}
    */
    readonly objectStorageBucketName: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#object_storage_namespace CertificatesManagementCertificateAuthority#object_storage_namespace}
    */
    readonly objectStorageNamespace?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#object_storage_object_name_format CertificatesManagementCertificateAuthority#object_storage_object_name_format}
    */
    readonly objectStorageObjectNameFormat: string;
}
export declare function certificatesManagementCertificateAuthorityCertificateRevocationListDetailsObjectStorageConfigToTerraform(struct?: CertificatesManagementCertificateAuthorityCertificateRevocationListDetailsObjectStorageConfigOutputReference | CertificatesManagementCertificateAuthorityCertificateRevocationListDetailsObjectStorageConfig): any;
export declare function certificatesManagementCertificateAuthorityCertificateRevocationListDetailsObjectStorageConfigToHclTerraform(struct?: CertificatesManagementCertificateAuthorityCertificateRevocationListDetailsObjectStorageConfigOutputReference | CertificatesManagementCertificateAuthorityCertificateRevocationListDetailsObjectStorageConfig): any;
export declare class CertificatesManagementCertificateAuthorityCertificateRevocationListDetailsObjectStorageConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): CertificatesManagementCertificateAuthorityCertificateRevocationListDetailsObjectStorageConfig | undefined;
    set internalValue(value: CertificatesManagementCertificateAuthorityCertificateRevocationListDetailsObjectStorageConfig | undefined);
    private _objectStorageBucketName?;
    get objectStorageBucketName(): string;
    set objectStorageBucketName(value: string);
    get objectStorageBucketNameInput(): string | undefined;
    private _objectStorageNamespace?;
    get objectStorageNamespace(): string;
    set objectStorageNamespace(value: string);
    resetObjectStorageNamespace(): void;
    get objectStorageNamespaceInput(): string | undefined;
    private _objectStorageObjectNameFormat?;
    get objectStorageObjectNameFormat(): string;
    set objectStorageObjectNameFormat(value: string);
    get objectStorageObjectNameFormatInput(): string | undefined;
}
export interface CertificatesManagementCertificateAuthorityCertificateRevocationListDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#custom_formatted_urls CertificatesManagementCertificateAuthority#custom_formatted_urls}
    */
    readonly customFormattedUrls?: string[];
    /**
    * object_storage_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#object_storage_config CertificatesManagementCertificateAuthority#object_storage_config}
    */
    readonly objectStorageConfig: CertificatesManagementCertificateAuthorityCertificateRevocationListDetailsObjectStorageConfig;
}
export declare function certificatesManagementCertificateAuthorityCertificateRevocationListDetailsToTerraform(struct?: CertificatesManagementCertificateAuthorityCertificateRevocationListDetailsOutputReference | CertificatesManagementCertificateAuthorityCertificateRevocationListDetails): any;
export declare function certificatesManagementCertificateAuthorityCertificateRevocationListDetailsToHclTerraform(struct?: CertificatesManagementCertificateAuthorityCertificateRevocationListDetailsOutputReference | CertificatesManagementCertificateAuthorityCertificateRevocationListDetails): any;
export declare class CertificatesManagementCertificateAuthorityCertificateRevocationListDetailsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): CertificatesManagementCertificateAuthorityCertificateRevocationListDetails | undefined;
    set internalValue(value: CertificatesManagementCertificateAuthorityCertificateRevocationListDetails | undefined);
    private _customFormattedUrls?;
    get customFormattedUrls(): string[];
    set customFormattedUrls(value: string[]);
    resetCustomFormattedUrls(): void;
    get customFormattedUrlsInput(): string[] | undefined;
    private _objectStorageConfig;
    get objectStorageConfig(): CertificatesManagementCertificateAuthorityCertificateRevocationListDetailsObjectStorageConfigOutputReference;
    putObjectStorageConfig(value: CertificatesManagementCertificateAuthorityCertificateRevocationListDetailsObjectStorageConfig): void;
    get objectStorageConfigInput(): CertificatesManagementCertificateAuthorityCertificateRevocationListDetailsObjectStorageConfig | undefined;
}
export interface CertificatesManagementCertificateAuthorityTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#create CertificatesManagementCertificateAuthority#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#delete CertificatesManagementCertificateAuthority#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#update CertificatesManagementCertificateAuthority#update}
    */
    readonly update?: string;
}
export declare function certificatesManagementCertificateAuthorityTimeoutsToTerraform(struct?: CertificatesManagementCertificateAuthorityTimeouts | cdktf.IResolvable): any;
export declare function certificatesManagementCertificateAuthorityTimeoutsToHclTerraform(struct?: CertificatesManagementCertificateAuthorityTimeouts | cdktf.IResolvable): any;
export declare class CertificatesManagementCertificateAuthorityTimeoutsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): CertificatesManagementCertificateAuthorityTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: CertificatesManagementCertificateAuthorityTimeouts | cdktf.IResolvable | undefined);
    private _create?;
    get create(): string;
    set create(value: string);
    resetCreate(): void;
    get createInput(): string | undefined;
    private _delete?;
    get delete(): string;
    set delete(value: string);
    resetDelete(): void;
    get deleteInput(): string | undefined;
    private _update?;
    get update(): string;
    set update(value: string);
    resetUpdate(): void;
    get updateInput(): string | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority oci_certificates_management_certificate_authority}
*/
export declare class CertificatesManagementCertificateAuthority extends cdktf.TerraformResource {
    static readonly tfResourceType = "oci_certificates_management_certificate_authority";
    /**
    * Generates CDKTF code for importing a CertificatesManagementCertificateAuthority resource upon running "cdktf plan <stack-name>"
    * @param scope The scope in which to define this construct
    * @param importToId The construct id used in the generated config for the CertificatesManagementCertificateAuthority to import
    * @param importFromId The id of the existing CertificatesManagementCertificateAuthority that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the CertificatesManagementCertificateAuthority to import is found
    */
    static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
    /**
    * Create a new {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/certificates_management_certificate_authority oci_certificates_management_certificate_authority} Resource
    *
    * @param scope The scope in which to define this construct
    * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
    * @param options CertificatesManagementCertificateAuthorityConfig
    */
    constructor(scope: Construct, id: string, config: CertificatesManagementCertificateAuthorityConfig);
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    get compartmentIdInput(): string | undefined;
    get configType(): string;
    private _currentVersion;
    get currentVersion(): CertificatesManagementCertificateAuthorityCurrentVersionList;
    private _definedTags?;
    get definedTags(): {
        [key: string]: string;
    };
    set definedTags(value: {
        [key: string]: string;
    });
    resetDefinedTags(): void;
    get definedTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _description?;
    get description(): string;
    set description(value: string);
    resetDescription(): void;
    get descriptionInput(): string | undefined;
    private _freeformTags?;
    get freeformTags(): {
        [key: string]: string;
    };
    set freeformTags(value: {
        [key: string]: string;
    });
    resetFreeformTags(): void;
    get freeformTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    get issuerCertificateAuthorityId(): string;
    private _kmsKeyId?;
    get kmsKeyId(): string;
    set kmsKeyId(value: string);
    get kmsKeyIdInput(): string | undefined;
    get lifecycleDetails(): string;
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    get signingAlgorithm(): string;
    get state(): string;
    private _subject;
    get subject(): CertificatesManagementCertificateAuthoritySubjectList;
    get timeCreated(): string;
    get timeOfDeletion(): string;
    private _certificateAuthorityConfig;
    get certificateAuthorityConfig(): CertificatesManagementCertificateAuthorityCertificateAuthorityConfigOutputReference;
    putCertificateAuthorityConfig(value: CertificatesManagementCertificateAuthorityCertificateAuthorityConfig): void;
    get certificateAuthorityConfigInput(): CertificatesManagementCertificateAuthorityCertificateAuthorityConfig | undefined;
    private _certificateAuthorityRules;
    get certificateAuthorityRules(): CertificatesManagementCertificateAuthorityCertificateAuthorityRulesList;
    putCertificateAuthorityRules(value: CertificatesManagementCertificateAuthorityCertificateAuthorityRules[] | cdktf.IResolvable): void;
    resetCertificateAuthorityRules(): void;
    get certificateAuthorityRulesInput(): cdktf.IResolvable | CertificatesManagementCertificateAuthorityCertificateAuthorityRules[] | undefined;
    private _certificateRevocationListDetails;
    get certificateRevocationListDetails(): CertificatesManagementCertificateAuthorityCertificateRevocationListDetailsOutputReference;
    putCertificateRevocationListDetails(value: CertificatesManagementCertificateAuthorityCertificateRevocationListDetails): void;
    resetCertificateRevocationListDetails(): void;
    get certificateRevocationListDetailsInput(): CertificatesManagementCertificateAuthorityCertificateRevocationListDetails | undefined;
    private _timeouts;
    get timeouts(): CertificatesManagementCertificateAuthorityTimeoutsOutputReference;
    putTimeouts(value: CertificatesManagementCertificateAuthorityTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | CertificatesManagementCertificateAuthorityTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
