import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DataOciJmsFleetInstallationSiteConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/jms_fleet_installation_site#application_id DataOciJmsFleetInstallationSite#application_id}
    */
    readonly applicationId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/jms_fleet_installation_site#fleet_id DataOciJmsFleetInstallationSite#fleet_id}
    */
    readonly fleetId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/jms_fleet_installation_site#id DataOciJmsFleetInstallationSite#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/data-sources/jms_fleet_installation_site#installation_path DataOciJmsFleetInstallationSite#installation_path}
    */
    readonly installationPath?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/jms_fleet_installation_site#jre_distribution DataOciJmsFleetInstallationSite#jre_distribution}
    */
    readonly jreDistribution?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/jms_fleet_installation_site#jre_security_status DataOciJmsFleetInstallationSite#jre_security_status}
    */
    readonly jreSecurityStatus?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/jms_fleet_installation_site#jre_vendor DataOciJmsFleetInstallationSite#jre_vendor}
    */
    readonly jreVendor?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/jms_fleet_installation_site#jre_version DataOciJmsFleetInstallationSite#jre_version}
    */
    readonly jreVersion?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/jms_fleet_installation_site#managed_instance_id DataOciJmsFleetInstallationSite#managed_instance_id}
    */
    readonly managedInstanceId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/jms_fleet_installation_site#os_family DataOciJmsFleetInstallationSite#os_family}
    */
    readonly osFamily?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/jms_fleet_installation_site#path_contains DataOciJmsFleetInstallationSite#path_contains}
    */
    readonly pathContains?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/jms_fleet_installation_site#time_end DataOciJmsFleetInstallationSite#time_end}
    */
    readonly timeEnd?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/jms_fleet_installation_site#time_start DataOciJmsFleetInstallationSite#time_start}
    */
    readonly timeStart?: string;
}
export interface DataOciJmsFleetInstallationSiteItemsBlocklistStruct {
}
export declare function dataOciJmsFleetInstallationSiteItemsBlocklistStructToTerraform(struct?: DataOciJmsFleetInstallationSiteItemsBlocklistStruct): any;
export declare function dataOciJmsFleetInstallationSiteItemsBlocklistStructToHclTerraform(struct?: DataOciJmsFleetInstallationSiteItemsBlocklistStruct): any;
export declare class DataOciJmsFleetInstallationSiteItemsBlocklistStructOutputReference 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(): DataOciJmsFleetInstallationSiteItemsBlocklistStruct | undefined;
    set internalValue(value: DataOciJmsFleetInstallationSiteItemsBlocklistStruct | undefined);
    get operation(): string;
    get reason(): string;
}
export declare class DataOciJmsFleetInstallationSiteItemsBlocklistStructList 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): DataOciJmsFleetInstallationSiteItemsBlocklistStructOutputReference;
}
export interface DataOciJmsFleetInstallationSiteItemsJre {
}
export declare function dataOciJmsFleetInstallationSiteItemsJreToTerraform(struct?: DataOciJmsFleetInstallationSiteItemsJre): any;
export declare function dataOciJmsFleetInstallationSiteItemsJreToHclTerraform(struct?: DataOciJmsFleetInstallationSiteItemsJre): any;
export declare class DataOciJmsFleetInstallationSiteItemsJreOutputReference 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(): DataOciJmsFleetInstallationSiteItemsJre | undefined;
    set internalValue(value: DataOciJmsFleetInstallationSiteItemsJre | undefined);
    get distribution(): string;
    get jreKey(): string;
    get vendor(): string;
    get version(): string;
}
export declare class DataOciJmsFleetInstallationSiteItemsJreList 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): DataOciJmsFleetInstallationSiteItemsJreOutputReference;
}
export interface DataOciJmsFleetInstallationSiteItemsOperatingSystem {
}
export declare function dataOciJmsFleetInstallationSiteItemsOperatingSystemToTerraform(struct?: DataOciJmsFleetInstallationSiteItemsOperatingSystem): any;
export declare function dataOciJmsFleetInstallationSiteItemsOperatingSystemToHclTerraform(struct?: DataOciJmsFleetInstallationSiteItemsOperatingSystem): any;
export declare class DataOciJmsFleetInstallationSiteItemsOperatingSystemOutputReference 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(): DataOciJmsFleetInstallationSiteItemsOperatingSystem | undefined;
    set internalValue(value: DataOciJmsFleetInstallationSiteItemsOperatingSystem | undefined);
    get architecture(): string;
    get family(): string;
    get managedInstanceCount(): number;
    get name(): string;
    get version(): string;
}
export declare class DataOciJmsFleetInstallationSiteItemsOperatingSystemList 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): DataOciJmsFleetInstallationSiteItemsOperatingSystemOutputReference;
}
export interface DataOciJmsFleetInstallationSiteItems {
}
export declare function dataOciJmsFleetInstallationSiteItemsToTerraform(struct?: DataOciJmsFleetInstallationSiteItems): any;
export declare function dataOciJmsFleetInstallationSiteItemsToHclTerraform(struct?: DataOciJmsFleetInstallationSiteItems): any;
export declare class DataOciJmsFleetInstallationSiteItemsOutputReference 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(): DataOciJmsFleetInstallationSiteItems | undefined;
    set internalValue(value: DataOciJmsFleetInstallationSiteItems | undefined);
    get approximateApplicationCount(): number;
    private _blocklist;
    get blocklist(): DataOciJmsFleetInstallationSiteItemsBlocklistStructList;
    get installationKey(): string;
    private _jre;
    get jre(): DataOciJmsFleetInstallationSiteItemsJreList;
    get managedInstanceId(): string;
    private _operatingSystem;
    get operatingSystem(): DataOciJmsFleetInstallationSiteItemsOperatingSystemList;
    get path(): string;
    get securityStatus(): string;
    get state(): string;
    get timeLastSeen(): string;
}
export declare class DataOciJmsFleetInstallationSiteItemsList 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): DataOciJmsFleetInstallationSiteItemsOutputReference;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/jms_fleet_installation_site oci_jms_fleet_installation_site}
*/
export declare class DataOciJmsFleetInstallationSite extends cdktf.TerraformDataSource {
    static readonly tfResourceType = "oci_jms_fleet_installation_site";
    /**
    * Generates CDKTF code for importing a DataOciJmsFleetInstallationSite 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 DataOciJmsFleetInstallationSite to import
    * @param importFromId The id of the existing DataOciJmsFleetInstallationSite that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/jms_fleet_installation_site#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the DataOciJmsFleetInstallationSite 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/data-sources/jms_fleet_installation_site oci_jms_fleet_installation_site} Data Source
    *
    * @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 DataOciJmsFleetInstallationSiteConfig
    */
    constructor(scope: Construct, id: string, config: DataOciJmsFleetInstallationSiteConfig);
    private _applicationId?;
    get applicationId(): string;
    set applicationId(value: string);
    resetApplicationId(): void;
    get applicationIdInput(): string | undefined;
    private _fleetId?;
    get fleetId(): string;
    set fleetId(value: string);
    get fleetIdInput(): string | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _installationPath?;
    get installationPath(): string;
    set installationPath(value: string);
    resetInstallationPath(): void;
    get installationPathInput(): string | undefined;
    private _items;
    get items(): DataOciJmsFleetInstallationSiteItemsList;
    private _jreDistribution?;
    get jreDistribution(): string;
    set jreDistribution(value: string);
    resetJreDistribution(): void;
    get jreDistributionInput(): string | undefined;
    private _jreSecurityStatus?;
    get jreSecurityStatus(): string;
    set jreSecurityStatus(value: string);
    resetJreSecurityStatus(): void;
    get jreSecurityStatusInput(): string | undefined;
    private _jreVendor?;
    get jreVendor(): string;
    set jreVendor(value: string);
    resetJreVendor(): void;
    get jreVendorInput(): string | undefined;
    private _jreVersion?;
    get jreVersion(): string;
    set jreVersion(value: string);
    resetJreVersion(): void;
    get jreVersionInput(): string | undefined;
    private _managedInstanceId?;
    get managedInstanceId(): string;
    set managedInstanceId(value: string);
    resetManagedInstanceId(): void;
    get managedInstanceIdInput(): string | undefined;
    private _osFamily?;
    get osFamily(): string[];
    set osFamily(value: string[]);
    resetOsFamily(): void;
    get osFamilyInput(): string[] | undefined;
    private _pathContains?;
    get pathContains(): string;
    set pathContains(value: string);
    resetPathContains(): void;
    get pathContainsInput(): string | undefined;
    private _timeEnd?;
    get timeEnd(): string;
    set timeEnd(value: string);
    resetTimeEnd(): void;
    get timeEndInput(): string | undefined;
    private _timeStart?;
    get timeStart(): string;
    set timeStart(value: string);
    resetTimeStart(): void;
    get timeStartInput(): string | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
