"use strict";
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
    Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
    o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
    __setModuleDefault(result, mod);
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.DatabaseInsight = void 0;
const pulumi = __importStar(require("@pulumi/pulumi"));
const utilities = __importStar(require("../utilities"));
/**
 * This resource provides the Database Insight resource in Oracle Cloud Infrastructure Opsi service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/operations-insights/latest/DatabaseInsight
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/osi
 *
 * Create a Database Insight resource for a Enterprise Manager(EM) managed database in Operations Insights. The database will be enabled in Operations Insights. Database metric collection and analysis will be started. The Database Insight resource for Autonomous Database and Management Agent managed external Database needs to be created by Database service terraform provider.
 *
 * ## Import
 *
 * DatabaseInsights can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:Opsi/databaseInsight:DatabaseInsight test_database_insight "id"
 * ```
 */
class DatabaseInsight extends pulumi.CustomResource {
    /**
     * Get an existing DatabaseInsight 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, id, state, opts) {
        return new DatabaseInsight(name, state, { ...opts, id: id });
    }
    /** @internal */
    static __pulumiType = 'oci:Opsi/databaseInsight:DatabaseInsight';
    /**
     * Returns true if the given object is an instance of DatabaseInsight.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj) {
        if (obj === undefined || obj === null) {
            return false;
        }
        return obj['__pulumiType'] === DatabaseInsight.__pulumiType;
    }
    constructor(name, argsOrState, opts) {
        let resourceInputs = {};
        opts = opts || {};
        if (opts.id) {
            const state = argsOrState;
            resourceInputs["compartmentId"] = state?.compartmentId;
            resourceInputs["connectionCredentialDetails"] = state?.connectionCredentialDetails;
            resourceInputs["connectionDetails"] = state?.connectionDetails;
            resourceInputs["connectorId"] = state?.connectorId;
            resourceInputs["credentialDetails"] = state?.credentialDetails;
            resourceInputs["databaseConnectionStatusDetails"] = state?.databaseConnectionStatusDetails;
            resourceInputs["databaseConnectorId"] = state?.databaseConnectorId;
            resourceInputs["databaseDisplayName"] = state?.databaseDisplayName;
            resourceInputs["databaseId"] = state?.databaseId;
            resourceInputs["databaseName"] = state?.databaseName;
            resourceInputs["databaseResourceType"] = state?.databaseResourceType;
            resourceInputs["databaseType"] = state?.databaseType;
            resourceInputs["databaseVersion"] = state?.databaseVersion;
            resourceInputs["dbmPrivateEndpointId"] = state?.dbmPrivateEndpointId;
            resourceInputs["definedTags"] = state?.definedTags;
            resourceInputs["deploymentType"] = state?.deploymentType;
            resourceInputs["enterpriseManagerBridgeId"] = state?.enterpriseManagerBridgeId;
            resourceInputs["enterpriseManagerEntityDisplayName"] = state?.enterpriseManagerEntityDisplayName;
            resourceInputs["enterpriseManagerEntityIdentifier"] = state?.enterpriseManagerEntityIdentifier;
            resourceInputs["enterpriseManagerEntityName"] = state?.enterpriseManagerEntityName;
            resourceInputs["enterpriseManagerEntityType"] = state?.enterpriseManagerEntityType;
            resourceInputs["enterpriseManagerIdentifier"] = state?.enterpriseManagerIdentifier;
            resourceInputs["entitySource"] = state?.entitySource;
            resourceInputs["exadataInsightId"] = state?.exadataInsightId;
            resourceInputs["freeformTags"] = state?.freeformTags;
            resourceInputs["isAdvancedFeaturesEnabled"] = state?.isAdvancedFeaturesEnabled;
            resourceInputs["isHeatWaveClusterAttached"] = state?.isHeatWaveClusterAttached;
            resourceInputs["isHighlyAvailable"] = state?.isHighlyAvailable;
            resourceInputs["lifecycleDetails"] = state?.lifecycleDetails;
            resourceInputs["managementAgentId"] = state?.managementAgentId;
            resourceInputs["opsiPrivateEndpointId"] = state?.opsiPrivateEndpointId;
            resourceInputs["parentId"] = state?.parentId;
            resourceInputs["processorCount"] = state?.processorCount;
            resourceInputs["rootId"] = state?.rootId;
            resourceInputs["serviceName"] = state?.serviceName;
            resourceInputs["state"] = state?.state;
            resourceInputs["status"] = state?.status;
            resourceInputs["systemTags"] = state?.systemTags;
            resourceInputs["timeCreated"] = state?.timeCreated;
            resourceInputs["timeUpdated"] = state?.timeUpdated;
        }
        else {
            const args = argsOrState;
            if (args?.compartmentId === undefined && !opts.urn) {
                throw new Error("Missing required property 'compartmentId'");
            }
            if (args?.entitySource === undefined && !opts.urn) {
                throw new Error("Missing required property 'entitySource'");
            }
            resourceInputs["compartmentId"] = args?.compartmentId;
            resourceInputs["connectionCredentialDetails"] = args?.connectionCredentialDetails;
            resourceInputs["connectionDetails"] = args?.connectionDetails;
            resourceInputs["connectorId"] = args?.connectorId;
            resourceInputs["credentialDetails"] = args?.credentialDetails;
            resourceInputs["databaseConnectionStatusDetails"] = args?.databaseConnectionStatusDetails;
            resourceInputs["databaseConnectorId"] = args?.databaseConnectorId;
            resourceInputs["databaseId"] = args?.databaseId;
            resourceInputs["databaseResourceType"] = args?.databaseResourceType;
            resourceInputs["dbmPrivateEndpointId"] = args?.dbmPrivateEndpointId;
            resourceInputs["definedTags"] = args?.definedTags;
            resourceInputs["deploymentType"] = args?.deploymentType;
            resourceInputs["enterpriseManagerBridgeId"] = args?.enterpriseManagerBridgeId;
            resourceInputs["enterpriseManagerEntityIdentifier"] = args?.enterpriseManagerEntityIdentifier;
            resourceInputs["enterpriseManagerIdentifier"] = args?.enterpriseManagerIdentifier;
            resourceInputs["entitySource"] = args?.entitySource;
            resourceInputs["exadataInsightId"] = args?.exadataInsightId;
            resourceInputs["freeformTags"] = args?.freeformTags;
            resourceInputs["isAdvancedFeaturesEnabled"] = args?.isAdvancedFeaturesEnabled;
            resourceInputs["managementAgentId"] = args?.managementAgentId;
            resourceInputs["opsiPrivateEndpointId"] = args?.opsiPrivateEndpointId;
            resourceInputs["serviceName"] = args?.serviceName;
            resourceInputs["status"] = args?.status;
            resourceInputs["systemTags"] = args?.systemTags;
            resourceInputs["databaseDisplayName"] = undefined /*out*/;
            resourceInputs["databaseName"] = undefined /*out*/;
            resourceInputs["databaseType"] = undefined /*out*/;
            resourceInputs["databaseVersion"] = undefined /*out*/;
            resourceInputs["enterpriseManagerEntityDisplayName"] = undefined /*out*/;
            resourceInputs["enterpriseManagerEntityName"] = undefined /*out*/;
            resourceInputs["enterpriseManagerEntityType"] = undefined /*out*/;
            resourceInputs["isHeatWaveClusterAttached"] = undefined /*out*/;
            resourceInputs["isHighlyAvailable"] = undefined /*out*/;
            resourceInputs["lifecycleDetails"] = undefined /*out*/;
            resourceInputs["parentId"] = undefined /*out*/;
            resourceInputs["processorCount"] = undefined /*out*/;
            resourceInputs["rootId"] = undefined /*out*/;
            resourceInputs["state"] = undefined /*out*/;
            resourceInputs["timeCreated"] = undefined /*out*/;
            resourceInputs["timeUpdated"] = undefined /*out*/;
        }
        opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
        super(DatabaseInsight.__pulumiType, name, resourceInputs, opts);
    }
}
exports.DatabaseInsight = DatabaseInsight;
//# sourceMappingURL=databaseInsight.js.map