import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Exadata Insight resource in Oracle Cloud Infrastructure Opsi service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/operations-insights/latest/ExadataInsight
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/osi
 *
 * Create an Exadata insight resource for an Exadata system in Operations Insights. The Exadata system will be enabled in Operations Insights. Exadata-related metric collection and analysis will be started.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testExadataInsight = new oci.opsi.ExadataInsight("test_exadata_insight", {
 *     compartmentId: compartmentId,
 *     entitySource: exadataInsightEntitySource,
 *     definedTags: {
 *         "foo-namespace.bar-key": "value",
 *     },
 *     enterpriseManagerBridgeId: testEnterpriseManagerBridge.id,
 *     enterpriseManagerEntityIdentifier: exadataInsightEnterpriseManagerEntityIdentifier,
 *     enterpriseManagerIdentifier: exadataInsightEnterpriseManagerIdentifier,
 *     exadataInfraId: testExadataInfra.id,
 *     freeformTags: {
 *         "bar-key": "value",
 *     },
 *     isAutoSyncEnabled: exadataInsightIsAutoSyncEnabled === "true",
 *     memberVmClusterDetails: [{
 *         compartmentId: compartmentId,
 *         dbmPrivateEndpointId: testPrivateEndpoint.id,
 *         memberAutonomousDetails: [{
 *             compartmentId: compartmentId,
 *             connectionCredentialDetails: {
 *                 credentialType: exadataInsightMemberVmClusterDetailsMemberAutonomousDetailsConnectionCredentialDetailsCredentialType,
 *                 credentialSourceName: exadataInsightMemberVmClusterDetailsMemberAutonomousDetailsConnectionCredentialDetailsCredentialSourceName,
 *                 namedCredentialId: testNamedCredential.id,
 *                 passwordSecretId: testSecret.id,
 *                 role: exadataInsightMemberVmClusterDetailsMemberAutonomousDetailsConnectionCredentialDetailsRole,
 *                 userName: testUser.name,
 *                 walletSecretId: testSecret.id,
 *             },
 *             connectionDetails: {
 *                 hostName: exadataInsightMemberVmClusterDetailsMemberAutonomousDetailsConnectionDetailsHostName,
 *                 port: Number(exadataInsightMemberVmClusterDetailsMemberAutonomousDetailsConnectionDetailsPort),
 *                 protocol: exadataInsightMemberVmClusterDetailsMemberAutonomousDetailsConnectionDetailsProtocol,
 *                 serviceName: testService.name,
 *             },
 *             credentialDetails: {
 *                 credentialType: exadataInsightMemberVmClusterDetailsMemberAutonomousDetailsCredentialDetailsCredentialType,
 *                 credentialSourceName: exadataInsightMemberVmClusterDetailsMemberAutonomousDetailsCredentialDetailsCredentialSourceName,
 *                 namedCredentialId: testNamedCredential.id,
 *                 passwordSecretId: testSecret.id,
 *                 role: exadataInsightMemberVmClusterDetailsMemberAutonomousDetailsCredentialDetailsRole,
 *                 userName: testUser.name,
 *                 walletSecretId: testSecret.id,
 *             },
 *             databaseId: testDatabase.id,
 *             databaseResourceType: exadataInsightMemberVmClusterDetailsMemberAutonomousDetailsDatabaseResourceType,
 *             definedTags: exadataInsightMemberVmClusterDetailsMemberAutonomousDetailsDefinedTags,
 *             deploymentType: exadataInsightMemberVmClusterDetailsMemberAutonomousDetailsDeploymentType,
 *             entitySource: exadataInsightMemberVmClusterDetailsMemberAutonomousDetailsEntitySource,
 *             freeformTags: exadataInsightMemberVmClusterDetailsMemberAutonomousDetailsFreeformTags,
 *             isAdvancedFeaturesEnabled: exadataInsightMemberVmClusterDetailsMemberAutonomousDetailsIsAdvancedFeaturesEnabled === "true",
 *             managementAgentId: testManagementAgent.id,
 *             opsiPrivateEndpointId: testPrivateEndpoint.id,
 *             systemTags: exadataInsightMemberVmClusterDetailsMemberAutonomousDetailsSystemTags,
 *         }],
 *         memberDatabaseDetails: [{
 *             compartmentId: compartmentId,
 *             connectionCredentialDetails: {
 *                 credentialType: exadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionCredentialDetailsCredentialType,
 *                 credentialSourceName: exadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionCredentialDetailsCredentialSourceName,
 *                 namedCredentialId: testNamedCredential.id,
 *                 passwordSecretId: testSecret.id,
 *                 role: exadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionCredentialDetailsRole,
 *                 userName: testUser.name,
 *                 walletSecretId: testSecret.id,
 *             },
 *             connectionDetails: {
 *                 hostName: exadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsHostName,
 *                 hosts: [{
 *                     hostIp: exadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsHostsHostIp,
 *                     port: Number(exadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsHostsPort),
 *                 }],
 *                 port: Number(exadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsPort),
 *                 protocol: exadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsProtocol,
 *                 serviceName: testService.name,
 *             },
 *             credentialDetails: {
 *                 credentialType: exadataInsightMemberVmClusterDetailsMemberDatabaseDetailsCredentialDetailsCredentialType,
 *                 credentialSourceName: exadataInsightMemberVmClusterDetailsMemberDatabaseDetailsCredentialDetailsCredentialSourceName,
 *                 namedCredentialId: testNamedCredential.id,
 *                 passwordSecretId: testSecret.id,
 *                 role: exadataInsightMemberVmClusterDetailsMemberDatabaseDetailsCredentialDetailsRole,
 *                 userName: testUser.name,
 *                 walletSecretId: testSecret.id,
 *             },
 *             databaseId: testDatabase.id,
 *             databaseResourceType: exadataInsightMemberVmClusterDetailsMemberDatabaseDetailsDatabaseResourceType,
 *             dbmPrivateEndpointId: testPrivateEndpoint.id,
 *             definedTags: exadataInsightMemberVmClusterDetailsMemberDatabaseDetailsDefinedTags,
 *             deploymentType: exadataInsightMemberVmClusterDetailsMemberDatabaseDetailsDeploymentType,
 *             entitySource: exadataInsightMemberVmClusterDetailsMemberDatabaseDetailsEntitySource,
 *             freeformTags: exadataInsightMemberVmClusterDetailsMemberDatabaseDetailsFreeformTags,
 *             managementAgentId: testManagementAgent.id,
 *             opsiPrivateEndpointId: testPrivateEndpoint.id,
 *             serviceName: testService.name,
 *             systemTags: exadataInsightMemberVmClusterDetailsMemberDatabaseDetailsSystemTags,
 *         }],
 *         opsiPrivateEndpointId: testPrivateEndpoint.id,
 *         vmClusterType: exadataInsightMemberVmClusterDetailsVmClusterType,
 *         vmclusterId: testVmcluster.id,
 *     }],
 * });
 * ```
 *
 * ## Import
 *
 * ExadataInsights can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:Opsi/exadataInsight:ExadataInsight test_exadata_insight "id"
 * ```
 */
export declare class ExadataInsight extends pulumi.CustomResource {
    /**
     * Get an existing ExadataInsight resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: ExadataInsightState, opts?: pulumi.CustomResourceOptions): ExadataInsight;
    /**
     * Returns true if the given object is an instance of ExadataInsight.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is ExadataInsight;
    /**
     * Object containing chargeback plan details
     */
    readonly chargebackPlanDetails: pulumi.Output<outputs.Opsi.ExadataInsightChargebackPlanDetail[]>;
    /**
     * (Updatable) Compartment Identifier of Exadata insight
     */
    readonly compartmentId: pulumi.Output<string>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}`
     */
    readonly definedTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * OPSI Enterprise Manager Bridge OCID
     */
    readonly enterpriseManagerBridgeId: pulumi.Output<string>;
    /**
     * Enterprise Manager Entity Display Name
     */
    readonly enterpriseManagerEntityDisplayName: pulumi.Output<string>;
    /**
     * Enterprise Manager Entity Unique Identifier
     */
    readonly enterpriseManagerEntityIdentifier: pulumi.Output<string>;
    /**
     * Enterprise Manager Entity Name
     */
    readonly enterpriseManagerEntityName: pulumi.Output<string>;
    /**
     * Enterprise Manager Entity Type
     */
    readonly enterpriseManagerEntityType: pulumi.Output<string>;
    /**
     * Enterprise Manager Unique Identifier
     */
    readonly enterpriseManagerIdentifier: pulumi.Output<string>;
    /**
     * (Updatable) Source of the Exadata system.
     */
    readonly entitySource: pulumi.Output<string>;
    /**
     * The user-friendly name for the Exadata system. The name does not have to be unique.
     */
    readonly exadataDisplayName: pulumi.Output<string>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Exadata Infrastructure.
     */
    readonly exadataInfraId: pulumi.Output<string>;
    readonly exadataInfraResourceType: pulumi.Output<string>;
    /**
     * The Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.
     */
    readonly exadataName: pulumi.Output<string>;
    /**
     * Exadata rack type.
     */
    readonly exadataRackType: pulumi.Output<string>;
    readonly exadataShape: pulumi.Output<string>;
    /**
     * Operations Insights internal representation of the the Exadata system type.
     */
    readonly exadataType: pulumi.Output<string>;
    /**
     * (Updatable) Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}`
     */
    readonly freeformTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * (Updatable) Set to true to enable automatic enablement and disablement of related targets from Enterprise Manager. New resources (e.g. Database Insights) will be placed in the same compartment as the related Exadata Insight.
     */
    readonly isAutoSyncEnabled: pulumi.Output<boolean>;
    /**
     * true if virtualization is used in the Exadata system
     */
    readonly isVirtualizedExadata: pulumi.Output<boolean>;
    /**
     * A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
     */
    readonly lifecycleDetails: pulumi.Output<string>;
    readonly memberVmClusterDetails: pulumi.Output<outputs.Opsi.ExadataInsightMemberVmClusterDetail[]>;
    /**
     * The current state of the Exadata insight.
     */
    readonly state: pulumi.Output<string>;
    /**
     * (Updatable) Status of the resource. Example: "ENABLED", "DISABLED". Resource can be either enabled or disabled by updating the value of status field to either "ENABLED" or "DISABLED"
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    readonly status: pulumi.Output<string>;
    /**
     * A message describing the status of the Exadata Resource. For example, it can be used to provide actionable information about the policies needed to access the Exadata Resource.
     */
    readonly statusDetails: pulumi.Output<string>;
    /**
     * System tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    readonly systemTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The time the the Exadata insight was first enabled. An RFC3339 formatted datetime string
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * The time the Exadata insight was updated. An RFC3339 formatted datetime string
     */
    readonly timeUpdated: pulumi.Output<string>;
    /**
     * Create a ExadataInsight resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: ExadataInsightArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering ExadataInsight resources.
 */
export interface ExadataInsightState {
    /**
     * Object containing chargeback plan details
     */
    chargebackPlanDetails?: pulumi.Input<pulumi.Input<inputs.Opsi.ExadataInsightChargebackPlanDetail>[] | undefined>;
    /**
     * (Updatable) Compartment Identifier of Exadata insight
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * OPSI Enterprise Manager Bridge OCID
     */
    enterpriseManagerBridgeId?: pulumi.Input<string | undefined>;
    /**
     * Enterprise Manager Entity Display Name
     */
    enterpriseManagerEntityDisplayName?: pulumi.Input<string | undefined>;
    /**
     * Enterprise Manager Entity Unique Identifier
     */
    enterpriseManagerEntityIdentifier?: pulumi.Input<string | undefined>;
    /**
     * Enterprise Manager Entity Name
     */
    enterpriseManagerEntityName?: pulumi.Input<string | undefined>;
    /**
     * Enterprise Manager Entity Type
     */
    enterpriseManagerEntityType?: pulumi.Input<string | undefined>;
    /**
     * Enterprise Manager Unique Identifier
     */
    enterpriseManagerIdentifier?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Source of the Exadata system.
     */
    entitySource?: pulumi.Input<string | undefined>;
    /**
     * The user-friendly name for the Exadata system. The name does not have to be unique.
     */
    exadataDisplayName?: pulumi.Input<string | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Exadata Infrastructure.
     */
    exadataInfraId?: pulumi.Input<string | undefined>;
    exadataInfraResourceType?: pulumi.Input<string | undefined>;
    /**
     * The Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.
     */
    exadataName?: pulumi.Input<string | undefined>;
    /**
     * Exadata rack type.
     */
    exadataRackType?: pulumi.Input<string | undefined>;
    exadataShape?: pulumi.Input<string | undefined>;
    /**
     * Operations Insights internal representation of the the Exadata system type.
     */
    exadataType?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) Set to true to enable automatic enablement and disablement of related targets from Enterprise Manager. New resources (e.g. Database Insights) will be placed in the same compartment as the related Exadata Insight.
     */
    isAutoSyncEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * true if virtualization is used in the Exadata system
     */
    isVirtualizedExadata?: pulumi.Input<boolean | undefined>;
    /**
     * A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
     */
    lifecycleDetails?: pulumi.Input<string | undefined>;
    memberVmClusterDetails?: pulumi.Input<pulumi.Input<inputs.Opsi.ExadataInsightMemberVmClusterDetail>[] | undefined>;
    /**
     * The current state of the Exadata insight.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Status of the resource. Example: "ENABLED", "DISABLED". Resource can be either enabled or disabled by updating the value of status field to either "ENABLED" or "DISABLED"
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    status?: pulumi.Input<string | undefined>;
    /**
     * A message describing the status of the Exadata Resource. For example, it can be used to provide actionable information about the policies needed to access the Exadata Resource.
     */
    statusDetails?: pulumi.Input<string | undefined>;
    /**
     * System tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    systemTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The time the the Exadata insight was first enabled. An RFC3339 formatted datetime string
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * The time the Exadata insight was updated. An RFC3339 formatted datetime string
     */
    timeUpdated?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a ExadataInsight resource.
 */
export interface ExadataInsightArgs {
    /**
     * (Updatable) Compartment Identifier of Exadata insight
     */
    compartmentId: pulumi.Input<string>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * OPSI Enterprise Manager Bridge OCID
     */
    enterpriseManagerBridgeId?: pulumi.Input<string | undefined>;
    /**
     * Enterprise Manager Entity Unique Identifier
     */
    enterpriseManagerEntityIdentifier?: pulumi.Input<string | undefined>;
    /**
     * Enterprise Manager Unique Identifier
     */
    enterpriseManagerIdentifier?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Source of the Exadata system.
     */
    entitySource: pulumi.Input<string>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Exadata Infrastructure.
     */
    exadataInfraId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) Set to true to enable automatic enablement and disablement of related targets from Enterprise Manager. New resources (e.g. Database Insights) will be placed in the same compartment as the related Exadata Insight.
     */
    isAutoSyncEnabled?: pulumi.Input<boolean | undefined>;
    memberVmClusterDetails?: pulumi.Input<pulumi.Input<inputs.Opsi.ExadataInsightMemberVmClusterDetail>[] | undefined>;
    /**
     * (Updatable) Status of the resource. Example: "ENABLED", "DISABLED". Resource can be either enabled or disabled by updating the value of status field to either "ENABLED" or "DISABLED"
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    status?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=exadataInsight.d.ts.map