import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface OpsiNewsReportConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#are_child_compartments_included OpsiNewsReport#are_child_compartments_included}
    */
    readonly areChildCompartmentsIncluded?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#compartment_id OpsiNewsReport#compartment_id}
    */
    readonly compartmentId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#day_of_week OpsiNewsReport#day_of_week}
    */
    readonly dayOfWeek?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#defined_tags OpsiNewsReport#defined_tags}
    */
    readonly definedTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#description OpsiNewsReport#description}
    */
    readonly description: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#freeform_tags OpsiNewsReport#freeform_tags}
    */
    readonly freeformTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#id OpsiNewsReport#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/opsi_news_report#locale OpsiNewsReport#locale}
    */
    readonly locale: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#name OpsiNewsReport#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#news_frequency OpsiNewsReport#news_frequency}
    */
    readonly newsFrequency: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#ons_topic_id OpsiNewsReport#ons_topic_id}
    */
    readonly onsTopicId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#status OpsiNewsReport#status}
    */
    readonly status?: string;
    /**
    * content_types block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#content_types OpsiNewsReport#content_types}
    */
    readonly contentTypes: OpsiNewsReportContentTypes;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#timeouts OpsiNewsReport#timeouts}
    */
    readonly timeouts?: OpsiNewsReportTimeouts;
}
export interface OpsiNewsReportContentTypes {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#capacity_planning_resources OpsiNewsReport#capacity_planning_resources}
    */
    readonly capacityPlanningResources?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#sql_insights_fleet_analysis_resources OpsiNewsReport#sql_insights_fleet_analysis_resources}
    */
    readonly sqlInsightsFleetAnalysisResources?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#sql_insights_performance_degradation_resources OpsiNewsReport#sql_insights_performance_degradation_resources}
    */
    readonly sqlInsightsPerformanceDegradationResources?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#sql_insights_plan_changes_resources OpsiNewsReport#sql_insights_plan_changes_resources}
    */
    readonly sqlInsightsPlanChangesResources?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#sql_insights_top_databases_resources OpsiNewsReport#sql_insights_top_databases_resources}
    */
    readonly sqlInsightsTopDatabasesResources?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#sql_insights_top_sql_by_insights_resources OpsiNewsReport#sql_insights_top_sql_by_insights_resources}
    */
    readonly sqlInsightsTopSqlByInsightsResources?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#sql_insights_top_sql_resources OpsiNewsReport#sql_insights_top_sql_resources}
    */
    readonly sqlInsightsTopSqlResources?: string[];
}
export declare function opsiNewsReportContentTypesToTerraform(struct?: OpsiNewsReportContentTypesOutputReference | OpsiNewsReportContentTypes): any;
export declare function opsiNewsReportContentTypesToHclTerraform(struct?: OpsiNewsReportContentTypesOutputReference | OpsiNewsReportContentTypes): any;
export declare class OpsiNewsReportContentTypesOutputReference 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(): OpsiNewsReportContentTypes | undefined;
    set internalValue(value: OpsiNewsReportContentTypes | undefined);
    private _capacityPlanningResources?;
    get capacityPlanningResources(): string[];
    set capacityPlanningResources(value: string[]);
    resetCapacityPlanningResources(): void;
    get capacityPlanningResourcesInput(): string[] | undefined;
    private _sqlInsightsFleetAnalysisResources?;
    get sqlInsightsFleetAnalysisResources(): string[];
    set sqlInsightsFleetAnalysisResources(value: string[]);
    resetSqlInsightsFleetAnalysisResources(): void;
    get sqlInsightsFleetAnalysisResourcesInput(): string[] | undefined;
    private _sqlInsightsPerformanceDegradationResources?;
    get sqlInsightsPerformanceDegradationResources(): string[];
    set sqlInsightsPerformanceDegradationResources(value: string[]);
    resetSqlInsightsPerformanceDegradationResources(): void;
    get sqlInsightsPerformanceDegradationResourcesInput(): string[] | undefined;
    private _sqlInsightsPlanChangesResources?;
    get sqlInsightsPlanChangesResources(): string[];
    set sqlInsightsPlanChangesResources(value: string[]);
    resetSqlInsightsPlanChangesResources(): void;
    get sqlInsightsPlanChangesResourcesInput(): string[] | undefined;
    private _sqlInsightsTopDatabasesResources?;
    get sqlInsightsTopDatabasesResources(): string[];
    set sqlInsightsTopDatabasesResources(value: string[]);
    resetSqlInsightsTopDatabasesResources(): void;
    get sqlInsightsTopDatabasesResourcesInput(): string[] | undefined;
    private _sqlInsightsTopSqlByInsightsResources?;
    get sqlInsightsTopSqlByInsightsResources(): string[];
    set sqlInsightsTopSqlByInsightsResources(value: string[]);
    resetSqlInsightsTopSqlByInsightsResources(): void;
    get sqlInsightsTopSqlByInsightsResourcesInput(): string[] | undefined;
    private _sqlInsightsTopSqlResources?;
    get sqlInsightsTopSqlResources(): string[];
    set sqlInsightsTopSqlResources(value: string[]);
    resetSqlInsightsTopSqlResources(): void;
    get sqlInsightsTopSqlResourcesInput(): string[] | undefined;
}
export interface OpsiNewsReportTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#create OpsiNewsReport#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#delete OpsiNewsReport#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#update OpsiNewsReport#update}
    */
    readonly update?: string;
}
export declare function opsiNewsReportTimeoutsToTerraform(struct?: OpsiNewsReportTimeouts | cdktf.IResolvable): any;
export declare function opsiNewsReportTimeoutsToHclTerraform(struct?: OpsiNewsReportTimeouts | cdktf.IResolvable): any;
export declare class OpsiNewsReportTimeoutsOutputReference 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(): OpsiNewsReportTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: OpsiNewsReportTimeouts | 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/opsi_news_report oci_opsi_news_report}
*/
export declare class OpsiNewsReport extends cdktf.TerraformResource {
    static readonly tfResourceType = "oci_opsi_news_report";
    /**
    * Generates CDKTF code for importing a OpsiNewsReport 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 OpsiNewsReport to import
    * @param importFromId The id of the existing OpsiNewsReport that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_news_report#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the OpsiNewsReport 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/opsi_news_report oci_opsi_news_report} 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 OpsiNewsReportConfig
    */
    constructor(scope: Construct, id: string, config: OpsiNewsReportConfig);
    private _areChildCompartmentsIncluded?;
    get areChildCompartmentsIncluded(): boolean | cdktf.IResolvable;
    set areChildCompartmentsIncluded(value: boolean | cdktf.IResolvable);
    resetAreChildCompartmentsIncluded(): void;
    get areChildCompartmentsIncludedInput(): boolean | cdktf.IResolvable | undefined;
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    get compartmentIdInput(): string | undefined;
    private _dayOfWeek?;
    get dayOfWeek(): string;
    set dayOfWeek(value: string);
    resetDayOfWeek(): void;
    get dayOfWeekInput(): string | undefined;
    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);
    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 lifecycleDetails(): string;
    private _locale?;
    get locale(): string;
    set locale(value: string);
    get localeInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _newsFrequency?;
    get newsFrequency(): string;
    set newsFrequency(value: string);
    get newsFrequencyInput(): string | undefined;
    private _onsTopicId?;
    get onsTopicId(): string;
    set onsTopicId(value: string);
    get onsTopicIdInput(): string | undefined;
    get state(): string;
    private _status?;
    get status(): string;
    set status(value: string);
    resetStatus(): void;
    get statusInput(): string | undefined;
    private _systemTags;
    get systemTags(): cdktf.StringMap;
    get timeCreated(): string;
    get timeUpdated(): string;
    private _contentTypes;
    get contentTypes(): OpsiNewsReportContentTypesOutputReference;
    putContentTypes(value: OpsiNewsReportContentTypes): void;
    get contentTypesInput(): OpsiNewsReportContentTypes | undefined;
    private _timeouts;
    get timeouts(): OpsiNewsReportTimeoutsOutputReference;
    putTimeouts(value: OpsiNewsReportTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | OpsiNewsReportTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
